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 中时,输出总是 _____ _____ _____ 并且当它在它之外时,它按我的预期工作
因为当你多次调用函数时,Num_to_MorseCode
,如果你的n = int()
在你的函数内部,它每次调用函数时都会重置num
,而不是如果你在外面声明它。这就是原因。