我是一个新手,试图从Al Sweigart的用Python自动完成无聊的事情中学习python,然后我遇到了他的代码块,以回答一个数学问题:“所有的总和是多少?数字从0到100?”显然,这是高斯在他的老师想让他忙的时候遇到的一个问题。
Sweigart使用for
循环和range()
函数来获取答案:
total = 0
for num in range(101):
total=total+num
print(total)
稍后,他指出:“实际上,您可以使用while循环执行与for循环相同的操作; for循环更为简洁。”
如何在while循环中呈现此语句?
我尝试将for
替换为while
,但收到错误消息:“未定义名称'num'。”我还尝试使用另一个论坛中的另一段代码来建立求和数学方程,但是完全迷失了。
print('Gauss was presented with a math problem: add up all the numbers from 0 to 100. What was the total?')
a=[1,2,3,4,5,...,100]
i=0
while i< len(a)-1:
result=(a[i]+a[i+1])/2
print(result)
i +=1
然后,我尝试在一个方程式中设置i
,该方程式将一直循环直到添加每个数字,但都卡住了。
print('Gauss was presented with a math problem: add up all the numbers from 0 to 100. What was the total?')
i=0
while i<101:
i=i+1
a=i
while语句是否太复杂以至于无法保证工作?
答案 0 :(得分:1)
您的最后一个示例即将结束。
这种形式的for
循环:
for x in range(N):
# ...
可以用while
循环代替,例如:
x = 0
while x < N:
# ...
x += 1 # equivalent to x = x + 1
只需确保其余代码保持不变!
答案 1 :(得分:0)
for
循环更加简洁。注意,我们需要一个“计数器”变量,在本例中为i
,带有while循环。并不是说我们不需要在for
循环中使用它们,而是将它们很好地集成到了语法中,以使代码更简洁。
i = 0
total = 0
while i < 101:
total += i
i += 1
print(total)
Python的for循环语法也与foreach等效:
for eachItem in list:
# Do something