反转数字的功能,考虑到符号

时间:2016-10-02 16:13:01

标签: python

我已经在网站上试图找出如何做到这一点,但我还是卡住了。

我的函数应该反转数字,所以reverse_digits(8765)返回5678.这很容易通过以下方式完成:

def reverse_digits(num):
    return int(str(num)[::-1])

然而,我的代码需要1)测试它是否为负数并保持负数(所以-8765返回-5678)和2)我想我应该测试看看num是否实际上是一个int。

到目前为止我已经

def reverse_digits(num):
   num = str(num)[::-1]
   if num == '-':
       minus = 1
       num = num[:-1]
   else: 
       minus = 0    
   int(num)  
   if minus == 1:
       num = num*-1
   else:
       num = num   
   return num

适用于没有' - '的数字,但返回''当它有一个' - '。

我最初试图将测试看作是在循环开始时是否为int

if (num != int):
    print("wrong type") 
    sys.exit()
else:
   (the rest of my above code)

但这对我不起作用。我应该将所有代码放在while循环中,以便我可以使用continue / break吗? 谢谢!

2 个答案:

答案 0 :(得分:4)

只是不要将-放入反向字符串中:

def reverse_digits(num):
    return (-1 if num<0 else 1) * int(str(abs(num))[::-1])

答案 1 :(得分:2)

尝试使用isdigit()字符串方法。

def reverse_digit(num):
      num_str = str(num)[::-1].strip('-')
      if not num_str.isdigit():
           <do what u want>
      if num < 0:
         return -int(num_str)
      else:
         return int(num_str)