如何用Python编写一个函数来检查整数是否为回文数?
时间: 2024-10-23 15:04:35 浏览: 15
在Python中,你可以创建一个函数来检查一个整数是否是回文数,即从前往后读和从后往前读是一样的。下面是一个简单的实现方法:
```python
def is_palindrome(num):
# 将数字转换为字符串,因为我们可以直接比较字符串是否左右对称
num_str = str(abs(num)) # 取绝对值避免负数影响
left, right = 0, len(num_str) - 1 # 初始化两个指针
while left < right:
# 如果左指针指向的字符和右指针指向的字符不相等,不是回文数
if num_str[left] != num_str[right]:
return False
# 否则,两个指针向中间移动
left += 1
right -= 1
# 如果所有字符都匹配,那么这个数字就是回文数
return True
# 示例:
print(is_palindrome(121)) # 输出: True
print(is_palindrome(12321)) # 输出: True
print(is_palindrome(-12321)) # 输出: True (注意这里取了绝对值)
print(is_palindrome(123)) # 输出: False
```
相关问题
用python编写函数,判断一个整数是否为回文数
可以使用字符串反转来判断一个整数是否为回文数,具体实现如下:
```python
def is_palindrome(num):
# 将整数转为字符串
str_num = str(num)
# 反转字符串
reversed_str_num = str_num[::-1]
# 判断反转后的字符串是否与原字符串相等
if str_num == reversed_str_num:
return True
else:
return False
```
使用该函数可以判断一个整数是否为回文数,示例代码如下:
```python
num = 12321
if is_palindrome(num):
print(num, '是回文数')
else:
print(num, '不是回文数')
```
输出结果为:`12321 是回文数`
如何编写一个程序来检查给定的整数是否为回文数?
检查一个整数是否为回文数的简单算法通常是将数字转换为字符串,然后逐个字符地比较。以下是使用Python的一个例子:
```python
def is_palindrome(n):
# 将整数转换为字符串
num_str = str(n)
# 从两端开始比较字符,直到相遇或找到不匹配的字符
left, right = 0, len(num_str) - 1
while left < right:
if num_str[left] != num_str[right]:
return False
left += 1
right -= 1
return True
# 测试示例
print(is_palindrome(121)) # 输出:True
print(is_palindrome(123)) # 输出:False
```
在这个函数里,我们首先将输入的整数转成字符串,然后通过两个指针 `left` 和 `right` 分别指向字符串的开头和结尾。每次循环都会比较两个指针所指向的字符,若发现不同则立即返回 `False`,否则继续移动指针。当左右指针相遇时,说明整个字符串都是回文的,所以返回 `True`。
阅读全文