这里的想法是能够获取用户输入女巫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)
答案 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}什么都不返回。
希望这有帮助!