почему позиция n = int() (снаружи и внутри def) имеет значение?

#python #python-3.x #global-variables

#python #python-3.x #глобальные переменные

Вопрос:

 n = int()

def Num_to_MorseCode(n):
    if n >= 0 and n < 5:
        return '*'*n   '_'*(5-n)
    elif n < 10 and n >= 5:
        return '_'*(n-5)   '*'*(10-n)


num = input("Enter num: ")
if len(num) == 3:
    print(Num_to_MorseCode(int(num[0])), Num_to_MorseCode(int(num[1])), Num_to_MorseCode(int(num[2])))
else:
    print('error/num != 3 digit number!')
  

когда n = int () находится в def, вывод _____ _____ _____ всегда и когда это вне его, это работает так, как я задумал

Комментарии:

1. n= int() эквивалентно n = 0. При размещении внутри функции параметр n сбрасывается. Удалите n = int() полностью, вам это не нужно.

Ответ №1:

Потому что, когда вы вызываете функцию несколько раз, Num_to_MorseCode если ваша n = int() функция находится внутри вашей функции, она сбрасывает num каждый раз, когда вы вызываете функцию, а не если вы объявляете ее снаружи. Вот почему.