Python对称数——纪念第⼀次⾃主编写代码
2021-01-17
题⽬:
【问题描述】已知10个四位数输出所有对称数及个数 n,例如1221、2332都是对称数
【输⼊形式】10个四位数,以空格分隔开
【输出形式】输⼊的四位数中的所有对称数,对称数个数
【样例输⼊】1221 2243 2332 1435 1236 5623 4321 4356 6754 3234
【样例输出】1221 2332 2
【样例说明】为测试程序健壮性,输⼊数中可能包括3位数、5位数等
代码:
def is_duichen(n):#判断是不是对称,有的⽅法选择直接利⽤第⼀位等于第四位,第⼆位等于第三位来判断,也可。我选择⽐较逆序,这样应⽤范围相对来说,更⼤⼀些,不仅限于4位数    a=list(n);
b=''.join(a);
字符串截取后四位方法if n==b:
return True
else:
return False
s=input();#将10个数字当作⼀个字符串输⼊
sLst=s.split('');#将输⼊的数字以空格分割,形成⼀个列表
m=0;
Lst=[];#创建结果空列表
for i in sLst:#利⽤循环遍历元素,出符合条件的数字
if(is_duichen(i)):
Lst.append(i);#将符合条件的数字加⼊到队列中
m=m+1;
Lst.append(m);#将个数也参加到列表中
print("".join(str(i) for i in Lst)) #将列表内容输出,去掉列表格式
 这个代码其实看着挺简单的,可是本⼩⽩愣是把该犯的错误⼀样没落,全都犯了......
关于输出,本来是写在循环⾥⾯的,但是发现这样输出的时候就会⼀个数⼀⾏,不符合要求。通过查资料,发现原来可以把结果都添加到⼀个列表中,nice。然后,发现个数也不能另起⼀⾏,那可以直接加到结果列表中啊。我真是个⼩机灵⿁...
关于计数,我刚开始写在了函数⾥⾯,发现在主程序中输出时显⽰变量未定义......然后我转向了主函数中的循环,结果发现计数只能到1,⽽且⼀直循环输出......最后,我把它放在了主程序中循环外,利⽤循环计数,终于对了,呼。。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。