为什么我的字符串不支持项目分配

时间:2017-12-09 16:22:32

标签: string python-3.6

这里的想法是能够获取用户输入女巫Main并将其值重新洗牌并重新输入Second条目,错误消息:x [i],x [ j] = x [j],x [i] TypeError:' str'对象不支持项目分配

from tkinter import *
import random


def randomize(a):
    Second.delete(0 , 'end')
    b = Main.get()
    c = random.shuffle(b)
    Second.insert(0 , c)








root = Tk()



Main = Entry(root)
Main.grid(row = 1,column = 0 , sticky = 'we')

Second = Entry(root)
Second.grid(row = 2 , column = 0 , sticky = 'we')


randombutton = Button(root , text = 'Randomize')
randombutton.grid(row = 3 , column = 0 , sticky = 'we')
randombutton.bind('<Button-1>' , randomize)

1 个答案:

答案 0 :(得分:0)

问题是你试图在一个字符串上调用random.shuffle,这是不可能的(同样,你试图将其输出分配给c,这将只返回{{} 1}})。相反,您可能希望将其转换为列表,然后返回到字符串以在None内输出。

请参阅以下代码:

Second

注意:def randomize(a): Second.delete(0 , 'end') b = Main.get() c = list(b) random.shuffle(c) # Converted to a list, so it can be shuffled, see note for extra info Second.insert(0 , ''.join(c)) # Converted back into a string so it can be displayed 不会返回任何值,它只是随机播放(并因此更改)您放入其中的变量。例如,在代码random.shuffle中,c = random.shuffle(b)现在等于对输入框中的任何内容进行随机混乱,而b现在等于c,如{{1}什么都不返回。

希望这有帮助!