Python新手如何判断输入4位数字是否为capicúa回文数
4位capicúa(回文数)判断实现方案
这个需求理解完全正确,capicúa就是常说的回文数,即正读反读数值相同,实现难度很低,完全适合新手练习。
方案1:字符串反转法(新手最易上手)
不需要手动拆分数字位,利用Python字符串切片特性可快速完成判断,代码简洁不易出错:
# 获取用户输入,strip()去掉首尾空格 input_str = input("请输入一个4位数字:").strip() # 先校验输入是否为4位纯数字 if len(input_str) !=4 or not input_str.isdigit(): print("输入不合法,请输入4位纯数字") else: num = int(input_str) # 定义布尔变量存储是否为capicúa的判断结果 is_capicua = input_str == input_str[::-1] # 输出结果 if is_capicua: print(f"{num} 是capicúa") else: print(f"{num} 不是capicúa")
方案2:数学取位法(逐位校验的实现方式)
如果需要手动获取每一位数字完成校验,可以用整数除法和取模运算拆分4位数字的每一位:
input_str = input("请输入一个4位数字:").strip() if len(input_str) !=4 or not input_str.isdigit(): print("输入不合法,请输入4位纯数字") else: num = int(input_str) # 拆分4位数字的每一位:千位、百位、十位、个位 thousands = num // 1000 hundreds = (num // 100) % 10 tens = (num // 10) % 10 units = num % 10 # 定义布尔变量存储判断结果:千位=个位 且 百位=十位,才是4位回文数 is_capicua = thousands == units and hundreds == tens # 输出结果 if is_capicua: print(f"{num} 是capicúa") else: print(f"{num} 不是capicúa")
两种方案都可以满足需求,新手优先推荐方案1,逻辑更简单不易写错;如果想要练习数值运算的基础操作,可以选择方案2。
内容的提问来源于stack exchange,提问作者Marco Trevino
相关产品推荐
相关产品推荐

