python - 打印所有三或五的倍数的数字的总和的逻辑错误
问题描述
我的程序有一些逻辑错误。在过去的几个小时里,我一直在尝试解决这个问题。它应该打印所有三或五的倍数的数字的总和。
我的输出
1.)enter an integer number (0 to end): enter an integer number (0 to end):
2.)enter an integer number (0 to end): 3+ = 3
预期产出
1.)enter an integer number (0 to end): 3 = 3
2.)enter an integer number (0 to end): 3+5 = 8
下面是我的代码。
while True:
answer = ""
num = int(input("enter an integer number (0 to end): "))
end_answer = 0
if num == 0:
exit()
for i in range(1, num+1):
if i%3==0 or i%5==0 :
answer += str(i)
end_answer += i
if i != num and (i%3==0 or i%5==0):
answer += "+"
print(str(answer) + " = " + str(end_answer) )
我已经看到了类似的答案,只是没有专门在 python 中
解决方案
以下(正确缩进)代码将为您提供所需的内容:
while True:
num = int(input('Enter an integer number (0 to end): '))
if num == 0: exit()
answer = ''
end_answer = 0
sep = ''
for i in range(1, num+1):
if i % 3 == 0 or i % 5 == 0 :
answer += sep + str(i)
sep = ' + '
end_answer += i
if end_answer > 0:
print(str(answer) + ' = ' + str(end_answer) )
请注意,它使用变量分隔符sep
来更清晰地打印您正在处理的项目。示例运行如下:
Enter an integer number (0 to end): 2
Enter an integer number (0 to end): 3
3 = 3
Enter an integer number (0 to end): 10
3 + 5 + 6 + 9 + 10 = 33
Enter an integer number (0 to end): 38
3 + 5 + 6 + 9 + 10 + 12 + 15 + 18 + 20 + 21 + 24 + 25 + 27 + 30 + 33 + 35 + 36 = 329
Enter an integer number (0 to end): 0
推荐阅读
- javascript - 在 Javascript 中多个 onclick(); 收集日期和单次功能
- bluetooth-lowenergy - 使用网络蓝牙 api 将长度为 495 字节的数组写入设备
- angular - Angular 8:当我从另一个组件调用时,使用引导程序的模式不会出现
- python - Python 3 - __init__() 接受 1 到 5 个位置参数,但给出了 6 个
- javascript - 没有嵌套 if-else 的 Javascript 表单验证,但只显示一个错误
- android - 迁移到 viewpager2 不加载所有上一页和下一页边界视图以及 viewpager2 中 getPageWidth() 的等效方法是什么
- azure - Azure 上的 Kubernetes - 活跃度和就绪度探测失败 - 活跃度探测失败并连接:连接被拒绝
- c++ - std::function 不允许通过类型
- javascript - 如何在现有号码上再添加 5 个号码
- html - 如何在 css 中定位我的 html 列?