def isPalindromic(n): s = str(n) return s == s[::-1] def getInputs(): count = 0 while count < 3: try: upper = int(input("请输入区间的上边界:")) lower = int(input("请输入区间的下边界:")) if upper > lower: upper, lower = lower, upper return upper, lower except: print("输入有误,请重新输入!") count += 1 print("输入错误次数过多,程序退出!") exit() palindromic_list = [] upper, lower = getInputs() for i in range(lower, upper + 1): if isPalindromic(i): palindromic_list.append(i) total = sum(palindromic_list) print("区间[{},{}]中的回文数为:{}".format(lower, upper, palindromic_list)) print("它们的和为:{}".format(total))
时间: 2024-01-10 15:02:09 浏览: 31
这段代码也可以实现在一个区间内寻找回文数并计算它们的和。
其中 `isPalindromic` 函数用于判断一个数是否为回文数,`getInputs` 函数用于获取区间的上边界和下边界,并检查用户的输入是否合法。在主程序中,我们首先调用 `getInputs` 函数获取区间的上边界和下边界,然后通过循环遍历这个区间,找到其中所有回文数,并将它们存储在一个列表中。最后,我们计算这些回文数的总和,并输出结果。
这段代码的工作流程与之前的示例代码基本相同,唯一的区别是在输入区间时,代码将上边界和下边界分别存储在 `upper` 和 `lower` 变量中,并检查它们的大小关系。如果用户输入的上边界比下边界小,则交换它们的值,以确保下边界始终小于或等于上边界。
下面是这段代码的完整实现:
```python
def isPalindromic(n):
s = str(n)
return s == s[::-1]
def getInputs():
count = 0
while count < 3:
try:
upper = int(input("请输入区间的上边界:"))
lower = int(input("请输入区间的下边界:"))
if upper > lower:
upper, lower = lower, upper
return upper, lower
except:
print("输入有误,请重新输入!")
count += 1
print("输入错误次数过多,程序退出!")
exit()
palindromic_list = []
upper, lower = getInputs()
for i in range(lower, upper + 1):
if isPalindromic(i):
palindromic_list.append(i)
total = sum(palindromic_list)
print("区间[{},{}]中的回文数为:{}".format(lower, upper, palindromic_list))
print("它们的和为:{}".format(total))
```