繁体   English   中英

我不断收到此错误: ValueError: invalid literal for int() with base 10: ''

[英]I keep getting this error: ValueError: invalid literal for int() with base 10: ''

我正在尝试用 tkinter 做我的第一个项目:它是一个 gui 密码生成器(我已经用 python 完成了一个非 gui 密码生成器,所以我确信生成它的代码是可以的)但我遇到了麻烦使用户的输入成为 integer 并且我不断收到此错误:

ValueError: invalid literal for int() with base 10: ''

这是代码:

import tkinter as tk
import random

root = tk.Tk()

canvas = tk.Canvas(root, width=600, height=350)
canvas.grid()

#Labels
label1 = tk.Label(root, text = "How many characters?")
label1.place(x = 30, y = 50)
label2 = tk.Label(root, text = "How many passwords?")
label2.place(x = 30, y = 100)

#Entry box
box1 = tk.Entry(width = 20)
box1.place(x = 200, y = 50)

box2 = tk.Entry(width = 20)
box2.place(x = 200, y = 100)


answer = tk.Label(root, text = "")
answer.place(x = 260, y = 200)

pass_lenght = int(box1.get())
num_pass = int(box2.get())

def password_generator():
    characters = "abcdefghilmopqrstuvzxwjkyèàòìùABCDEFGHILMNOPQRSTUVZWJKYX1234567890!£$%&/()=?^*§ç°:_;€"
    for x in range(0, pass_lenght):
        empty_password = ""
        for x in range(0, num_pass):
            real_password = random.choice(caratteri)
            empty_password    = empty_password + real_password
        print("Here's your password: ", empty_password)

#Button
button = tk.Button(root, text = "Commit", command = password_generator())
button.place(x = 260, y = 150)


root.mainloop()
  1. 命令应不带括号 ()
  2. 在任何输入之前调用 pass_lenght = int(box1.get()) 是没有意义的

.

import tkinter as tk   
import random

root = tk.Tk()

canvas = tk.Canvas(root, width=600, height=350)
canvas.grid()

#Labels
label1 = tk.Label(root, text = "How many characters?")
label1.place(x = 30, y = 50)
label2 = tk.Label(root, text = "How many passwords?")
label2.place(x = 30, y = 100)

#Entry box
box1 = tk.Entry(width = 20)
box1.place(x = 200, y = 50)

box2 = tk.Entry(width = 20)
box2.place(x = 200, y = 100)


answer = tk.Label(root, text = "")
answer.place(x = 260, y = 200)



def password_generator():
    pass_lenght = int(box1.get())
    num_pass = int(box2.get())
    characters = "abcdefghilmopqrstuvzxwjkyèàòìùABCDEFGHILMNOPQRSTUVZWJKYX1234567890!£$%&/()=?^*§ç°:_;€"
    for x in range(0, pass_lenght):
        empty_password = ""
        for x in range(0, num_pass):
            real_password = random.choice(characters)
            empty_password    = empty_password + real_password
        print("Here's your password: ", empty_password)
    

#Button
button = tk.Button(root, text = "Commit", command = password_generator)
button.place(x = 260, y = 150)


root.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM