Cha*_*ins 1 python continue modulo while-loop
尝试完成要求我执行以下任务的任务:
“编写一个while循环,该循环计算1到20(含)之间的整数之和,不包括那些被3整除的整数。(提示:您会发现模运算符(%)和continue语句很方便。)
我尝试自己构造代码,但是对代码的评估超时。我猜我的语法不正确并导致无限循环
total, x = 0, 1
while x >=1 and x <= 20:
if x%3==0:
continue
if x%3 != 0:
print(x)
x+=1
total+=1
print(total)
Run Code Online (Sandbox Code Playgroud)
预期的答案应该是:
20 19 17 16 14 13 11 10 8 7 5 4 2 1
但是我只是收到“超时”错误
***最新::
尝试这样做:
total, x = 0, 1
while x>=1 and x<=20:
if x%3 == 0:
x+=1
continue
if x%3 != 0:
print(x)
x+=1
total=+1
print(total)
Run Code Online (Sandbox Code Playgroud)
收到此::
Traceback (most recent call last):
File "/usr/src/app/test_methods.py", line 23, in test
self.assertEqual(self._output(), "147\n")
AssertionError: '1\n2\n4\n5\n7\n8\n10\n11\n13\n14\n16\n17\n19\n20\n1\n' != '147\n'
Run Code Online (Sandbox Code Playgroud)
-1-2-4-5-7-8-10-11-13-14 + 147吗?+-16-17-19-19-1
您不会x在第一个if语句内递增,因此它停留在该值上并永远循环。你可以试试看
total, x = 0, 1
while x >=1 and x <= 20:
if x%3==0:
x+=1 # incrementing x here
continue
elif x%3 != 0: # using an else statement here would be recommended
print(x)
x+=1
total+=x # we are summing up all x's here
print(total)
Run Code Online (Sandbox Code Playgroud)
或者,您可以x在if语句之外增加。您也可以使用range()。在这里,我们只是忽略了x那些可被整除的东西3。
total, x = 0, 1
for x in range(1, 21):
if x%3 != 0:
print(x)
x+=1
total+=x
print(total)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |