我试图找出如何将for循环更改为此函数的while循环:
def sumIt():
A=1
number=int(input('Enter a number(integer):'))
total=0.0
for counter in range(number):
total+=A
A+=1
print('The sum from 1 to the number is:',total)
averageIt(total,number)
#average sum and number
def averageIt(total,number):
print('The average of the sum and the number is:',(total+number)/2)
sumIt()
我会说:
while number>1:
答案 0 :(得分:1)
您可以手动增加counter
变量:
counter = 0
while counter < number:
total += A
A += 1
counter += 1
或者您可以从counter
开始递减number
:
counter = number
while counter:
total += A
A += 1
counter -= 1
我们在布尔上下文中使用任何非零数字为True的事实; while
循环将在counter
到达0
后结束。
您在此处使用counter
而不是number
,因为您仍需要稍后使用number
averageIt()
功能。
答案 1 :(得分:1)
您可以自己创建计数器:
number=int(input('Enter a number(integer):'))
total = 0.0
counter = 0
while counter < number:
total += A
A += 1
counter += 17
for
块仍然是更加Pythonic和可读的方式。还要尽量避免在没有验证/ try
块的情况下转换用户输入的结果:如果他输入'abc',您的代码将引发异常ValueError
,因为无法将abc转换为整数
答案 2 :(得分:0)
为什么甚至根本不使用循环?
而不是
for counter in range(number):
total+=A
A+=1
只需使用
total += (number*(number+1) / 2) - (A*(A-1)/2) # account for different starting values of A
A += number