Есть local variables
и global variables
.
Вы создаете nam
внутри gen()
, и это локальная переменная, которая существует только внутри gen()
, но не снаружи gen()
.
Но за пределами gen()
вы пытаетесь получить значение из nam
pas = nam + nam + number + number + nam + number
, но Python не знает, как получить значение из переменной, которая не существует вне gen()
.
Внутри gen()
вы можете использовать return nam
для отправки значения из функции во внешнюю функцию.
И тогда вы можете запустить gen()
и передать возвращаемое значение переменной.Это может быть nam
.
nam = gen()
Таким образом, вы создаете локальную переменную nam
, которая существует вне get()
, но не внутри get()
.Для Python это будут две разные переменные.
У вас та же проблема с number
в функции num()
вместо string.ascii_letters(num)
(что неверно) и num
Iбудет использовать string.digits
import random
import string
def gen():
let1 = random.choice(string.ascii_lowercase)
let2 = random.choice(string.ascii_lowercase)
let3 = random.choice(string.ascii_lowercase)
let4 = random.choice(string.ascii_lowercase)
let5 = random.choice(string.ascii_lowercase)
nam = let1 + let2 + let3 + let4 + let5
return nam
def num():
number = random.choice(string.digits)
return number
nam = gen()
number = num()
pas = nam + nam + number + number + nam + number
print(pas)
Чтобы сделать его чище, я меняю имена внутри функций - теперь это только один nam
и один number
import random
import string
def gen():
let1 = random.choice(string.ascii_lowercase)
let2 = random.choice(string.ascii_lowercase)
let3 = random.choice(string.ascii_lowercase)
let4 = random.choice(string.ascii_lowercase)
let5 = random.choice(string.ascii_lowercase)
result = let1 + let2 + let3 + let4 + let5
return result
def num():
result = random.choice(string.digits)
return result
nam = gen()
number = num()
pas = nam + nam + number + number + nam + number
print(pas)
Я также могу удалитьпеременные result
import random
import string
def gen():
let1 = random.choice(string.ascii_lowercase)
let2 = random.choice(string.ascii_lowercase)
let3 = random.choice(string.ascii_lowercase)
let4 = random.choice(string.ascii_lowercase)
let5 = random.choice(string.ascii_lowercase)
return let1 + let2 + let3 + let4 + let5
def num():
return random.choice(string.digits)
nam = gen()
number = num()
pas = nam + nam + number + number + nam + number
print(pas)