所以我知道如何一次打印一个字符,我的基本代码是:
import time
import sys
def delay_print(s):
for c in s:
sys.stdout.write(c)
sys.stdout.flush()
time.sleep(0.2)
delay_print("hello world")
但是我正在制作一款游戏,并且我在所有代码中都使用了delay_print,并且需要一种方法在用户输入中运行它而不会得到这个结果(没有错误,但我没有'我真的想要一个随机的"无"那里。
GetUp=input (delay_print("\nGET UP? Y/N: "))
运行时会显示:
GET UP? Y/N: NoneN
这不是我想要的。
所以我需要的是有人告诉我如何在没有"无"的情况下使用delay_print。出现。除此之外它运行正常。
答案 0 :(得分:3)
只需将其制成两行,然后在没有提示的情况下离开input()
:
delay_print("\nGET UP? Y/N: ")
GetUp = input()
这样,您的print
将按您希望的方式运行,input
将无阻碍地读取用户输入。
当你不必要时,不要使你的生活复杂化;)
如果您坚持在一行中执行此操作,则必须通过添加delay_print
语句来修改return ''
的定义。这样,它将返回而不是默认的None
,而是返回空字符串。
但请注意,GetUp=input(delay_print("\nGET UP? Y/N: "))
不是非常干净的编码样式。在我看来是。
答案 1 :(得分:1)
您可以从""
返回delay_print
,因此input(delay_print("whatever"))
会慢慢打印,然后在该行的末尾打印一个空输入提示,这似乎就是您想要的。< / p>
当前的行为发生是因为delay_print
返回None
,并且input
打印出来作为提示。
答案 2 :(得分:0)
无出现,因为delay_print没有返回任何值。
import time
import sys
def delay_print(s):
for c in s:
if c:
sys.stdout.write(c)
sys.stdout.flush()
time.sleep(0.50)
return ''
#delay_print("hello world")
GetUp=input(delay_print("\nGET UP? Y/N: "))
答案 3 :(得分:0)
如果存在prompt参数,则将其写入标准输出而不带尾随换行符。
你给它一个参数(None
)(作为提示)。因此,解释器首先评估参数。此时,程序执行写入,刷新和休眠。然后它返回input()
(在运行到函数末尾时隐含)。然后将其作为temp = delay_print("\nGET UP? Y/N: ")
# assert temp is None
GetUp = input(temp)
# Same as input(None)
的提示提供。
您的代码就像这样:
delay_print("\nGET UP? Y/N: ")
GetUp = input()
所以,这就是错误。
正确应该是:
var oTable = $('#example').DataTable(
{
"sScrollY": 200,
// "bScrollCollapse": true,
// "bAutoWidth": true,
// "sScrollX": "100%",
// "sScrollXInner": "100%"
});