Python入门实战2——判断回文(超详解注释)

基础原理:从键盘输入一串字符串text,然后通过函数返回一个翻转(切片功能,步长为-1)的text,再判断是否相等

2.0版本涉及:字符串遍历;跳出循环;ASCII码与字符转换;模块的__name__;

基础代码:

"'本模块的作用是判断键入的字符串是否为回文'"
def reverse(text):
    return text[::-1]
def is_palindrome(text):
    return text==reverse(text)
while(1):
    something=input("Enter text:")
    if something=='break':
        break
    if is_palindrome(something):
        print(something)
        print('yes,it is a palindrome')
    else:
        print(something)
        print('no it is not a palidrome')
  
2.0版本(新增了忽略标点符号,忽略大小写的功能)--代码注释有详解

#判断输出的字符串是否为回文,版本2.0
#新增忽略指定标点符号,忽略大小写字母
"'本模块的作用是从输入的字符串里面,忽略掉标点符号之后\
并且忽略 英文字母大小写,再判断是否为回文'"

#本段代码的作用是判断palindrome_judgment_2_0.py
#是在自身模块运行还是被其他模块导入了运行的
if __name__=='__main__':
    print('run palindrome_judgment_2_0.py self')
else:
    print('palindrome_judgment_2.0.py was imported!')

#添加要被忽略的符号到forbidden元祖中
forbidden=('?','.',',',' ','。',',')

#利用切片使字符串排序反向
def reverse(text):
    return text[::-1]

#判断是否为回文
def is_palindrome(text):
    return text==reverse(text) #调用了reverse函数// 可以整合成一个函数
#def main():
while(1):
    something=input("Enter text:")
    if something=='break':
        break
    for i in something: #遍历字符串的每个字符
        if i in forbidden: #判断字符是不是属于我们定义的元祖里的符号
            print('执行标点符号忽略操作')
            something=something.replace(i,'')#用''代替找到的标点符号
        elif 'A'<=i<='Z':
            print('将大写英文字母转换成小写')
            something=something.replace(i,chr(ord(i)+32))
            #Python中 ord()函数是将字符转换成ASCII码 例如ord('a')
            #chr()函数是将ASCII码转换成字符 例如chr(65)

#下面这段判断代码的缩进位置很关键,不能放在(if i in forbidden:)里也不能放for循环里
    if is_palindrome(something):
        print(something)
        print('yes,it is a palindrome')
    else:
        print(something)
        print('no it is not a palidrome')

结果:

Python入门实战2——判断回文(超详解注释)_第1张图片



你可能感兴趣的:(Python项目实战)