如何在Python中从while循环提取值并按指定格式输出?
解决奇数求和单行格式化输出问题
你当前的代码会逐个打印奇数,最后仅输出最后一个奇数加总和,无法得到1+3+5+7=16的单行目标格式。核心问题有两个:
- 循环内每次单独
print(odd),导致每个奇数占一行; odd变量在每次循环中被重新赋值,循环结束后仅保留最后一个奇数的值。
这里提供两种简单的修改方案:
方案一:用列表收集奇数再拼接
通过列表存储所有奇数的字符串形式,最后用"+"连接列表元素并拼接总和:
num = int(input("Insert a positive integer:")) # 输入4 odd_num_list = [] total = 0 current_odd = 1 count = 1 while count <= num: odd_num_list.append(str(current_odd)) total += current_odd current_odd += 2 count += 1 # 拼接成目标格式并打印 print("+".join(odd_num_list) + "=" + str(total))
方案二:直接循环拼接字符串
在循环中逐步构建结果字符串,避免额外的列表存储:
num = int(input("Insert a positive integer:")) # 输入4 result_str = "" total = 0 current_odd = 1 count = 1 while count <= num: if count == 1: # 第一个奇数直接赋值,避免开头出现加号 result_str = str(current_odd) else: result_str += "+" + str(current_odd) total += current_odd current_odd += 2 count += 1 print(result_str + "=" + str(total))
两种方案输入4时,都会输出1+3+5+7=16,完全符合你的需求。
内容的提问来源于stack exchange,提问作者HotOnion24
相关产品推荐
相关产品推荐

