`而y<x'循环永远不会结束

2024-04-26 02:27:44 发布

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

我正在试用Python,在我非常疲惫的状态下,似乎找不到下面代码的问题:

import sys

def printNum(x):
    y = 0
    while y < x:
        print "Number: ", y
        y = y + 1

printNum(sys.argv[1])

所以,我试着让它打印yx次。x作为参数传递。循环永远不会结束,我不知道为什么!在


Tags: 代码importnumber状态defsysprintwhile
3条回答

目前这段代码将把str粘贴到printNum中,但是printNum将输入(x)视为int。要解决此问题,请将输入转换为int

printNum(int(sys.argv[1]))

哎哟!在

你的问题是sys.argv[1]给你一个str,而str总是大于int。在

例如:

>>> '2' < 1
False
>>> '1' < 2
False

所以你需要做的是把最后一行改成

^{pr2}$

作为命令行参数获得的x值将作为字符串而不是整数传入。所有整数被视为小于所有字符串:

>>> 1 < "2"
True
>>> 3 < "2"
True
>>> 1000000 < "2"
True

…所以你的循环永远不会结束。在

尝试:

^{pr2}$

相关问题 更多 >