Add math.py script for palindrome number detection

- Add is_palindrome() function to check if a number is palindrome
- Include main() function with test cases and interactive mode
- Add comprehensive test cases covering various scenarios
This commit is contained in:
2026-04-02 14:51:44 +08:00
commit b2109a5a15

71
math.py Normal file
View File

@@ -0,0 +1,71 @@
#!/usr/bin/env python3
"""
math.py - 判断回文数的脚本
"""
def is_palindrome(n: int) -> bool:
"""
判断一个整数是否是回文数。
参数:
n: 要检查的整数
返回:
如果是回文数返回True否则返回False
"""
if n < 0:
return False
if n == 0:
return True
# 转换为字符串并检查是否等于反转后的字符串
str_n = str(n)
return str_n == str_n[::-1]
def main():
"""测试函数"""
test_cases = [
121, # True
12321, # True
123, # False
1221, # True
123321, # True
1234321, # True
12344321, # True
10, # False
0, # True
-121, # False
123456, # False
123454321,# True
]
print("测试回文数判断函数:")
print("-" * 40)
for num in test_cases:
result = is_palindrome(num)
print(f"{num:12} -> {'是回文数' if result else '不是回文数'}")
# 额外测试:用户输入
print("\n" + "=" * 40)
print("手动测试模式 (输入 'exit' 退出)")
print("=" * 40)
while True:
user_input = input("请输入一个整数: ").strip()
if user_input.lower() == 'exit':
print("程序结束。")
break
try:
num = int(user_input)
if is_palindrome(num):
print(f"{num} 是回文数。")
else:
print(f"{num} 不是回文数。")
except ValueError:
print("错误:请输入有效的整数。")
if __name__ == "__main__":
main()