我是Python的初学者,我需要一些相对简单的“帮助”(对于非初学者)。
我想要做的是一个快速的'程序',它测量输入的字符串的长度。也许我看起来不够努力,但我似乎无法在互联网上找到任何关于此的特定信息。
好的,这就是我到目前为止所做的:
print "Please enter a number or word and I will tell you the length of it."
NR = raw_input()
print len(NR)
* NR没有重要意义,它只是一个随机变量名称
一切都按预期工作。例如,我输入单词“Hello”然后它回复“5”或我输入数字100并回复“3”这很好,但当我尝试输入另一个单词时我得到这个错误:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
hello
NameError: name 'hello' is not defined
然而,当我输入另一个号码(在我输入之后)时,它只重复我输入的号码。例如,当我第一次输入数字“50”时,它回复“2”,但是当我第二次输入“50”时,它只是重复整数给我。
注意: 我认为我理解第一部分的问题:它不能多次工作,因为变量“NR”只计算为输入的第一个字符串。即使我是对的,我仍然不知道解决方案。
答案 0 :(得分:3)
您的程序只收集一行输入,然后完成。程序完成后,您将回到用于启动程序的任何环境中。如果该环境是python shell,那么您应该期望键入50
将打印50
,并且键入hello
将打印出一个no-such-variable-name错误消息。
要使代码多次运行,请将其置于while循环中:
while True:
print "Please enter a number or word and I will tell you the length of it."
NR = raw_input()
print len(NR)
请注意,raw_input()
可以打印提示,因此您不需要print
声明:
while True:
NR = raw_input("Please enter a number or word and I will tell you the length of it: ")
print len(NR)
此程序片段将永久运行(或者,至少在您使用 Control - C 中断它之前)。
如果您希望能够在不中断程序的情况下停止,请尝试以下操作:
NR = None
while NR != '':
NR = raw_input("Please enter a number or word (or a blank line to exit): ")
print len(NR)
如果您想打印一次提示,然后使用可以输入许多字符串,请尝试:
print "Please enter a number or word and I will tell you the length of it."
while True:
NR = raw_input()
print len(NR)