首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python文字游戏

Python文字游戏
EN

Stack Overflow用户
提问于 2013-09-25 15:20:36
回答 5查看 431关注 0票数 1

我试图做一个文字游戏,它将开始一个计时器,将添加一个字母,形成一个字符串每0.05秒,所以它看起来像是有人在键入一个句子。

例如。“你好,这是一个测试”,从h开始,然后e,l,l,o,在一行上打印字母之间的时间间隔。

代码语言:javascript
运行
复制
import time
string = "Hello, this is a test"
count=1
while count >0:
    time.sleep(0.05)
    print(string[:1]),

这是我尝试过的代码,但我只是迷路了,不知道如何继续。有什么办法能让我做到这一点吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-09-25 15:32:41

while循环替换为对要打印的字符串进行迭代的for循环。这将给你的每一个字母轮流,并停止你的循环在最后。我还建议将这种行为置于这样的功能中:

代码语言:javascript
运行
复制
def typeText(text, delay=0.05):
  for character in text:
    print character,
    time.sleep(delay)

typeText("Hello, this is a text")

为了解决空间问题,您可以有三个选项,以便从最大到最小的副作用:

  • 切换到python3,它使用print作为一个函数,其中包含一个可以设置为空字符串的end参数;
  • from __future__ import print_function,它将为您提供相同的打印功能,而不需要python3的所有其他警告;
  • print替换为sys.stdout.write()。默认情况下,这个函数是打印包的。
票数 6
EN

Stack Overflow用户

发布于 2013-09-25 15:23:16

这就是做这个的方法,

编辑:由于OP在打印每个字符后不需要空格,所以我设置了end=''

代码语言:javascript
运行
复制
    import time
    string = "Hello, this is a test"
    count=0
    while count<len(string):
          time.sleep(0.05)
          print (string[count],end='')
          count = count+1
票数 2
EN

Stack Overflow用户

发布于 2013-09-25 15:26:56

试着做这样的事情:

代码语言:javascript
运行
复制
import time
string = "Hello, this is a test"
count=1
for i in string:
    time.sleep(0.05)
    print(i)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19008873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档