Python如何打印指定range区间内拼接格式的迭代求和表达式
解决方案
你原有求和逻辑不需要改动,只需要额外增加等式拼接的逻辑即可,不需要在求和循环里硬拼字符串,用字符串join方法实现更简洁,也不会出现首尾多余加号的问题。
修改后完整代码
numOne = int(input('enter a number: ')) numTwo = int(input('enter a second number: ')) total = numOne for i in range(numOne+1, numTwo+1): total += i print('the sum of the numbers you entered inclusively is = ', total) # 拼接逐数相加的等式 num_str_list = [str(n) for n in range(numOne, numTwo+1)] print(' + '.join(num_str_list) + f' = {total}')
逻辑说明
- 用列表推导式遍历
range(numOne, numTwo+1)生成的闭区间整数序列,把每个整数转为字符串存入列表,输入10、15时得到的列表为['10','11','12','13','14','15'] - 调用字符串的
join方法,用+作为分隔符拼接列表内所有元素,得到相加部分的字符串 - 最后拼接
=和计算得到的总和,打印后就是你需要的完整求和等式
运行后输入10、15的输出完全匹配预期效果:
enter a number: 10 enter a second number: 15 the sum of the numbers you entered inclusively is = 75 10 + 11 + 12 + 13 + 14 + 15 = 75
注:原代码里用
sum作为变量名会覆盖Python内置的sum()函数,上述代码把变量名改成了total避免冲突,你如果要保留原变量名也可以正常运行。
内容的提问来源于stack exchange,提问作者notJeffBezos
相关产品推荐
相关产品推荐

