使用 While 循环、函数、递归、列表、列表推导式和 lambda 表达式代码编写 Python 回文数程序。我们还打印了从 1 到 N 以及从 1 到 100 的回文数列表。任何数字,如果反转后保持不变,则可能是回文数。例如,131、959 和 45654,因为它们在反转后保持不变。
检查 Python 中回文数的通用程序方法是反转给定的数字。将原始值与反转值进行比较。如果它们完全匹配,那么它就是一个回文数。否则,它不是。
在 Python 编程语言中,有多种方法可以反转数字中的数字,包括迭代方法、函数和递归方法。在这些程序中,我们可以使用 Python 的 If Else 语句来比较原始数字与反转数字,并检查或识别回文数。请记住,通过将原始数字分配给临时值并反转临时值来保留原始数字。
使用 While 循环的 Python 回文数程序
此程序允许用户输入任何整数值。接下来,此程序代码使用 While 循环检查给定的数字是否是回文数。
# using While Loop
number = int(input("Please Enter any Value: "))
reverse = 0
temp = number
while(temp > 0):
Reminder = temp % 10
reverse = (reverse * 10) + Reminder
temp = temp //10
print("Reverse of it is = %d" %reverse)
if(number == reverse):
print("%d is a Palindrome" %number)
else:
print("%d is Not" %number)

此回文程序代码中用户输入的数值为 Number = 191 and Reverse = 0
Temp = Number
Temp = 191
While 循环第一次迭代
Reminder = Temp %10
Reminder = 191 % 10 = 1
Reverse = Reverse *10 + Reminder => 0 * 10 + 1 = 1
Temp = Temp //10 = 191 /10
Temp = 19
第二次迭代:从第一次 While 循环迭代开始,数值已变为 Temp = 19 and Reverse = 1
Reminder = 19 % 10 = 9
Reverse = 1 * 10 + 9 = 19
Temp = 19 /10 = 1
第三次迭代:从程序的第二次迭代开始,Temp 的值为 1,Reverse 的值为 19
Reminder = 1 % 10 = 1
Reverse = 19 * 10 + 1 = 191
Temp = 1/10 = 0
此处 Num = 0。因此,Python while 循环条件失败。
if ( Number == Reverse ) – 条件检查用户输入的数字是否等于反转后的数字。如果此条件为 True,则为回文数。否则不是。
使用 for 循环检查回文数的 Python 程序
此程序与 while 循环相同。但是,for 循环通过将数字转换为字符串来迭代。
num = int(input("Enter any Value: "))
rev = 0
temp = num
for _ in range(len(str(num))):
rem = num % 10
rev = (rev * 10) + rem
num //= 10
if temp == rev:
print('Palindrome')
else:
print("Not")

使用字符串切片的 Python 回文数程序
在此程序中,str(num) 将用户输入的数字转换为字符串,而 [::-1] 则切片或反转字符串。接下来,int(str(num)[::-1]) 将反转后的字符串转换为数字。
n = int(input("Enter any Value: "))
rev = int(str(n)[::-1])
if n == rev:
print('Palindrome')
else:
print("Not")
Enter any Value: 145541
Palindrome
或者,您可以比较字符串。首先,将数字转换为字符串,然后将其与反转后的字符串进行比较。
num = int(input("Enter any Value: "))
strNum = str(num)
if strNum == strNum[::-1]:
print('Palindrome')
else:
print("Not")
Enter any Value: 1243
Not
Enter any Value: 19791
Palindrome
使用函数的 Python 回文数检查程序
在此程序中,我们定义了一个 isPalindrome 函数。在该函数内,我们使用了 while 循环。接下来,使用If Else 语句来检查实际相等反转。
# using Functions
def isPalindrome(val):
inverse = 0
while(val > 0):
Remi = val % 10
inverse = (inverse * 10) + Remi
val = val // 10
return inverse
val = int(input("Please Enter any Num: "))
rev = isPalindrome(val)
print("Inverse = %d" %rev)
if(val == rev):
print("%d is a Palindrome" %val)
else:
print("%d is not" %val)
Please Enter any Num: 1441
Inverse = 1441
1441 is a Palindrome
Please Enter any Num: 1202
Inverse = 2021
1202 is not
使用递归的 Python 回文数检查程序
在此程序代码中,我们使用递归函数概念检查给定的数字是否是回文数。
# using Recursive Functions
rev = 0
def isPalindrome(num):
global rev
if(num > 0):
Reminder = num % 10
rev = (rev * 10) + Reminder
isPalindrome(num // 10)
return rev
num = int(input("Please Enter any Num: "))
rev = isPalindrome(num)
print("Reverse = %d" %rev)
if(num == rev):
print("%d is a Palindrome" %num)
else:
print("%d is not" %num)

在此程序中,在递归函数声明的检查中,
integer_rev (Num//10) – 它有助于使用更新后的值递归调用函数。如果您遗漏此语句,它将在完成第一行后终止。例如,Num = 191,则输出为 1
让我们看看 If 条件。
if (num > 0) 检查它是否大于 0。对于递归函数,在使用函数递归之前放置一个条件非常重要。否则,我们将陷入无限执行(与无限循环相同)。
使用列表的 Python 回文数程序
此示例创建一个空列表。对于每次迭代,它会将最后一个数字附加到列表中。
num = int(input("Please Enter any Value: "))
numList = []
temp = num
while temp > 0:
numList.append(temp % 10)
temp //= 10
reverse = numList[::-1]
if num == reverse:
print(num, " is a Palindrome.")
else:
print(num, "is Not.")
Enter any Value: 19791
Palindrome
使用列表推导式的 Python 回文数程序
此程序使用列表推导式。
- str(num) – str() 函数将 num 整数转换为字符串。
- [int(i) for i in str(num)] –列表推导式读取每个单独的数字并创建这些数字的列表。这里,int(i) 将每个字符转换回数字。
- digits[::-1] – 它使用切片技术反转列表。您也可以尝试列表反转函数。
- If 语句检查每个数字是否与其反转后的数字相等。
num = int(input("Enter any Num: "))
digits = [int(i) for i in str(num)]
if digits == digits[::-1]:
print('Palindrome')
else:
print("Not")
使用 lambda 函数的 Python 回文数检查程序
此代码使用 lambda 表达式和 str() 函数。
num = int(input("Enter any Value: "))
isPalindrome = lambda num: str(num) == str(num)[::-1]
if isPalindrome(num):
print('Palindrome')
else:
print("Not")
