如何在[:]
中使用lentgh
变量?
我想使用一个变量,因为我在tkinter
中有一个Combobox
。我收到这个错误
TypeError:切片索引必须是整数或None,或者具有索引方法
from tkinter import *
from tkinter import ttk
import random
window = Tk()
window.resizable(False , False)
window.title('Password Generator')
window.geometry('400x200')
lentgh = IntVar()
lbl = StringVar()
var1 = StringVar()
Alphabet = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
showpass = ttk.Label(window , textvariable = lbl).pack()
def randalp():
string = list(Alphabet)
random.shuffle(string)
return string[:lentgh]
ttk.Label(window , text = 'Password Lentgh:').pack()
numchoosen = ttk.Combobox(window, width = 12 , textvariable = lentgh)
numchoosen['values'] = (5,6,7,8,9,10)
numchoosen.pack()
numchoosen.current(2)
numchoosen.config(state = 'readonly')
rad1 = ttk.Checkbutton(window , text = 'Alphabet' , variable = var1).pack()
def btnclick():
get1 = var1.get()
if get1 == '1':
lbl.set(randalp())
btn = ttk.Button(window , text = 'Generate' , command = btnclick).pack()
window.mainloop()
使用变量动态切片字符串
上面的文章提供了一些关于用变量动态切片字符串的好技巧。
如果我理解你试图正确地做什么,你试图输入长度并根据该长度随机生成密码?