修复 input() 在 Python 中返回 None
Fix input() returning None in Python
该input()
函数最常None
在向其传递对print()
函数的调用时返回。要解决这个问题,请确保将字符串传递给
input()
函数而不是调用print()
函数。
主程序
# ⛔️ BAD (passing print() call to input()) user_input = input(print('Enter your preferred language: ')) print(user_input) # ------------------------------------------- # ✅ Good (passing a string to input()) user_input = input('Enter your preferred language: ') print(user_input)
该print()
函数打印一条消息并返回None
。
主程序
result = print('hello') print(result) # 👉️ None
如果将对函数的调用传递给print()
函数input()
,它将返回None
.
相反,请确保将字符串传递给input()
函数。
主程序
user_input = input('Enter your preferred language: ') print(user_input)
输入函数接受一个可选prompt
参数并将其写入标准输出而没有尾随换行符。
然后该函数从输入中读取该行,将其转换为字符串并返回结果。
请注意,该
input()
函数始终返回一个字符串,即使用户输入了一个数字。您可以使用print()
函数在使用函数之前或之后打印消息
input()
,但不能在调用函数时打印消息input()
。
主程序
print('This runs before') user_input = input('Enter your preferred language: ') print(user_input) print('This runs after')
如果必须在输入消息中使用变量,请使用格式化字符串文字。
主程序
variable = 'language' user_input = input(f'Enter your preferred {variable}: ') print(user_input)
格式化字符串文字 (f-strings) 让我们通过在字符串前加上f
.
主程序
my_str = 'is subscribed:' my_bool = True result = f'{my_str} {my_bool}' print(result) # 👉️ is subscribed: True
确保将表达式括在大括号 –{expression}
中。
最常见的None
价值来源是:
- 有一个不返回任何东西的函数(
None
隐式返回)。 - 将变量显式设置为
None
. - 将变量分配给调用不返回任何内容的内置函数的结果。
- 具有仅在满足特定条件时才返回值的函数。