如何计算Python中下一个要打印的字符串的长度?
How to calculate the length of the next string that is going to be printed in 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)
首先,您必须 return 来自第一个函数的内容,在您的情况下是:
在 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()
我正在尝试根据字符串的长度创建延迟。但是延迟必须在字符串打印到控制台之前发生。目标是为冒险游戏添加一点真实感。
这是我目前想出的代码。我知道这不对,但这是我使用 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)
首先,您必须 return 来自第一个函数的内容,在您的情况下是:
在 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()