【问题标题】:How to use raw_input with no input如何在没有输入的情况下使用 raw_input
【发布时间】:2017-05-06 13:56:39
【问题描述】:

我想在 Python 中使用raw_input() 函数。 我想从用户那里收到一个关于存储大小的数字 我写下来了:

number=raw_input()

如果用户不提供输入,那么number = 10 所以

if number is None:
   number = 10

当我打印数字时,我什至没有尝试过:

if number==-1:
   number=10
print"the storage size was set to:",number

输出是:

> 存储大小设置为 -1

而不是10

那我应该怎么解决呢?

【问题讨论】:

  • 你用的是什么python版本?此外,number 将始终是 string
  • raw_input() 返回一个字符串,并且您正在检查整数是否相等。条件将始终返回 false。在第一种情况下,如果您不输入任何内容,它将只是空白字符串(''

标签: python python-2.7 input raw-input


【解决方案1】:

如果您不想区分“无输入”和“无效输入”(如非整数文字),请设置默认值,然后尝试将其替换为用户输入。

number = 10
try:
    number = int(raw_input())
except (EOFError, ValueError):
    pass

ValueError 将在无效输入时引发,包括空字符串。 EOFError 如果用户在终端中执行类似 Control-d 的操作,将其解释为关闭标准输入。

【讨论】:

    【解决方案2】:

    首先,您必须使用int() 函数将输入(raw_input 默认为字符串)转换为int。但请确保您首先检查用户是否输入了某些内容。否则你不能转换一个空字符串。例如:

    num_input = raw_input()
    if num_input:
        number = int(num_input)
    

    那么你的问题的第二部分已经可以工作了:

    if number == -1:
        number = 10
    print "the storage size was set to:", number
    

    第二点是空的string不等于NoneNoneNoneType 的唯一值,""string

    因此您可以将输入与空字符串进行比较,但您可以做得更好(空字符串被评估为False):

    if not num_input:
        number = 10
    

    为了更高效,您只需在我的第一段代码中添加 else 语句:

    num_input = raw_input()
    if num_input:
        number = int(num_input)
    else:
        number = 10
    

    【讨论】:

      【解决方案3】:

      比较数字和空字符串;不是 None

      if number == '':  
          number = 10     
      

      【讨论】:

        【解决方案4】:

        在 Python 中,当变量为空时,它的内部为空 '', 因此,如果您想检查您的变量是否未设置,您需要将其与 '' 进行比较,而不是与 None 进行比较。

        if number=='':
           number=10
        

        【讨论】:

          【解决方案5】:

          你应该只比较数字和空。:

          if number=="":
              number==10
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-06-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-05-20
            相关资源
            最近更新 更多