4、字符串类型的操作
4.1 字符串操作符
- 针对字符串,Python语言提供了几个基本操作符
name = "Python语言" + "程序设计" print(name) # 'Python语言程序设计' print("等级考试!" * 3) # '等级考试!等级考试!等级考试!' print("语言" in name) # True print('Y' in name) # False
4.2 字符串处理函数
- Python语言提供了一些对字符串处理的内置函数
print(len("全国计算机等级考试Python语言科目")) # 19 print(chr(10000)) # '✐‘ print(hex(1010)) # '0x3f2'
4.3 字符串处理方法
- 方法也是一个函数,只是调用方式不同。函数采用func(x)方式调用,而方法则采用.func(x)形式调用。方法仅作用于前导对象。
- str.split(sep) 能够根据sep分隔字符串str,分割后的内容以列表类型返回。
print("Python is an excellent language.".split()) # ['Python', 'is', 'an', 'excellent', 'language.'] print("Python is an excellent language.".split('a')) # ['Python is ', 'n excellent l', 'ngu', 'ge.'] print("Python is an excellent language.".split('an')) # ['Python is ', ' excellent l', 'guage.']
- str.count(sub)方法返回字符串str中出现sub的次数,sub是一个字符串。
print("Python is an excellent language.".count('a')) # 3
- str.replace(old, new)方法将字符串str中出现的old字符串替换为new字符串,old和new的长度可以不同。
print("Python is an excellent language.".replace('a', '#')) # 'Python is #n excellent l#ngu#ge.' print("Python is an excellent language.".replace('Python', 'C')) # 'C is an excellent language.'
- str.center(width, fillchar)方法返回长度为width的字符串,其中,str处于新字符串中心位置,两侧新增字符采用fillchar填充,当width小于字符串长度时,返回str。其中,fillchar是单个字符。
print("Python".center(20, "=")) # '=======Python=======' print("Python".center(2, "=")) # 'Python'
- str.strip(chars)从字符串str中去掉在其左侧和右侧chars中列出的字符。chars是一个字符串,其中出现的每个字符都会被去掉。
print(" ==Python== ".strip(' ')) # '==Python==' print(" ==Python== ".strip(' =')) # 'Python' print(" ==Python== ".strip(' =n')) # 'Pytho'
- str.join(iter)中iter是一个具备迭代性质的变量,该方法将str字符串插入iter变量的元素之间,形成新的字符串。
print(" ".join('PYTHON')) # 'P Y T H O N' print(",".join('12345')) # '1,2,3,4,5' print(",".join(['1', '2', '3', '4', '5'])) # '1,2,3,4,5'
5、类型判断和类型间转换
5.1 数字类型的转换
- Python语言提供type(x)函数对变量x进行类型判断,适用于任何数据类型。
n = eval(input('请输入一个数字:')) if type(n) == type(123): print("输入的数字是整数。") elif type(n) == type(11.3): print("输入的数字是浮点数。") else: print("无法判断输入类型。")
- 数值运算操作符可以隐式地转换输出结果的数字类型,例如,两个整数采用运算符“/”的除法将可能输出浮点数结果。
- 此外,通过内置的数字类型转换函数可以显式地在数字类型之间进行转换
6、实例解析:恺撒密码
- 恺撒撒密码是古罗马恺撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
- 原文字符P,其密文字符C满足如下条件:
C = ( P + 3 ) mod 26 - 解密方法反之,满足:
P = ( C – 3 ) mod 26
6.1 恺撒密码-加密
- 恺撒密码的加密算法程序首先接收用户输入的文本,然后对字母a-z和字母A-Z按照密码算法进行转换
# CaesarEncode.py ptxt = input("请输入明文文本: ") for p in ptxt: if "a" <= p <= "z": print(chr(ord("a")+(ord(p)-ord("a")+3)%26), end='') elif "A" <= p <= "Z": print(chr(ord("A")+(ord(p)-ord("A")+3)%26), end='') else: print(p, end='')
>>> 请输入明文文本: This is an excellent Python book. Wklv lv dq hafhoohqw Sbwkrq errn.
6.2 恺撒密码-解密
- 恺撒密码的解密算法程序首先接收用户输入的加密文本,然后对字母a-z和字 母A-Z按照密 码算法进行反向转换
# CaesarDecode.py etxt = input("请输入加密后文本: ") for p in etxt: if "a" <= p <= "z": print(chr(ord("a")+(ord(p)-ord("a")-3)%26), end='') elif "A" <= p <= "Z": print(chr(ord("A")+(ord(p)-ord("A")-3)%26), end='') else: print(p, end='')
>>> 请输入加密后文本: Wklv lv dq hafhoohqw Sbwkrq errn. This is an excellent Python book.
总结
具体讲解了计算机中常用的数字类型及操作,包括Python数值运算操作符和数值运算函数。进一步讲解了字符串类型及格式化、字符串操作符、字符串处理函数和字符串处理方法等。最后,还介绍了类型判断和类型转换的基本方法,通过对恺撒密码及其变种若干实例的讲解帮助读者加深对数据类型操作的理解。