一、什么是回文

回文数是指从左往右和从右往左读都一样的数字。例如,121、12321都是回文数。

判断一个数字是否是回文数,可以将其反转,若反转前后相同,则为回文数。

二、判断4位回文数的基本思路

对于4位数,我们可以将其拆分为左右两部分,然后将左边的部分反转,与右边的部分比较,若相同则为回文数。

具体实现时,需要使用取余运算将数字从右往左依次分离出来,然后构造出反转后的数字。最后将反转后的数字与原数字进行比较即可。

def is_palindrome(num):
    # 对数字进行拆分
    left = num // 100
    right = num % 100
    # 构造反转后的数字
    reverse_num = right * 100 + left
    # 判断是否相同
    return num == reverse_num

三、考虑性能优化

上述方法能够正确地判断回文数,但是还有性能上的优化空间。我们可以考虑减少运算次数,从而提高程序执行效率。

具体实现时,我们可以在拆分数字的同时进行反转操作,避免构造完整的反转数字。具体来说,我们可以将数字的末两位取出来,然后将其乘以100再加上前两位即可。

def is_palindrome2(num):
    # 在拆分数字的同时进行反转
    left = num // 100
    right = num % 100
    reverse_num = right * 100 + left
    return num == reverse_num

四、完整代码示例

def is_palindrome(num):
    # 对数字进行拆分
    left = num // 100
    right = num % 100
    # 构造反转后的数字
    reverse_num = right * 100 + left
    # 判断是否相同
    return num == reverse_num

def is_palindrome2(num):
    # 在拆分数字的同时进行反转
    left = num // 100
    right = num % 100
    reverse_num = right * 100 + left
    return num == reverse_num

num = 1234
print(is_palindrome(num))  # False
print(is_palindrome2(num))  # False

num = 1221
print(is_palindrome(num))  # True
print(is_palindrome2(num))  # True

五、总结

本文介绍了如何用Python判断4位回文数,并提出了性能优化的思路。通过对数字的拆分与反转,可以简洁地实现回文数判断的功能。