1. 第一个 while 循环只执行了一次,因为它在执行完一次后使用了 break 语句跳出了循环,所以 c 的值只被赋值了一次,而不是整个数字的第一位。
2. 在第二个 while 循环中,将每一位数字拼接到字符串 c 中,但是最后并没有将其转换为整数类型,因此和 temp 比较时会发生类型不匹配的错误。
修复以上问题后,代码如下:
temp = int(input("请输入一个正整数:"))
x = 0
c = ""
i = temp
while i:
x = i % 10
c = str(x)
i //= 10
break
while i:
x = i % 10
c = c + str(x)
i //= 10
if temp == int(c):
print("是回文数")
else:
print("不是回文数")
复制代码
首先,去除了第一个 while 循环中的 break 语句,使得能够获取整个数字的第一位。其次,在第二个 while 循环中,将每一位数字都拼接到字符串 c 中,最后通过 int() 函数将其转换为整数类型,方便和 temp 进行比较。