对循环应该循环9次,而不是在某个循环中循环

2024-04-25 13:04:11 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码应该从用户那里取两个数字,然后说明哪个数字更高,9倍,因此是“counter<;10”,只是它只接受两个数字一次,然后循环结束。我以为我可以通过在循环中使用“counter=counter+1”来增加循环,但它似乎不起作用。任何帮助都将不胜感激,谢谢!在

counter = 0
for counter in range(counter < 10):
    num1 = float(input("Enter number 1: "))
    num2 = float(input("Enter number 2: "))
    if num1 > num2:
        print(num1)
    else:
        print(num2)
    counter = counter + 1

Tags: 代码用户inltnumberforinputcounter
3条回答

counter < 10返回True,它等于1

>>> counter = 0
>>> counter < 10
True
>>> True == 1
True

反过来,range(1)产生{}(单个项目):

^{pr2}$

这就是为什么它循环一次。在


应该使用range(counter < 10),而不是range(counter < 10)。您不需要声明counter = 0,也不需要自己递增counter = counter + 1。^{cd10>注意事项:

>>> for i in range(3):
...     print(i)
... 
0
1
2

为了让您更清楚地了解,首先对括号内的表达式求值。如果要使用for,那么需要传递一个序列,for将在该序列上循环。range()用于生成序列。但是在这里您将(count < 10)传递给range(),这是一个条件。因此,在计算时,它返回True,因为counter是0(在第一行初始化)并且小于10。而这个返回的True相当于1,因此其余部分如false所述

如果要传递条件,则应该使用while循环,而不是for。在for中,甚至不需要分别初始化变量counter。如果你写:

for counter in range(9):

这将初始化counter变量,并在每次迭代中递增。在

对于您的问题,您可以使用以下内容:在

^{pr2}$

或者

# Initialize counter
counter = 0
while(counter <10):
    do_stuff

counter<10相当于1。这就是为什么循环只运行一次(range(1)={0})。在

您可以使用:

for counter in range(10):
    ...

或者

^{pr2}$

为了你的目的。在

相关问题 更多 >