From b2109a5a157aa532301b9a3c30f40a08eedc554b Mon Sep 17 00:00:00 2001 From: group04_tangzhuoyang Date: Thu, 2 Apr 2026 14:51:44 +0800 Subject: [PATCH] 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 --- math.py | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 math.py diff --git a/math.py b/math.py new file mode 100644 index 0000000..262693d --- /dev/null +++ b/math.py @@ -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() \ No newline at end of file