如何在python中转换数字?

如何在python中转换数字?,python,Python,我有什么问题?我想要一个倒数——例如:123==>321 def loop(a): i=0 while(a>=1) print(a%10) s=s/10 i=i+1 正确缩进很重要。(不要将制表符和空格混在一起。) 在while条件之后,您还缺少一个冒号。正确缩进很重要。(不要将制表符和空格混在一起。) 在while条件之后,您还缺少一个冒号。除了缩进和缺少冒号之外,您的解决方案还有一些问题 首先,您使用的是print,它会自动添加换行

我有什么问题?我想要一个倒数——例如:123==>321

def loop(a):
    i=0
 while(a>=1)
       print(a%10)
       s=s/10
       i=i+1

正确缩进很重要。(不要将制表符和空格混在一起。)


while
条件之后,您还缺少一个冒号。

正确缩进很重要。(不要将制表符和空格混在一起。)


while
条件之后,您还缺少一个冒号。

除了缩进和缺少冒号之外,您的解决方案还有一些问题

首先,您使用的是
print
,它会自动添加换行符,因此这可能不是您想要的结果。您可以将结果存储在一个字符串中,将最新字符附加到该字符串中,然后在末尾打印一次

此外,您正在使用一个以前从未使用过的变量
s
。在这种情况下,它应该是
a
,因为您想用整数除以10去掉最后一个数字。请注意,在这种情况下,这只会像Python 2中那样工作,因为Python 3将在那里使用浮点除法(例如
15/10==1.5
)。您可以通过在此处显式使用整数除法(这也将使您的意图更加明确):
s=s//10
(注意两个斜线)

最后,您将递增变量
i
,而不使用它,因此您可以将其去掉

最后,它可能是这样的:

def reverse (a):
    rev = ''
    while a > 1:
        rev += str(a % 10)
        a = a // 10

一个较短的解决方案,利用您可以反转字符串的事实:

>>> num = 123
>>> rev = int(str(num)[::-1])
>>> rev
321
如果省略
int()
,您甚至可以保留尾随/前导零,并获得一个字符串:

>>> num = 3210
>>> str(num)[::-1]
'0123'

除了缩进和缺少冒号之外,您的解决方案还有一些问题

首先,您使用的是
print
,它会自动添加换行符,因此这可能不是您想要的结果。您可以将结果存储在一个字符串中,将最新字符附加到该字符串中,然后在末尾打印一次

此外,您正在使用一个以前从未使用过的变量
s
。在这种情况下,它应该是
a
,因为您想用整数除以10去掉最后一个数字。请注意,在这种情况下,这只会像Python 2中那样工作,因为Python 3将在那里使用浮点除法(例如
15/10==1.5
)。您可以通过在此处显式使用整数除法(这也将使您的意图更加明确):
s=s//10
(注意两个斜线)

最后,您将递增变量
i
,而不使用它,因此您可以将其去掉

最后,它可能是这样的:

def reverse (a):
    rev = ''
    while a > 1:
        rev += str(a % 10)
        a = a // 10

一个较短的解决方案,利用您可以反转字符串的事实:

>>> num = 123
>>> rev = int(str(num)[::-1])
>>> rev
321
如果省略
int()
,您甚至可以保留尾随/前导零,并获得一个字符串:

>>> num = 3210
>>> str(num)[::-1]
'0123'
几个问题:

  • 您的缩进不匹配。建议使用4个空格进行缩进

  • 当(a>=1)

  • 虽然这不是问题,但您不需要while循环中的括号,它可以是
    ,而a>=1

  • s=s/10
    可能不会返回您期望的结果。例如,
    12/10==1
    (除非您在这里处理浮点数)


这一切都可以通过切片简化:

>>> print int(str(123)[::-1])
321
几个问题:

  • 您的缩进不匹配。建议使用4个空格进行缩进

  • 当(a>=1)

  • 虽然这不是问题,但您不需要while循环中的括号,它可以是
    ,而a>=1

  • s=s/10
    可能不会返回您期望的结果。例如,
    12/10==1
    (除非您在这里处理浮点数)


这一切都可以通过切片简化:

>>> print int(str(123)[::-1])
321
实际上
s/10
(Python 2中的整数除法;或者Python 3中的
s//10
)将是OP想要的,除了它应该是
a
,而不是
s
。实际上
s/10
(Python 2中的整数除法;或者Python 3中的
s//10
)将是OP想要的,除了它应该是
a
,不是
s