变量未在函数内部定义

时间:2020-11-09 14:26:36

标签: python

def Counter(Num):
    Num = str(Num)
    count = 0
    for i in Num:
        count = count + 1

def Reverse(Number):
    counter(Number)
    Number = str(Number)
    if Number[0] == Number[count]:
        print("The Original and The Reversed numbers are the same\n")
    else :
        print("The Original and the Reversed numbers aren't the same\n")
Reverse(123)

我是一个初学者,我想做一个计数器,然后使用该计数器检查数字是否相同(如果取反),但是我总是会遇到(name "count" is not defined)错误。

2 个答案:

答案 0 :(得分:1)

def Counter(Num):
    Num = str(Num)
    count = 0
    for i in Num:
        count = count + 1
    # count variable is local to Counter function. return the value get make it available from where it is being called
    return count

def Reverse(Number):
    count = Counter(Number)
    Number = str(Number)
    if Number[0] == Number[count-1]: # index starts from zero. last index is count-1.
        print("The Original and The Reversed numbers are the same\n")
    else :
        print("The Original and the Reversed numbers aren't the same\n")
Reverse(123)

它不适用于数字大于3的数字,因为它只检查第一个数字和最后一个数字。

更好的解决方案

def Reverse(Number):
     Number = str(Number)
     if Number == Number[::-1]:  # Number[::-1] reverses the string
         print("The Original and The Reversed numbers are the same\n")
     else :
        print("The Original and the Reversed numbers aren't the same\n")

答案 1 :(得分:0)

def Counter(Num):
Num = str(Num)
count=0
for i in Num:
    count = count + 1

def Reverse(Number):
    count=  Counter(Number)
    Number = str(Number)
    if Number[0] == Number[count-1]:
        print("The Original and The   Reversed numbers are the same\n")
    else :
        print("The Original and the Reversed numbers aren't the same\n")
Reverse(123)

您可以将变量定义为全局变量,也可以进行count-1操作,否则索引超出范围