Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 空用户输入的默认值_Python_User Input_Default Value - Fatal编程技术网

Python 空用户输入的默认值

Python 空用户输入的默认值,python,user-input,default-value,Python,User Input,Default Value,在这里,如果用户将从键盘输入值,我必须设置默认值。以下是用户可以输入值的代码: input = int(raw_input("Enter the inputs : ")) 在这里,输入值并按Enter键后,该值将分配给变量input。有没有一种方法,如果我们不输入值并直接按enter键,变量将直接分配给默认值,比如说input=0.025?您可以这样做: >>> try: input= int(raw_input("Enter the inputs : "))

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

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

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

您可以这样做:

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

Enter the inputs : 
>>> input
0
>>> 
Python 3:

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

input = int(raw_input("Enter the inputs : ") or "42")
它是如何工作的

如果未输入任何内容,则
input
/
raw\u input
返回空字符串。Python中的空字符串是
False
bool(“”)->False
。运算符
返回第一个真值,在本例中为
“42”


这不是复杂的输入验证,因为用户可以输入任何内容,例如十个空格符号,这些符号将是
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()


以上大多数答案都是正确的,但对于Python3.7,您可以通过以下方法设置默认值

user_input = input("is this ok ? - [default:yes] \n")
if len(user_input) == 0 :
    user_input = "yes"
您还可以使用,它为命令行界面提供了许多有用的功能:

import click

number = click.prompt("Enter the number", type=float, default=0.025)
print(number)
输入示例:

输入数字[0.025]:
3#输入了一些数字
3

输入数字[0.025]:
#按enter键,无需任何输入
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))

... 如果用户只点击Enter
input
这是Python中的内置函数,那么这将失败,您可能需要使用不同的变量名…相关但不重复:这与中的想法相同。此外,您可能想将“Python3.7”改为“Python3”,因为在那之前也有。将变量命名为“input”不是很糟糕吗?这取决于上下文,如果消息会说“输入您有多少个苹果”,那么是的
input
将是一个非常糟糕的名称。@Anchitharya,我同意这是一种不好的做法,因为
input
是一个内置函数,您将用语句的输出替换该函数。实际上,这可能没什么大不了的,但是如果您以后需要在函数中再次请求
输入
,您会发现它没有按预期工作,因为
输入
现在将是一个
int
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))