带有变量的sys.stdout.write()和.flush()

时间:2017-11-08 17:00:55

标签: python python-3.x pycharm python-3.6

我一直在研究RPG游戏,我喜欢sys.stdout.write()和.flush()如何给它输入字母的效果。但是,当我将一个变量放入我要输入的句子中时,它不会输出句子的任何位,甚至不是我引用的部分(非变量)。我想知道是否有办法绕过这个并没有包括我为变量编写单独的代码块以及引号中的内容,并且可能使它键入变量。

if girl1 == True:
   t="You and",girl1realname,"have found a sandy beach while looking for a 
   place of shelter. \nWhether you look left or right, the beach ranges for 
   miles.\n"
   y=girl1realname+": 'Hey, I guess I always wanted a house on the beach...I 
   think. I can't really remember.'\n"
   for char in (t):
       time.sleep(0.05)
       sys.stdout.write(char)
       sys.stdout.flush()
   time.sleep(1)
   for char in (y):
       time.sleep(0.05)
       sys.stdout.write(char)
       sys.stdout.flush()

1 个答案:

答案 0 :(得分:1)

在你对t的定义中,逗号会使它成为一个元组。迭代然后应该一次写入每个块("You and"girl1realname"have found...")而不是每个块中的每个字符。将逗号替换为+

您对y的定义似乎没有问题。

至于重用,你可以定义一个函数:

def typeout(x):
  for char in x:
    time.sleep(0.05)
    sys.stdout.write(char)
    sys.stdout.flush()

用过:

typeout(t)
time.sleep(1)
typeout(y)