1、数字类型 数字类型 整数类型 浮点数类型 复数类型 2、数字类型的运算 数值运算操作符 3、字符串类型及格式化 字符串类型 字符串的索引 字符串的切片 format()方法的基本使用 format()方法的格式控制 4、字符串类型的操作 字符串操作符 字符串处理函数 字符串处理方法 5、类型判断和类型间转换 数字类型的转换 6、实例解析:恺撒密码 恺撒密码-加密 恺撒密码-解密 本章小结
考纲考点知识导图
1、数字类型数字类型整数类型· 1010, -1010, 0b1010, 0o1010, 0x1010 进制种类 | 引导符号 | 描述 | 十进制 | 无 | 默认情况,例:1010,-1010 | 二进制 | 0b或0B | 由字符0和1组成,例:0b1010,0B1010 | 八进制 | 0o或0O | 由字符0到7组成,例:0o1010,0O1010 | 十六进制 | 0x或0X | 由字符0到9、a到f或A到F组成,例:0x1010 |
浮点数类型带有小数点及小数的数字 Python语言中的浮点数类型必须带有小数部分,小数部分可以是0。例如:1010是整数,1010.0是浮点数。 浮点数有2种表示方法:十进制形式的一般表示和科学计数法表示。除十进制外,浮点数没有其他进制表示形式。 下面是浮点数类型的例子: 1010.0, -1010., 1.01e3, -1.01E-3 科学计数法使用字母e或者E作为幂的符号,以10为基数,含义如下:
<a>e<b> = a*10^b >>> 1234567890.987654321 * 1234567890.987654321 >>> 9876543210.123456789 / 1234567890.987654321
复数类型11.3+4j -5.6+7j 1.23e-4+5.67e+89j Python语言中,复数可以看作是二元有序实数对(a, b),表示为:a + bj,其中,a是实数部分,简称实部,b是虚数部分,简称虚部。虚数部分通过后缀“J”或者“j”来表示。需要注意,当b为1时,1不能省略,即 1j表示复数,而j则表示Python程序中的一个变量。 复数类型中实部和虚部都是浮点类型,对于复数z,可以用z.real和z.imag分别获得它的实数部分和虚数部分
>>> (1.23e4+5.67e4j).real >>> (1.23e4+5.67e4j).imag >>> 1.23e4+5.67e4j.imag # 先获得5.67e4j的虚部,再与1.23e4进行求和计算
2、数字类型的运算数值运算操作符操作符 | 描述 | x + y | x与y之和 | x - y | x与y之差 | x * y | x与y之积 | x / y | x与y之商 | x // y | x与y之整数商,即:不大于x与y之商的最大整数 | x % y | x与y之商的余数,也称为模运算 | -x | x的负值,即:x * (-1) | +x | x本身 | x ** y | x的y次幂,即:x^y |
x op= y 等价于 x = x op y >>> x **= 3 # 与x = x**3等价
数值运算可能改变结果的数据类型,类型的改变与运算符有关,有如下基本规则: >>> 1010 / 10 # / 运算的结果是浮点数 >>> 1010.0 // 3 # 浮点数与整数运算,产生结果是浮点数 >>> 1010.0 % 3 # 浮点数与整数运算,产生结果是浮点数
函数 | 描述 | abs(x) | x的绝对值 | divmod(x, y) | (x//y, x%y),输出为二元组形式(也称为元组类型) | pow(x, y[, z]) | (x**y)%z,[..]表示该参数可以省略,即:pow(x,y),它与x**y相同 | round(x[, ndigits]) | 对x四舍五入,保留ndigits位小数。round(x)返回四舍五入的整数值 | max(x1,x2,...,xn) | x1, x2, …, xn的最大值,n没有限定 | min(x1,x2,...,xn) | x1, x2, …, xn的最小值,n没有限定 |
3、字符串类型及格式化字符串类型字符串是字符的序列表示,根据字符串的内容多少分为单行字符串和多行字符串。 单行字符串可以由一对单引号(')或双引号(")作为边界来表示,单引号和双引号作用相同。 多行字符串可以由一对三单引号(''')或三双引号(""")作为边界来表示,两者作用相同。
>>> print("""这是'多行字符串'的第一行
>>> print("既需要'单引号'又需要\"双引号\"")
字符串的索引<字符串或字符串变量>[序号]
字符串的切片<字符串或字符串变量>[N: M] #包含N不包含M >>> print("青青子衿,悠悠我心。"[5:])
format()方法的基本使用<模板字符串>.format(<逗号分隔的参数>) 其中,模板字符串是一个由字符串和槽组成的字符串,用来控制字符串和变量的显示效果。槽用大括号({})表示,对应format()方法中逗号分隔的参数。 >>> "{}曰: 学而时习之,不亦说乎。".format("孔子")
>>> "{}曰:学而时习之,不亦{}。".format("孔子","说乎")
>>> "{1}曰:学而时习之,不亦{0}。".format("说乎","孔子") >>> "{1}曰:{{学而时习之,不亦{0}}}。".format("说乎","孔子")
format()方法的格式控制{<参数序号>: <格式控制标记>} : | <填充> | <对齐> | <宽度> | , | <.精度> | <类型> | 引导符号 | 用于填充的单个字符 | < 左对齐 > 右对齐 ^ 居中对齐 | 槽的设定输出宽度 | 数字的千位分隔符,适用于整数和浮点数 | 浮点数小数部分的精度或字符串的最大输出长度 | 整数类型 b, c, d, o, x, X 浮点数类型 e, E, f, % |
<填充>、<对齐>和<宽度>主要用于对显示格式的规范。 宽度指当前槽的设定输出字符宽度,如果该槽参数实际值比宽度设定值大,则使用参数实际长度。如果该值的实际位数小于指定宽度,则按照对齐指定方式在宽度内对齐,默认以空格字符补充。 对齐字段分别使用<、>和^三个符号表示左对齐、右对齐和居中对齐。 填充字段可以修改默认填充字符,填充字符只能有一个。
>>>"{:25}".format(s) #左对齐,默认 >>>"{:^25}".format(s) #居中对齐 >>>"{:>25}".format(s) #右对齐 >>>"{:*^25}".format(s) #居中对齐且填充*号 '**********等级考试***********' >>>"{:+^25}".format(s) #居中对齐且填充+号 '++++++++++等级考试+++++++++++' >>>"{:十^25}".format(s) #居中对齐且填充汉字“十” '十十十十十十十十十十等级考试十十十十十十十十十十十' >>>"{:^1}".format(s) #z指定宽度为1,不足变量s的宽度
>>>"{:.2f}".format(12345.67890) >>> "{:>25.3f}".format(12345.67890) >>>"{:.5}".format("全国计算机等级考试")
<类型>表示输出整数和浮点数类型的格式规则。 n 对于整数类型,输出格式包括6种:
· b: 输出整数的二进制方式; · c: 输出整数对应的Unicode字符; · d: 输出整数的十进制方式; · o: 输出整数的八进制方式; · x: 输出整数的小写十六进制方式; · X: 输出整数的大写十六进制方式;
>>>"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425) '110101001,Ʃ,425,651,1a9,1A9'
· e: 输出浮点数对应的小写字母e的指数形式; · E: 输出浮点数对应的大写字母E的指数形式; · f: 输出浮点数的标准浮点形式; · %: 输出浮点数的百分形式。
>>>"{0:e},{0:E},{0:f},{0:%}".format(3.14) '3.140000e+00,3.140000E+00,3.140000,314.000000%' >>>"{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14) # 对比输出 '3.14e+00,3.14E+00,3.14,314.00%'
>>>"{:.2f}".format(3.1415926) # 输出小数点后两位 >>>"{:x}".format(1010) # 输出整数的十六机制形式 >>>"{:.5}".format("这是一个很长的字符串") # 输出字符串的前5位 >>>"{:-^10}".format("PYTHON") # 居中并填充
4、字符串类型的操作字符串操作符操作符 | 描述 | x + y | 连接两个字符串x与y | x * n 或 n * x | 复制n次字符串x | x in s | 如果x是s的子串,返回True,否则返回False |
>>>name = "Python语言" + "程序设计"
字符串处理函数函数 | 描述 | len(x) | 返回字符串x的长度,也可返回其他组合数据类型的元素个数 | str(x) | 返回任意类型x所对应的字符串形式 | chr(x) | 返回Unicode编码x对应的单字符 | ord(x) | 返回单字符x表示的Unicode编码 | hex(x) | 返回整数x对应十六进制数的小写形式字符串 | oct(x) | 返回整数x对应八进制数的小写形式字符串 |
>>>len("全国计算机等级考试Python语言科目")
字符串处理方法方法 | 描述 | str.lower() | 返回字符串str的副本,全部字符小写 | str.upper() | 返回字符串str的副本,全部字符大写 | str.split(sep=None) | 返回一个列表,由str根据sep被分割的部分构成 | str.count(sub) | 返回sub子串出现的次数 | str.replace(old, new) | 返回字符串str的副本,所有old子串被替换为new | str.center(width, fillchar) | 字符串居中函数,fillchar参数可选 | str.strip(chars) | 从字符串str中去掉在其左侧和右侧chars中列出的字符 | str.join(iter) | 将iter变量的每一个元素后增加一个str字符串 |
>>>"Python is an excellent language.".split() ['Python', 'is', 'an', 'excellent', 'language.'] >>>"Python is an excellent language.".split('a') ['Python is ', 'n excellent l', 'ngu', 'ge.'] >>>"Python is an excellent language.".split('an') ['Python is ', ' excellent l', 'guage.']
>>>"Python is an excellent language.".count('a')
>>>"Python is an excellent language.".replace('a', '#') 'Python is #n excellent l#ngu#ge.' >>>"Python is an excellent language.".replace('Python', 'C') 'C is an excellent language.'
>>>"Python".center(20, "=") >>>"Python".center(2, "=")
>>>" ==Python== ".strip(' ') >>>" ==Python== ".strip(' =') >>>" ==Python== ".strip(' =n')
>>>",".join(['1', '2', '3', '4', '5'])
5、类型判断和类型间转换数字类型的转换n = eval(input('请输入一个数字:')) elif type(n) == type(11.3):
函数 | 描述 | int(x) | 将x转换为整数,x可以是浮点数或字符串 | float(x) | 将x转换为浮点数,x可以是整数或字符串 | str(x) | 将x转换为字符串,x可以是整数或浮点数 |
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 C = ( P + 3 ) mod 26 P = ( C – 3 ) mod 26 恺撒密码-加密ptxt = input("请输入明文文本: ") print(chr(ord("a")+(ord(p)-ord("a")+3)%26), end='') print(chr(ord("A")+(ord(p)-ord("A")+3)%26), end='')
请输入明文文本: This is an excellent Python book. Wklv lv dq hafhoohqw Sbwkrq errn.
恺撒密码-解密etxt = input("请输入加密后文本: ") print(chr(ord("a")+(ord(p)-ord("a")-3)%26), end='') print(chr(ord("A")+(ord(p)-ord("A")-3)%26), end='')
请输入加密后文本: Wklv lv dq hafhoohqw Sbwkrq errn. This is an excellent Python book.
本章小结本章具体讲解了计算机中常用的数字类型及操作,包括Python数值运算操作符和数值运算函数。进一步讲解了字符串类型及格式化、字符串操作符、字符串处理函数和字符串处理方法等。最后,本章还介绍了类型判断和类型转换的基本方法,通过对恺撒密码及其变种若干实例的讲解帮助读者加深对数据类型操作的理解。 有没有一个人,你想给TA传个小纸条?用恺撒密码一展身手吧。
|