python - N 以下所有包含数字 7 的数字的总和
问题描述
你能帮我在我的代码中找到问题吗?练习是;编写一个程序,输入 [1-1000] 范围内的数字 N,并打印 N 以下所有包含数字 7 的数字的总和。如果用户插入超出范围的数字并要求再次插入,则打印错误消息。
var = 1
while var == 1:
n=int(input("Enter the Number in range [1,1000]:"))
while n in range(0,1001):
k = 0
i=0
m=0
s=0
e=0
f=0
g=0
if n in range(100,1001):
for c in range(100,n+1):
if c%10 == 7:
i += c
if (c//10)%10 == 7:
c%10 != 7
s += c
if c//100 == 7:
(c//10)%10 != 7
c%10 != 7
e += c
print(1188 + i + s + e)
if n in range(0,100):
for b in range(1,n+1):
if b%10 == 7:
f += b
if b//10 == 7:
g += b
if b >= 77:
g=g-77
print(f+g)
break
else:
print("n is not in the range")
它通过始终添加 170 而不仅仅是在此范围内来计算范围 (170,180) 中的总和。
解决方案
在while
块中,我们正在测试是否n
有效。块后while
有一个列表理解。
contains_seven = [x for x in range(0,n+1) if '7' in str(x)]
我们取 0 到 n+1 范围内的每个数字,其中包含“7”。之后,我们通过函数对它们求和sum()
并打印出来。完整的实现是:
while True:
n = int(input("input n: "))
if (n>0 and n<=1000):
break
print("n is not in the range")
contains_seven = [x for x in range(0,n+1) if '7' in str(x)]
a = sum(contains_seven)
print(a)
推荐阅读
- javascript - 如何使用 java 脚本打开已在同一浏览器的另外五个选项卡中打开的 URL?
- javascript - 无法将画布加载到 THREE.Texture();
- css - 如何修复 flexbox 项目的宽度
- javascript - 如何让 ExoPlayer 播放 DRM PlayReady 内容?
- slack-api - 为什么我的 python Slack 应用程序永远运行而没有任何反应?
- c++ - 如何检查一个字符串是否包含多个其他字符串?
- networking - 如何使用 ansible 在 ubuntu 18.04 服务器上配置 haproxy 和 keepalived?
- json - How to map nested JSON object keys in React?
- search - elasticsearch中的搜索历史
- r - 如何使用 ifelse 对正则表达式使用多个条件?