Python 这段代码似乎不起作用为什么我';我很困惑
我正在尝试制作一个程序,计算机从列表中随机选取一个单词,然后将该单词中的字母混洗,但它不起作用。为什么它不起作用Python 这段代码似乎不起作用为什么我';我很困惑,python,shuffle,Python,Shuffle,我正在尝试制作一个程序,计算机从列表中随机选取一个单词,然后将该单词中的字母混洗,但它不起作用。为什么它不起作用 import random mysports= ["swimming" , "basketball" , "soccer" , "cross country" , "football" , "cross-country skiing"] letters = mysports[0] letters1 = mysports[1] letters2 = mysports[2] lette
import random
mysports= ["swimming" , "basketball" , "soccer" , "cross country" ,
"football" , "cross-country skiing"]
letters = mysports[0]
letters1 = mysports[1]
letters2 = mysports[2]
letters3 = mysports[3]
letters4 = mysports[4]
letters5 = mysports [5]
a = (random.choice(mysports))
if a == mysports[0]:
b = random.shuffle(letters)
print (b)
elif a == mysports[1]:
c = random.shuffle(letters1)
print (c)
elif a == mysports[2]:
d = random.shuffle(letters2)
print (d)
elif a == mysports[3]:
e = random.shuffle(letters3)
print (e)
elif a == mysports[4]:
f = random.shuffle(letters4)
print (f)
elif a == mysports[5]:
g = random.shuffle(letters5)
print (g)
当我尝试运行它时,它给了我以下信息:
回溯(最近一次调用last):文件“python”,第23行,在
TypeError:“str”对象不支持项分配
random.shuffle()只能洗牌列表。要做你想做的事,你必须把单词的字母变成一个列表
我建议这样做
import random
mysports= ["swimming" , "basketball" , "soccer" , "cross country" ,
"football" , "cross-country skiing"]
letters = mysports[0]
letters1 = mysports[1]
letters2 = mysports[2]
letters3 = mysports[3]
letters4 = mysports[4]
letters5 = mysports [5]
a = random.choice(mysports)
aList = []
for char in a:
aList.extend(char)
random.shuffle(aList)
aString = ""
for char in aList:
aString += char
print(aString)
它可以更高效地执行您想要的操作。请参阅:将序列x洗牌到位。它修改了现有的顺序;不返回新的。非常感谢您的帮助!!!我花了这么多时间,但我没能得到它。。。无论如何,谢谢你,我从来没有想到会这么做@代码360不客气,请确保将其标记为已接受的答案。我做了,但我还有一个问题。那么,我如何让用户猜出实际单词是什么呢。我把它打印出来了,但按照你的方式,我对如何告诉用户如何猜测它有点困惑,因为我必须为每个人都这么做one@TheCoder360给我20分钟,我会给你回复的。好的,非常感谢,你喜欢专业的编码员吗?我处于中级水平,但我以前从未尝试过列表,我只是开始尝试它们。