我想慢慢地打印文本,也可以将其作为输入,但是最后它说无


问题内容

我定义了此功能来缓慢打印文本:

import sys
from time import sleep

def print_slow(s):
    for letter in s:
        sys.stdout.write(letter)
        sys.stdout.flush()
        time.sleep(0.075)

s_name = str(input(print_slow("\n\nWhat is your name?   (EASTER EGG CODE: \"blackbeard\")\n>>")))

慢速文本有效,但是在输入末尾输出:

What is your name?   (EASTER EGG CODE: "blackbeard")
>>None

我该如何摆脱None


问题答案:

print_slow()返回None传递给input()函数的内容。该函数使用该参数作为 提示 ,要求用户输入时显示给用户:

>>> input(None)
None

None是任何函数的默认返回值,除非您使用return语句为它提供了一个显式的返回值,而函数却没有此声明。

呼叫input() 分别 ,你不要 给它一个提示打印:

print_slow("\n\nWhat is your name?   (EASTER EGG CODE: \"blackbeard\")\n>>")
s_name = input()

str()调用是多余的,在Python 3中input()始终返回一个字符串。