我已经在网站上试图找出如何做到这一点,但我还是卡住了。
我的函数应该反转数字,所以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吗? 谢谢!
答案 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)