这段代码似乎不起作用为什么我不困惑
This code seems not to work why not I'm confused
我正在尝试编写一个程序,让计算机从列表中随机选择一个词,然后随机排列该词中的字母,但它无法正常工作。为什么它不起作用?
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)
这是我尝试 运行 时它给我的结果:
Traceback (most recent call last): File "python", line 23, in
TypeError: 'str' object does not support item assignment
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)
它会做你想做的事,而且效率更高。
我正在尝试编写一个程序,让计算机从列表中随机选择一个词,然后随机排列该词中的字母,但它无法正常工作。为什么它不起作用?
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)
这是我尝试 运行 时它给我的结果:
Traceback (most recent call last): File "python", line 23, in TypeError: 'str' object does not support item assignment
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)
它会做你想做的事,而且效率更高。