如何解决如何计算将在Python中打印的下一个字符串的长度?
我正在尝试根据字符串的长度创建延迟。但是延迟必须在字符串在控制台中打印之前发生。目的是为冒险游戏增添一些真实感。
这是我想出的当前代码。我知道这是不对的,但这是我使用Python的第一周。
import time
def calculate_text_speed(delay):
delay = text.len() / 20
def start_game():
calculate_text_speed(delay)
time.sleep(calculate_text_speed.delay)
print("Test message.")
我应该创建一个带有对话框的列表以预先计算字符串吗?这可能会降低代码的可读性,对吧?
解决方法
也许这就是您不声明文本的意思?
def print_with_delay(text):
time.sleep(len(text) / 20)
print(text)
print_with_delay("Some very exciting things are happening....")
原始答案: 您可以创建易于阅读的代码,而无需提前生成文本列表。
主要问题是您将错误的内容传递给calculate_text_speed。试试这个。
import time
text = "Some very exciting things are happening...."
#pass text to the calculate_text_speed function
def calculate_text_speed(text):
return len(text) / 20
time.sleep(calculate_text_speed(text))
print(text)
,
首先,您必须从第一个函数返回某些内容,具体情况是:
在python中,字符串长度是len(text)而不是text.len()
return (len(text)() / 20)
然后函数将如下所示:
def calculate_text_speed(text):
return (len(text) / 20)
现在可以计算文字长度, 您可以在全局或本地传递文本变量。我现在要做你想要的。我假设您要在本地使用它,因此在这种情况下,您的第二个功能会类似:
def start_game(text):
time.sleep(calculate_text_speed(text))
print("Test message.")
如果要全局定义文本变量,则:
text = "something"
def calculate_text_speed():
return (len(text) / 20)
def start_game():
time.sleep(calculate_text_speed())
print("Test message.")
start_game()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。