I want to print text slowly and also have it as a input, however at the end it says None

前端 未结 1 1374
没有蜡笔的小新
没有蜡笔的小新 2021-01-13 21:19

I have defined this function to print text slowly:

import sys
from time import sleep

def print_slow(s):
    for letter in s:
        sys.stdout.write(letter)         


        
1条回答
  •  南笙
    南笙 (楼主)
    2021-01-13 21:44

    print_slow() returns None which you pass to the input() function. That function uses that argument as the prompt to show the user when asking for input:

    >>> input(None)
    None
    

    None is the default return value of any function, unless you give it an explicit return value with a return statement, which your function lacks.

    Call input() separately, you don't have to give it a prompt to print:

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

    The str() call is redundant, in Python 3, input() returns a string, always.

    0 讨论(0)
提交回复
热议问题