Как исправить ошибку

Shid1er

Новичок
Пользователь
Сен 21, 2020
4
0
1
Welcome to Shidler passgen!
Input length of password: 12
Use letters(if yes write 1, if no write 2)?: 1
Ok! Now write generator() to generate your password!
Generating password...
Traceback (most recent call last):
File "/data/data/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 31, in <module>
start(fakepyfile,mainpyfile)
File "/data/data/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 30, in start
exec(open(mainpyfile).read(), __main__.__dict__)
File "<string>", line 21, in <module>
File "<string>", line 18, in generator
UnboundLocalError: local variable 'b' referenced before assignment

[Program finished]


import random
print('Welcome to Shidler passgen!')
password = 'pustokakymenavgolove'
def settings():
a = int(input('Input length of password: '))
b = int(input('Use letters(if yes write 1, if no write 2)?: '))
if b < 1:
print('incorrect value')
settings()
elif b > 2:
print('incorrect value')
settings()
else:
print('Ok! Now write generator() to generate your password!')
settings()
def generator():
print('Generating password...')
while b > 0:
print(random.random())
b -= b
generator()
input()
 

overpathz

Новичок
Пользователь
Авг 10, 2020
13
3
3
21
Так я пришел домой, тебе нужна программа, которая генерирует пароль, длинной значения "a" (length)? У тебя очень много ошибок в коде, я конечно сам нулевой, но все же.

Python:
import random

print('Welcome to Shidler passgen!')
password = 'null'


def settings():
    a = int(input('Input length of password: '))
    b = int(input('Use letters(if yes write 1, if no write 2)?: '))
    while b < 1 or b > 2:
        print(' ')
        print('incorrect value')
        b = int(input('Use letters(if yes write 1, if no write 2)?: '))
    print('Ok! Now write generator() to generate your password!')

settings()

*Это как я сделал функцию settings()*
 
  • Мне нравится
Реакции: Student

overpathz

Новичок
Пользователь
Авг 10, 2020
13
3
3
21
Скинь скрин кода, чтобы было видно отступы, или сам код, соответственно, с отступами. Так как читать и разбирать код без отступов, дык еще питон..Крч жесть)
 

Shid1er

Новичок
Пользователь
Сен 21, 2020
4
0
1
Все отступы соблюдены
 

Shid1er

Новичок
Пользователь
Сен 21, 2020
4
0
1
Скинь скрин кода, чтобы было видно отступы, или сам код, соответственно, с отступами. Так как читать и разбирать код без отступов, дык еще питон..Крч жесть)
 

Вложения

  • Screenshot_2020-09-21-12-22-08.png
    Screenshot_2020-09-21-12-22-08.png
    183,5 КБ · Просмотры: 3

overpathz

Новичок
Пользователь
Авг 10, 2020
13
3
3
21
+ зачем тебе функции, если ты можешь оформить все это с операторами ветвления? + Видимость функций..Крч, сложно, как для тебя, как и для меня, хаха, по этому вот тебе простенький аналог:


Python:
import random

isRunning = True
while isRunning:
    chars = '+-/*!&$#?=@<>abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
    length = int(input('Input length of password: '))
    for n in range(1):
        password = ''
        for i in range(length):
            password += random.choice(chars)
        print(password)
        print(' ')
    choice0 = int(input('Do you want to generate passwors again? (1 - Yes, 2 - No): '))
    if choice0 == 1:
        isRunning
        print(' ')
    elif choice0 == 2:
        isRunning = False
        print(' ')
        print('Bye')
    else:
        print('It means yes?) Okey')
        isRunning
        print(' ')
 

overpathz

Новичок
Пользователь
Авг 10, 2020
13
3
3
21
Еще добавил выбор как у тебя, хочет ли юзер пароль с буквами или нет.

Python:
import random

isRunning = True
while isRunning:

    choice0 = int(input('Do you wanna use chars and letters in your password? (1 - Yes, 2 - No): '))
    if choice0 == 1:
        chars = '+-/*!&$#?=@<>abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
        length = int(input('Input length of password: '))
        for n in range(1):
            password = ''
            for i in range(length):
                password += random.choice(chars)
            print('Your password:', password)
            print()
    if choice0 == 2:
        numberChars = '1234567890'
        length = int(input('Input length of password: '))
        for n in range(1):
            password = ''
            for i in range(length):
                password += random.choice(numberChars)
            print('Your password:', password)
            print()

    choice2 = int(input('Do you wanna generate password again? (1 - Yes, 2 - No): '))
    if choice2 == 1:
        print()
        isRunning
    elif choice2 == 2:
        isRunning = False
        print()
        print('Bye')
    else:
        print()
        print('It means yes?) Okey')
        print()
 

Shid1er

Новичок
Пользователь
Сен 21, 2020
4
0
1
Так я пришел домой, тебе нужна программа, которая генерирует пароль, длинной значения "a" (length)? У тебя очень много ошибок в коде, я конечно сам нулевой, но все же.

Python:
import random

print('Welcome to Shidler passgen!')
password = 'null'


def settings():
    a = int(input('Input length of password: '))
    b = int(input('Use letters(if yes write 1, if no write 2)?: '))
    while b < 1 or b > 2:
        print(' ')
        print('incorrect value')
        b = int(input('Use letters(if yes write 1, if no write 2)?: '))
    print('Ok! Now write generator() to generate your password!')

settings()

*Это как я сделал функцию settings()*
Спасибо
 

Форум IT Специалистов