如何将空输入转换为定义的变量?

How can I turn an empty input into a defined variable?

我是 python(一般代码)的超级新手 我正在为 python 3.

中的函数做一些练习

我知道这可能是草率的代码,我会在学习的过程中努力清理它。

def show_employee():
    name = input("Employee name:  ")
    salary = int(input("Employee salary:  "))
    default = 9000
    
    
    if salary <= 9000:
        return (f'{name}, {default}')
    elif len(salary) == 0:
        return (f'{name}, {default}')
    else:
        return (f'{name}, Salary: {salary}')

我继续收到此错误“以 10 为底的 int() 的无效文字:''

我想要完成的是,如果用户输入的数字不超过 9000,它会 returns 他们的名字和 9000。如果他们输入任何超过 9000 的东西,它 returns 他们的名字和他们的输入值。令我困惑的部分是我怎样才能得到它,如果他们不输入工资值,它会默认为 9000?

感谢您花时间提供帮助!

执行此操作的最佳时间是您定义 salary 的时间。如果你只想处理空字符串的情况,你可以这样做:

salary = int(input("Employee salary:  ") or 9000)

这是有效的,因为 x or y 将评估为 x 如果它是“真实的”,而 y 如果不是 - 因此 thing = maybe_thing or default_thing 是分配一个default_thing 如果 maybe_thing 是任何“虚假”值(包括空字符串)。

如果您想用 9000 替换 任何 无效输入,try/except 会更合适:

try:
    salary = int(input("Employee salary:  "))
except ValueError:
    salary = 9000

而不是立即将输入转换为 int:

salary = int(input("Employee salary:  "))

首先检查输入是否为空,如果需要则转为字符串:

salary = input("Employee salary:  ")
if not salary:  # Meaning, len(salary) == 0
    salary = default
else:
    salary = int(salary)