📜  检查数字是否为回文的Python程序(单行)

📅  最后修改于: 2022-05-13 01:54:55.398000             🧑  作者: Mango

检查数字是否为回文的Python程序(单行)

有时,我们有一个检查数字是否回文的应用程序,这在日常编程或竞争编程中很常见,很容易反转一个数字并检查它,但有时为了可读性和减少代码行,我们需要执行这是单行逻辑。让我们讨论一些可以实现这一目标的方法。

方法 #1:使用math.log() + 递归 + 列表理解
上述三个函数的组合可以很容易地完成这个特定的任务,logs函数提取以 10 为幂的位数,以获得该次迭代的数字进行比较。重复该过程以测试回文。

# Python3 code to demonstrate
# checking a number is palindrome
# using math.log() + recursion + list comprehension
import math
   
# the recursive function to reverse
def rev(num):
    return int(num != 0) and ((num % 10) * \
             (10**int(math.log(num, 10))) + \
                          rev(num // 10))
  
# initializing number 
test_number = 9669669
  
# printing the original number 
print ("The original number is : " + str(test_number))
  
# using math.log() + recursion + list comprehension
# for checking a number is palindrome
res = test_number == rev(test_number)
  
# printing result
print ("Is the number palindrome ? : " + str(res))
输出:
The original number is : 9669669
Is the number palindrome ? : True


方法 #2:使用str() +字符串切片
这也可以通过将数字转换为字符串,然后使用字符串切片方法将其反转并进行比较来完成,其真值返回答案。

# Python3 code to demonstrate
# checking a number is palindrome
# using str() + string slicing
  
# initializing number 
test_number = 9669669
  
# printing the original number 
print ("The original number is : " + str(test_number))
  
# using str() + string slicing
# for checking a number is palindrome
res = str(test_number) == str(test_number)[::-1]
  
# printing result
print ("Is the number palindrome ? : " + str(res))
输出:
The original number is : 9669669
Is the number palindrome ? : True

我们也可以将输入读取为字符串,然后简单地检查回文。

num = input("Enter a number")
if num == num[::-1]:
    print("Yes its a palindrome")
else:
    print("No, its not a palindrome")