如何在python中使用生成器生成文本?
我想用python生成器生成一个文本 我是一个初学者,最近开始学习python,我在网上搜索过,但没有发现任何有用的东西如何在python中使用生成器生成文本?,python,generator,Python,Generator,我想用python生成器生成一个文本 我是一个初学者,最近开始学习python,我在网上搜索过,但没有发现任何有用的东西 def make_text(n): b = ["hello"] yield n+b n = ['how are you', 'what is your name'] for x in range(2): title = driver.find_element_by_xpath('//*[@id="title"]') title.send_key
def make_text(n):
b = ["hello"]
yield n+b
n = ['how are you', 'what is your name']
for x in range(2):
title = driver.find_element_by_xpath('//*[@id="title"]')
title.send_keys(make_text(n))
我想得到:
hello how are you
hello what's your name?
但我得到了这个错误:
object of type 'generator' has no len()
提前感谢以下是您可以做的基本示例。您需要迭代
yield
ed对象
def make_text(word):
greetings = ['how are you', 'what is your name']
for greet in greetings:
yield "{} {}".format(word, greet)
def say():
texts = ['hello',]
for text in texts:
x = make_text(text)
for n in x:
print(n)
title = driver.find_element_by_xpath('//*[@id="title"]')
title.send_keys(n)
say()
产出
hello how are you
hello what is your name
这里有一个你能做的基本例子。您需要迭代
yield
ed对象
def make_text(word):
greetings = ['how are you', 'what is your name']
for greet in greetings:
yield "{} {}".format(word, greet)
def say():
texts = ['hello',]
for text in texts:
x = make_text(text)
for n in x:
print(n)
title = driver.find_element_by_xpath('//*[@id="title"]')
title.send_keys(n)
say()
产出
hello how are you
hello what is your name
更适合初学者的代码版本是:
def make_text(n):
b = ["hello"]
return n + b
words = ['how are you', 'what is your name']
for word in words:
text = make_text(word)
print(text)
更适合初学者的代码版本是:
def make_text(n):
b = ["hello"]
return n + b
words = ['how are you', 'what is your name']
for word in words:
text = make_text(word)
print(text)
为什么不使用
return n+b
而不是yield n+b
?生成器将与生成器上的迭代一起使用。我在代码中没有这样做。如果迭代生成文本()
标题,代码将不会抛出该错误。send\u keys
检查传递的参数的len
?如果是这种情况,则无法将生成器传递到标题。发送密钥:)。不管怎样,你为什么要用generator
s来完成这个任务?@hansolo我想在循环第一次运行时听到“你好吗”,然后问你叫什么名字time@reportgunner我希望它是一台发电机,我不认为它是一个没有屈服的生成器,为什么不使用返回n+b
而不是产生n+b
?生成器应该与生成器上的迭代一起使用。我在代码中没有这样做。如果迭代生成文本()
标题,代码将不会抛出该错误。send\u keys
检查传递的参数的len
?如果是这种情况,则无法将生成器传递到标题。发送密钥:)。不管怎样,你为什么要用generator
s来完成这个任务?@hansolo我想在循环第一次运行时听到“你好吗”,然后问你叫什么名字time@reportgunner我希望它是一台发电机,我不认为它是一台没有产量的发电机