Python练习题6(判断是否回文联):编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)

方法一:将字符串分成两半,将第一个和最后一个字符进行比较,若一样则返回True.全部为True则为回文联

 1 def isPalindrome():
 2     context = input("请输入字符串:")
 3     len_half = len(context) // 2              #取长度的一半
 4     bool_list = []
 5     if len(context) < 2:                      #当输入小于2个字符时,返回
 6         return "%s 不是回文联" % context      
 7     for n in range(len_half):
 8         if context[n] == context[-(n+1)]:     #第一个字符和最后一个字符比较,第二个和倒数第二个比较...
 9             bool_con = True
10             bool_list.append(bool_con)
11         else:
12             bool_con = False
13             bool_list.append(bool_con)
14     if False not in bool_list:                #列表中全是True则为回文联
15         return "'%s'是回文联" % context
16     else:
17         return "'%s'不是回文联" % context
18 
19 print(isPalindrome())

方法二:将字符串分成两半,直接判断前一字符串和后半字符串是否相同,若相同则为回文联。--by 孟楠兄

 1 def isSymmetry():
 2     while True:
 3         inStr = input("请输入:").strip()
 4         cut = len(inStr) // 2
 5         if inStr[:cut][::-1] == inStr[-cut:]:
 6             print('回文联')
 7             break
 8         else:
 9             print('非回文联')
10 
11 isSymmetry()

方法三:直接翻转,判断是否相同,若相同则为回文联。--by 书明兄

1 def fu():
2     lc = ''.join(list(reserved(ID)))
3     if lc == ld:
4         print("是回文联")
5     else:
6         print('非回文联')
7         
8 ld = input("请输入:")
9 fu()

猜你喜欢

转载自www.cnblogs.com/felixqiang/p/10252788.html