延迟文本时,输出以 none 结尾



我正在尝试制作一款基于文本的冒险游戏。 我是 Python 的新手 我试图像旧游戏中那样延迟文本。

from time import sleep
import sys
def de(string):
for c in string:
print(c, end='')
sys.stdout.flush()
sleep(0.1)

在整个代码中,执行以下操作:

print(de("nPlayer health: "), player_health,)

user_fighter = input(de("what is the name of your fighter?"))

输出始终以"无"结尾

例如Player health: None 100

我该如何解决这个问题?

您的de函数不返回任何内容,因此返回值为None。 此外,函数中已经有一个print可以执行您尝试执行的操作。 因此,您可以直接调用de函数,而不是在print中调用它。

法典

from time import sleep
import sys
def de(string):
for c in string:
print(c, end='')
sys.stdout.flush()
sleep(0.1)
# ...
# Code
# ...
de("nPlayer health: ")
print(player_health)

输出

Player health: 100

"玩家生命值"逐个字母显示,值在之后立即显示。

有两个函数怎么样。一个输出文本,另一个输出文本但返回用户条目。

from time import sleep
import sys
def de(string, end='n'):
for c in string:
print(c, end='')
sys.stdout.flush()
sleep(0.1)
print(end,end='')
def de_input(string):
de(string, end='')
return input()
de("Welcome to game")
name = de_input("What is your name?")
de("Welcome %s" % name)

最新更新