hjbhkjsjhd 发表于 2022-11-1 16:37:12

python新手学完python第18课的回文数题目交流

本帖最后由 hjbhkjsjhd 于 2022-11-1 16:41 编辑

temp = input("请输入一个正整数:")

end = 0

for each in temp:
    each = int(each)

    end = int(temp) % 10
    if each == end and int(temp) > 10 :
      temp = int(temp) // 10
      continue
    if each == end:
      print("是回文数")

    else:
      print("不是回文数")

python小白,刚学完第18课,回文数题目运用极有限的知识写了上述代码,但是有点问题,请大神指导下。
主要想法就是把一串数字从第一位一直比到最后一位。
刚学,所以变量的名称用的不太专业,求大佬指导下。

wp231957 发表于 2022-11-1 16:46:03

逻辑混乱,错误太多没法改

jackz007 发表于 2022-11-1 16:46:30

本帖最后由 jackz007 于 2022-11-1 16:55 编辑

1、应该直接用字符比较
2、通过循环用索引成对比较字符串中的对应元素
3、每次比较两个字符,循环次数是字符数量的一半
4、单次比较只能否定(判定不是回文数),而确定回文数必须要等循环结束(比完每一对字符)之后。
temp = input("请输入一个正整数:")
for each in range(len(temp) // 2):
    if temp != temp[-1 - each]:
      print("不是回文数")
      break
else:
    print("是回文数")

tommyyu 发表于 2022-11-1 16:47:29

可以在最后加上一句break
temp = input("请输入一个正整数:")

end = 0

for each in temp:
    each = int(each)

    end = int(temp) % 10
    if each == end and int(temp) > 10 :
      temp = int(temp) // 10
      continue
    if each == end:
      print("是回文数")

    else:
      print("不是回文数")
      break

(这道题如果用字符串切片的话很好做的)temp = input("请输入一个正整数:")
if temp == temp[::-1]:
    print("是回文数")
else:
    print("不是回文数")

hjbhkjsjhd 发表于 2022-11-1 16:50:23

tommyyu 发表于 2022-11-1 16:47
可以在最后加上一句break
(这道题如果用字符串切片的话很好做的)

嗯嗯,加了break就正常了

hjbhkjsjhd 发表于 2022-11-1 16:52:52

wp231957 发表于 2022-11-1 16:46
逻辑混乱,错误太多没法改

逻辑好像没啥问题吧,结尾加个break输入正整数应该都能判断出来啊

hjbhkjsjhd 发表于 2022-11-1 16:54:19

hjbhkjsjhd 发表于 2022-11-1 16:50
嗯嗯,加了break就正常了

谢谢大佬,因为才学到循环,所以后边的可能还要学习下
页: [1]
查看完整版本: python新手学完python第18课的回文数题目交流