我是新来的,因为我刚开始编程。在尝试学习Python的基础知识时,我已经遇到了问题。希望你们中的一员能提供帮助。
我很难理解这个代码片段的工作原理。 satz 列表是在 之后引入的,上面的join方法已经使用了它,但是我没有遇到任何错误:
import random
auswahl = [["Hallo!","Guten Tag!","Moin!"],["Wie geht es Ihnen?","Wie läuft's?", "Whazz uppp?"],["Tschüß!","Auf Wiedersehen!","I'm outta here!"]]
for i in auswahl:
print (" ".join(satz))
counter = 0
satz = []
for j in i:
satz.append((auswahl[counter][random.randint(0,2)]))
counter = counter + 1
这是输出:
晕! Wieläuft是?我不在这里!
痛苦! Wie geht es Ihnen? Auf Wiedersehen!
Guten标签! Wie geht es Ihnen? Auf Wiedersehen!
此示例使用大致相同的设置无效:
counter = [1,2,3]
for i in counter:
print(" ".join(test))
test = []
NameError Traceback (most recent call last)
<ipython-input-46-ba80e417be84> in <module>()
1 counter = [1,2,3]
2 for i in counter:
----> 3 print(" ".join(hallo))
4 hallo = []
NameError: name 'hallo' is not defined
在其他线程中我没有发现任何帮助。也许你们其中之一可以提供帮助?提前致谢!
答案 0 :(得分:-1)
如果要随机化计数器列表的顺序,则需要定义测试,如下所示:
import random
test = []
counter = [1,2,3]
for i in counter:
test.append(str(counter[random.randint(0,2)]))
print(" ".join(test))
除非将" ".join(satz)
移至for循环的底部,否则您的第一个示例将不起作用,因为必须在连接satz
之前将其定义,例如:
import random
auswahl = [["Hallo!","Guten Tag!","Moin!"],["Wie geht es Ihnen?","Wie läuft's?", "Whazz uppp?"],["Tschüß!","Auf Wiedersehen!","I'm outta here!"]]
for i in auswahl:
counter = 0
satz = []
for j in i:
satz.append((auswahl[counter][random.randint(0,2)]))
counter = counter + 1
print (" ".join(satz))