我正试图用这个小的python代码交换数字。
当我输入两个输入时,我仍然不明白为什么它会给我None
class numbers:
def __init__(self, first, second):
self.first=first
self.second=second
def swap(self):
def swapp(a):
i=0
rev=0
a=int(a)
while (a>0):
i=a%10
a=int(a/10)
rev=rev*10+i
return rev
var1=numbers(int(input("num1 \n")),int(input("num2 \n")))
var1_1=numbers.swap(var1)
print(var1_1)
输出:
num1
5468
num2
625652
None
没有任何提示
答案 0 :(得分:1)
class numbers:
def __init__(self, first, second):
self.first=first
self.second=second
def swap(self, x):
def swapp(a):
i=0
rev=0
a=int(a)
while (a>0):
i=a%10
a=int(a/10)
rev=rev*10+i
return rev
return swapp(x)
var1=numbers(int(input("num1 \n")),int(input("num2 \n")))
var1_1=var1.swap(12)
print(var1_1)
>> 21 # i.e. Reverse of 12 meant as an output of swapp method.
我相信您倾向于以这种方式利用它。您的代码有几处错误。您的swap()
方法不返回任何内容。我假设它需要调用并返回嵌套的swapp()
方法。您的名字交换有误导性,因为实际上它是在反转整数。您可以像上面的代码一样传递self
实例,即.
运算符不能传递var1_1=numbers.swap(var1)
。 Instance.method()
自动暗示该方法的第一个参数为self
。您的swapp
方法需要一个参数。一个论点。就我而言,我传递了一个常量,但是您可以将任何instance.variable
之类的var1.first
传递给它。
答案 1 :(得分:1)
一种简单/替代的方法:
C
说明:
def swap(num):
return int(str(num)[::-1])
>>> num = 45678
>>> print(swap(num))
87654
成为45678
'45678'
一样对其进行切片。 list
是用于获取相反列表的符号。 [::-1]
成为'45678'
'87654'
成为'87654'
答案 2 :(得分:1)
我使用一个变量制作了
class numbers:
def __init__(self, first):
self.first=first
def swapp(self):
a=self.first
i=0
rev=0
while (a>0):
i=a%10
a=int(a/10)
rev=rev*10+i
return rev
var1=numbers(int(input("num1 \n")))
var1_1=numbers.swapp(var1)
print(var1_1)
答案 3 :(得分:0)
您没有调用函数swapp(a)。