修复 input() 在 Python 中返回 None

修复 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价值来源是:

  1. 有一个不返回任何东西的函数(None隐式返回)。
  2. 将变量显式设置为None.
  3. 将变量分配给调用不返回任何内容的内置函数的结果。
  4. 具有仅在满足特定条件时才返回值的函数。

发表评论