空用户输入的默认值

这里我必须设置默认值,如果用户将从键盘输入值。下面是用户可以输入值的代码:

input = int(raw_input("Enter the inputs : "))

这里,在输入值并命中 Enter之后,该值将被赋给一个变量 input。有没有一种方法,如果我们不输入值,直接按下 Enter键,变量将被直接分配到一个默认值,比如说 input = 0.025

135023 次浏览

你可以这样做:

>>> try:
input= int(raw_input("Enter the inputs : "))
except ValueError:
input = 0


Enter the inputs :
>>> input
0
>>>

巨蟒3:

input = int(input("Enter the inputs : ") or "42")

巨蟒2:

input = int(raw_input("Enter the inputs : ") or "42")

它是怎么工作的?

如果没有输入任何内容,则 input/raw_input返回空字符串。Python 中的空字符串是 Falsebool("") -> False。运算符 or返回第一个 true 值,在本例中为 "42"

这不是复杂的输入验证,因为用户可以输入任何东西,例如10个空格符号,然后就是 True

您可以首先输入一个字符串,然后检查长度为零和有效数字:

input_str = raw_input("Ender the number:")


if len(input_str) == 0:
input_number = DEFAULT
else:
try:
input_number = int(input_str)
except ValueError:
# handle input error or assign default for invalid input

一种方法是:

default = 0.025
input = raw_input("Enter the inputs : ")
if not input:
input = default

另一种方式可以是:

input = raw_input("Number: ") or 0.025

Python 3也是如此,但是使用 input():

ip = input("Ip Address: ") or "127.0.0.1"

上面的大多数答案都是正确的,但是对于 Python 3.7,下面是设置默认值的方法。

user_input = input("is this ok ? - [default:yes] \n")
if len(user_input) == 0 :
user_input = "yes"

您也可以使用 click,它为命令行接口提供了许多有用的功能:

import click


number = click.prompt("Enter the number", type=float, default=0.025)
print(number)

输入例子:

Enter the number [0.025]:
3  # Entered some number
3.0

或者

Enter the number [0.025]:
# Pressed enter wihout any input
0.025

下面的示例验证用户输入是否为数字,如果用户不输入任何内容,则还设置默认值。

while True:
luckyNo = input("Enter your lucky number - [default:108]: ").strip()
if luckyNo.isdigit(): # check if user entered a number
luckyNo = int(luckyNo) # convert entered number to integer
break
else:
if not luckyNo: # user entered nothing
print("You entered nothing. Using default value...")
luckyNo = 108 # set default value
break
else: # user entered something other than a number
print("Wrong input!. Try again.")


print("Your lucky number is " + str(luckyNo))