繁体   English   中英

在while循环中使用raw_input并将其分配给变量?

[英]using raw_input in a while loop and assigning it to a variable?

is42= False
while(raw_input()):
    d = _
    if d == 42:
      is42 = True
    if not is42:
      print d

对于此python代码块,我想在交互式提示模式之外使用。 所以我不能使用_作为最后的输出。 如何将raw_input分配给变量? 我正在一个站点外锻炼。 输入是大约5个值,我想为每个对应的输入值吐出一些输出。 接受此输入的最佳方法是什么?

这似乎是非常低效的逻辑。 您还真的需要is42状态标志吗? 如果没有,您可能想要类似

stuff = raw_input()
while stuff:
    if stuff != "42":
         print stuff
    stuff = raw_input()

这样足以解决您的麻烦吗?

is42=False
while(!is42):
    d = int(raw_input("Enter a number: "))
    is42 = d==42
    print "d = ", d

如果我正确理解了您的问题的要求,就应该这样做。

嗨,欢迎来到Python!

raw_input()函数以字符串形式返回输入。 因此,在d = _ ,可以将其替换为d = raw_input() 我要问你的一个问题是,为什么你在while条件下拥有它? 如果您希望它不断询问用户一个数字,则将while(raw_input()):替换为while True: while(raw_input()):

还有一件事, raw_input()总是返回一个字符串。 因此,如果您运行print '30' == 30 ,您将看到字符串表示形式30与数字表示形式30不相等。但这不是问题! 通过将d = raw_input()替换为d = int(raw_input())可以将raw_input()的返回值转换为整数类型。

现在,当用户为您提供无法转换为整数的输入,但是处理可能对您来说是一个练习时,就会出现另一个问题。 :)

最终代码:

is42= False
while True:
    d = int(raw_input())
    if d == 42:
      is42 = True
    if not is42:
      print d

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM