用python交换数字

时间:2018-07-21 17:54:43

标签: python

我正试图用这个小的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

没有任何提示

4 个答案:

答案 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

说明:

  1. 将数字转换为字符串。 def swap(num): return int(str(num)[::-1]) >>> num = 45678 >>> print(swap(num)) 87654 成为45678
  2. 反转字符串。字符串是字符序列。因此,您可以像'45678'一样对其进行切片。 list是用于获取相反列表的符号。 [::-1]成为'45678'
  3. 将字符串转换回整数。 '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)。