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);
    a.reverse();
    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,而且一直循环输出……最后,我把它放在了主程序中循环外,利用循环计数,终于对了,呼。。

 

版权声明:本文为Aliniya原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Aliniya/p/Aliniya.html