如果用户将从键盘输入值,我必须设置默认值。以下是用户可以输入值的代码:
input = int(raw_input("Enter the inputs : "))
在输入数值并按下Enter键后,该数值将被赋给名为input
的变量。是否有一种方法,即使我们没有输入数值,直接按下Enter键,变量也会被直接赋一个默认值,比如说input = 0.025
?
如果用户将从键盘输入值,我必须设置默认值。以下是用户可以输入值的代码:
input = int(raw_input("Enter the inputs : "))
在输入数值并按下Enter键后,该数值将被赋给名为input
的变量。是否有一种方法,即使我们没有输入数值,直接按下Enter键,变量也会被直接赋一个默认值,比如说input = 0.025
?
Python 3:
inp = int(input("Enter the inputs : ") or "42")
Python 2:
inp = int(raw_input("Enter the inputs : ") or "42")
input
/raw_input
将返回空字符串。在Python中,空字符串为False
,bool("") -> False
。运算符or
返回第一个真实值,这种情况下为"42"
。True
。input
将是非常糟糕的名称。 - aisbaainput
是一个内置函数,你将用语句的输出替换了该函数。在实践中,这可能并不是什么大问题,但如果你需要在函数中稍后再次调用input
,你会发现它不像预期的那样工作,因为现在input
是一个整数。 - NimbusScale一种方法是:
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"
你可以像这样做:
>>> try:
input= int(raw_input("Enter the inputs : "))
except ValueError:
input = 0
Enter the inputs :
>>> input
0
>>>
您也可以使用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
您可以先输入一个字符串,然后检查长度是否为零并检查其是否为有效数字:
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
这是一个示例,用于验证用户输入是否为数字,并在他未输入任何内容时设置默认值。
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))