2024-04-26 02:27:44 发布
网友
我正在试用Python,在我非常疲惫的状态下,似乎找不到下面代码的问题:
import sys def printNum(x): y = 0 while y < x: print "Number: ", y y = y + 1 printNum(sys.argv[1])
所以,我试着让它打印yx次。x作为参数传递。循环永远不会结束,我不知道为什么!在
y
x
目前这段代码将把str粘贴到printNum中,但是printNum将输入(x)视为int。要解决此问题,请将输入转换为int:
str
printNum
int
printNum(int(sys.argv[1]))
哎哟!在
你的问题是sys.argv[1]给你一个str,而str总是大于int。在
sys.argv[1]
例如:
>>> '2' < 1 False >>> '1' < 2 False
所以你需要做的是把最后一行改成
作为命令行参数获得的x值将作为字符串而不是整数传入。所有整数被视为小于所有字符串:
>>> 1 < "2" True >>> 3 < "2" True >>> 1000000 < "2" True
…所以你的循环永远不会结束。在
尝试:
目前这段代码将把
str
粘贴到printNum
中,但是printNum
将输入(x
)视为int
。要解决此问题,请将输入转换为int
:哎哟!在
你的问题是
sys.argv[1]
给你一个str
,而str
总是大于int
。在例如:
所以你需要做的是把最后一行改成
^{pr2}$作为命令行参数获得的
x
值将作为字符串而不是整数传入。所有整数被视为小于所有字符串:…所以你的循环永远不会结束。在
尝试:
^{pr2}$相关问题 更多 >
编程相关推荐