在 python 中实现默认参数功能的用户输入
Achieve the user input for default parameter functionality in python
是我编写的 C++
代码,用于在未明确提供参数时默认为用户输入。
过去一周我一直在学习 Python-3.7
并正在尝试实现类似的功能。
这是我试过的代码:
def foo(number = int(input())):
print(number)
foo(2) #defaults to user input but prints the passed parameter and ignores the input
foo() #defaults to user input and prints user input
此代码有效,但不尽如人意。你看,当我将参数传递给 foo()
时,它会打印该参数,而当我不传递任何参数时,它会打印用户输入。问题是,即使传递了一个参数,它也会要求用户输入,比如 foo(2)
,然后忽略用户输入。我如何更改它以按预期工作(因为在传递参数时它不应该要求用户输入)
int(input())
在函数定义 时执行。你应该做的是使用默认值,如 None
,然后在需要时执行 number = int(input())
:
def foo(number=None):
if number is None:
number = int(input())
print(number)
C++
代码,用于在未明确提供参数时默认为用户输入。
过去一周我一直在学习 Python-3.7
并正在尝试实现类似的功能。
这是我试过的代码:
def foo(number = int(input())):
print(number)
foo(2) #defaults to user input but prints the passed parameter and ignores the input
foo() #defaults to user input and prints user input
此代码有效,但不尽如人意。你看,当我将参数传递给 foo()
时,它会打印该参数,而当我不传递任何参数时,它会打印用户输入。问题是,即使传递了一个参数,它也会要求用户输入,比如 foo(2)
,然后忽略用户输入。我如何更改它以按预期工作(因为在传递参数时它不应该要求用户输入)
int(input())
在函数定义 时执行。你应该做的是使用默认值,如 None
,然后在需要时执行 number = int(input())
:
def foo(number=None):
if number is None:
number = int(input())
print(number)