@vladimir328

Как присвоить значения переменным a и b?

только начал изучать python.Не могу присвоить значения переменным a и b
import random
import tkinter as tk
from tkinter import Tk


root = tk.Tk()

root.geometry('300x300+300+300')




l3 = tk.Label(root, text='Пароли')
l3.pack()
lb1 = tk.Listbox(root, width=40)
lb1.pack()


chars = '+-/*!&$#?=@<>abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'

def generator():
    a = 3
    b = 12
    lb1.delete(0, 'end')
    if a and b:
        for n in range(a()):
            password = ''
            for i in (b()):
                password += random .choice(chars)
            lb1.insert(0,password)
            print(password)



def copy_to_clipboard(event):
    print(event.widget.get('active'))
    root.clipboard_clear()
    root.clipboard_append(event.widget.get('active'))
    root.update()


b1 = tk.Button(root, text='Создать', command=generator)
b1.pack()

lb1.bind('<Button-1>', copy_to_clipboard)

root.mainloop()
  • Вопрос задан
  • 211 просмотров
Пригласить эксперта
Ответы на вопрос 2
Рекомендация - именовать переменные понятными именами, а не a и b. Хотя бы, count и length.

for n in range(a())
Зачем после a скобочки? Как по вашему должна была работать эта конструкция? Уберите их и всё будет куда работоспособнее.
Ответ написан
@inte1ligence
Я тоже только начал изучать Python:
Я бы написал так
import random
user_answer = int(input("Введите количество символов для пароля: "))
symbols = "+-/*!&$#?=@<>abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
password = ""
for s in range(user_answer):
    password += random.choice(symbols)
print(password)

Проверить выполнение кода можно к примеру здесь www.pythontutor.com/visualize.html#mode=edit
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы