我正在测试一个print函数,它看起来好像是在输入提示符,定义为type()
我想使用type函数存储原始输入:
from time import sleep import sys from random import uniform def type(s): for c in s: sys.stdout.write('%s' % c) sys.stdout.flush() sleep(uniform(0, 0.3)) name = raw_input(type("What is your name? ")) type("Hello " + name +"\n")
这是代码的输出:
你叫什么名字?没有
在"无"之后,仍然允许用户输入,输出将被正确打印,没有"无".有没有办法规避这个?
在这个提示中,我想使用type函数打印所有内容.
raw_input
将你传递给它的arg变成一个字符串并将其用作提示符.您正在传递raw_input
类型函数的返回值,并且该函数返回默认值None
,因此这就是打印"无"的原因.因此,只要用你的函数之前调用raw_input
和呼叫raw_input
没有ARG.
顺便说一句,你应该不使用 type
作为变量或函数的名称,因为这是一个内置函数的名称.
from time import sleep import sys from random import uniform def typer(s): for c in s: sys.stdout.write('%s' % c) sys.stdout.flush() sleep(uniform(0, 0.3)) typer("What is your name? ") name = raw_input() typer("Hello " + name + "\n")