如何在Python中反转一个整数?

11

我正在创建一个Python脚本,它会倒序打印出整个“99瓶啤酒”歌曲。唯一无法倒置的是数字,因为它们是整数而不是字符串。

这是我的完整脚本:

def reverse(str):
   return str[::-1]

def plural(word, b):
    if b != 1:
        return word + 's'
    else:
        return word

def line(b, ending):
    print b or reverse('No more'), plural(reverse('bottle'), b), reverse(ending)

for i in range(99, 0, -1):
    line(i, "of beer on the wall")
    line(i, "of beer"
    print reverse("Take one down, pass it around")
    line(i-1, "of beer on the wall \n")
我知道我的反转函数需要一个字符串作为参数,但我不知道如何输入一个整数,或者在脚本中如何反转这个整数。

你期望10、20或30...的输出是什么? - Artjom B.
10 变成 01,56 变成 65 等等。 - Matthew C
16个回答

0
import math

def Function(inputt):

    a = 1
    input2 = inputt

    while(input2 > 9):

        input2 = input2/10
        a = a + 1

    print("There are ", a, " numbers ")
    N = 10  
    m = 1
    print(" THe reverse numbers are: ")

    for i in range(a):
        l = (inputt%N)/m
        print(math.floor(l), end = '')
        N = N*10
        m = m*10
    print(" \n")
    return 0
enter = int(input("Enter the number: "))
print(Function(enter))

0

一个简单快捷的方法如下:

    def reverse(x: int|str) -> int:
        reverse_x = int(''.join([dgt for dgt in reversed(num:=str(x)) if dgt != '-']))
        if '-' in num:
            reverse_x = -reverse_x'
        return reverse_x

首先,我们使用列表推导式创建一个数字的反向列表。但是,我们必须排除符号(否则数字将变成[3, 2, 1, -])。现在,我们使用''.join()方法将列表转换为字符串。

接下来,我们检查原始数字是否带有负号。如果是,我们将在reverse_x前添加一个负号。


0
def reverse(num):
  rev = 0
  while(num != 0):
      reminder = num % 10
      rev = (rev * 10 ) + reminder
      num = num // 10 
  print ("Reverse number is  : " , rev )
 
num=input("enter number : ")
reverse(int(num))

#/ 总是返回浮点数

#// 整除,结果为左侧数字线上调整后的整数


0

我认为以下代码可以很好地反转您的正整数。您可以将其作为函数在您的代码中使用。

  n = input()  # input is always taken as a string
  rev = int(str(n)[::-1]) 

如果您的变量 n 是整数,则需要在此处指定为字符串,如所示。这是反转正整数的最快方法。

请不要随意加粗答案中的文本。# 被视为标题的开头,而不是注释。 - AlBlue
1
@AlBlue - 对不起。谢谢您让我知道。 - Samit Saxena

-1

你可以轻松地编写这个类:

class reverse_number:
            def __init__(self,rvs_num):
                self.rvs_num = rvs_num
                rvs_ed = int(str(rvs_num)[::-1])
                print(rvs_ed)

你可以通过编写以下代码来使用它:

reverse_number(your number)

-2

我用了不同的方式写了它,但它能正常工作

def isPalindrome(x: int) -> bool:

    if x<0:
        return False
    elif x<10:
        return True
    else:
        rev=0
        rem = x%10
        quot = x//10
        rev = rev*10+rem
        while (quot>=10):
           rem = quot%10
           quot = quot//10
           rev = rev*10+rem
        rev = rev*10+quot
        if rev==x:
            return True
        else:
            return False

res=isPalindrome(1221)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接