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课,回文数题目运用极有限的知识写了上述代码,但是有点问题,请大神指导下。
主要想法就是把一串数字从第一位一直比到最后一位。
刚学,所以变量的名称用的不太专业,求大佬指导下。 逻辑混乱,错误太多没法改 本帖最后由 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("是回文数")
可以在最后加上一句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("不是回文数") tommyyu 发表于 2022-11-1 16:47
可以在最后加上一句break
(这道题如果用字符串切片的话很好做的)
嗯嗯,加了break就正常了 wp231957 发表于 2022-11-1 16:46
逻辑混乱,错误太多没法改
逻辑好像没啥问题吧,结尾加个break输入正整数应该都能判断出来啊 hjbhkjsjhd 发表于 2022-11-1 16:50
嗯嗯,加了break就正常了
谢谢大佬,因为才学到循环,所以后边的可能还要学习下
页:
[1]