You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python初学者求助:逐字打印后接收输入出现None问题

问题解决:输入提示符后出现None的原因及修复

问题原因

你的delay_print函数没有返回值,Python中无return语句的函数默认返回None。你把delay_print的调用结果作为input()的参数,input()会将该参数(即None)追加到提示文本后,因此出现Choose a colour(Red/Black):None的结果。

修复代码

无需将delay_print作为input()的参数,先调用delay_print输出提示,再单独调用input()即可:

import sys
import time

def delay_print(s):
    for c in s:
        sys.stdout.write(c)
        sys.stdout.flush()
        time.sleep(0.01)

delay_print("Choose a colour(Red/Black):")
Colour = input()

可选优化

若想让delay_print能直接作为input的提示使用,可让它返回传入的字符串:

import sys
import time

def delay_print(s):
    for c in s:
        sys.stdout.write(c)
        sys.stdout.flush()
        time.sleep(0.01)
    return s  # 添加返回语句

Colour = input(delay_print("Choose a colour(Red/Black):"))

这样调用时,delay_print会先逐字输出文本,再返回原字符串作为input的提示,不会再出现None。

内容的提问来源于stack exchange,提问作者Mayur Krishna Narah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:55:14