考纲考点数字类型:整数类型、浮点数类型和复数类型

数字类型的运算:数值运算操作符、数值运算函数

字符串类型及格式化:索引、切片、基本的format()格式化方法

字符串类型的操作:字符串操作符、处理函数和处理方法

类型判断和类型间转换

知识导图

1、数字类型

数字类型Python语言提供3种数字类型:整数类型、浮点数类型和复数类型,分别对应数学中的整数、实数和复数。

1010是一个整数类型,10.10是一个浮点数类型,10 + 10j是一个复数类型。

整数类型与数学中的整数概念一致,没有取值范围限制

整数类型有4种进制表示:十进制、二进制、八进制和十六进制。默认情况,整数采用十进制,其他进制需要增加引导符号

示例

· 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为基数,含义如下:

e = a*10^b上例中,1.01e3值为1010.0;-1.01E-3值为0.00101。

Python浮点数类型的数值范围和小数精度受不同计算机系统的限制。除高精度科学计算外的绝大部分运算来说,浮点数类型的数值范围和小数精度足够“可靠”。>>> 1234567890.987654321 * 1234567890.987654321

1.5241578774577044e+18

>>> 9876543210.123456789 / 1234567890.987654321

8.000000066600002

复数类型复数类型表示数学中的复数。复数有一个基本单位元素j,叫作“虚数单位”。含有虚数单位的数被称为复数。例如:

11.3+4j     -5.6+7j      1.23e-4+5.67e+89jPython语言中,复数可以看作是二元有序实数对(a, b),表示为:a + bj,其中,a是实数部分,简称实部,b是虚数部分,简称虚部。虚数部分通过后缀“J”或者“j”来表示。需要注意,当b为1时,1不能省略,即 1j表示复数,而j则表示Python程序中的一个变量。

复数类型中实部和虚部都是浮点类型,对于复数z,可以用z.real和z.imag分别获得它的实数部分和虚数部分>>> (1.23e4+5.67e4j).real

12300.0

>>> (1.23e4+5.67e4j).imag

56700.0

>>> 1.23e4+5.67e4j.imag # 先获得5.67e4j的虚部,再与1.23e4进行求和计算

69000.0

2、数字类型的运算

数值运算操作符Python提供了9个基本的数值运算操作符

操作符描述

x + yx与y之和

x - yx与y之差

x * yx与y之积

x / yx与y之商

x // yx与y之整数商,即:不大于x与y之商的最大整数

x % yx与y之商的余数,也称为模运算

-xx的负值,即:x * (-1)

+xx本身

x ** yx的y次幂,即:x^y上标所有二元运算操作符(+、-、*、/、//、%、**)都可以与等号(=)相连,形成增强赋值操作符(+=、-=、*=、/=、//=、%=、**=)。用op表示这些二元运算操作符,增强赋值操作符的用法如下:

x op= y 等价于 x = x op y>>> x = 99

>>> x **= 3 # 与x = x**3等价

>>> print(x)

970299

数值运算可能改变结果的数据类型,类型的改变与运算符有关,有如下基本规则:整数和浮点数混合运算,输出结果是浮点数;

整数之间运算,产生结果类型与操作符相关,/ 运算的结果是浮点数;

整数或浮点数与复数运算,输出结果是复数。>>> 1010 / 10 # / 运算的结果是浮点数

101.0

>>> 1010.0 // 3 # 浮点数与整数运算,产生结果是浮点数

336.0

>>> 1010.0 % 3 # 浮点数与整数运算,产生结果是浮点数

2.0

>>> 10 - 1 + 1j

(9+1j)Python解释器提供了一些内置函数,在这些内置函数之中,有6个函数与数值运算相关

函数描述

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("这是'单行字符串'")

这是'单行字符串'

>>> print("""这是'多行字符串'的第一行

这是'多行字符串'的第二行

""")

这是'多行字符串'的第一行

这是'多行字符串'的第二行Python语言转义符: \

例如:\n表示换行、\\表示反斜杠、\'表示单引号、\"表示双引号、\t表示制表符(TAB)等。>>> print("既需要'单引号'又需要\"双引号\"")

既需要'单引号'又需要"双引号"

字符串的索引字符串是一个字符序列:字符串最左端位置标记为0,依次增加。对字符串中某个字符的检索被称为索引。索引的使用方式如下:

[序号]如果字符串长度为L,正向递增需要以最左侧字符序号为0,向右依次递增,最右侧字符序号为L-1;反向递减序号以最右侧字符序号为-1,向左依次递减,最左侧字符序号为-L。

字符串以Unicode编码存储,字符串的英文字符和中文字符都算作1个字符。>>> "青青子衿,悠悠我心。"[-5]

'悠'

>>> s = "青青子衿,悠悠我心。"

>>> s[5]

'悠'

字符串的切片对字符串中某个子串或区间的检索被称为切片。切片的使用方式如下:

[N: M]#包含N不包含M>>> "青青子衿,悠悠我心。"[8:4]

''

>>> "青青子衿,悠悠我心。"[:4]

'青青子衿'

>>> "青青子衿,悠悠我心。"[5:]

'悠悠我心。'

>>> print("青青子衿,悠悠我心。"[5:])

悠悠我心。

format()方法的基本使用字符串format()方法的基本使用格式是:

.format()

其中,模板字符串是一个由字符串和槽组成的字符串,用来控制字符串和变量的显示效果。槽用大括号({})表示,对应format()方法中逗号分隔的参数。>>> "{}曰:学而时习之,不亦说乎。".format("孔子")

'孔子曰:学而时习之,不亦说乎。'如果模板字符串有多个槽,且槽内没有指定序号,则按照槽出现的顺序分别对应.format()方法中的不同参数。>>> "{}曰:学而时习之,不亦{}。".format("孔子","说乎")

'孔子曰:学而时习之,不亦说乎。'可以通过format()参数的序号在模板字符串槽中指定参数的使用,参数从0开始编号>>> "{1}曰:学而时习之,不亦{0}。".format("说乎","孔子")

'孔子曰:学而时习之,不亦说乎。'

>>> "{1}曰:{{学而时习之,不亦{0}}}。".format("说乎","孔子")

'孔子曰:{学而时习之,不亦说乎}。'

format()方法的格式控制format()方法中模板字符串的槽除了包括参数序号,还可以包括格式控制信息。

{: }其中,格式控制标记用来控制参数显示时的格式 。格式控制标记包括:,<.>6个字段,这些字段都是可选的,可以组合使用

:,<.>

引导符号用于填充的单个字符

>   右对齐

^   居中对齐槽的设定输出宽度数字的千位分隔符,适用于整数和浮点数浮点数小数部分的精度或字符串的最大输出长度整数类型

b, c, d, o, x, X

浮点数类型

e, E, f, %、和主要用于对显示格式的规范。

宽度指当前槽的设定输出字符宽度,如果该槽参数实际值比宽度设定值大,则使用参数实际长度。如果该值的实际位数小于指定宽度,则按照对齐指定方式在宽度内对齐,默认以空格字符补充。

对齐字段分别使用和^三个符号表示左对齐、右对齐和居中对齐。

填充字段可以修改默认填充字符,填充字符只能有一个。>>>s = "等级考试"

>>>"{: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)

'12345.68'

>>> "{:>25.3f}".format(12345.67890)

' 12345.679'

>>>"{:.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'对于浮点数类型,输出格式包括4种:· 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%'常用的format()方法格式控制信息>>>"{:.2f}".format(3.1415926) # 输出小数点后两位

'3.14'

>>>"{:x}".format(1010) # 输出整数的十六机制形式

'3f2'

>>>"{:.5}".format("这是一个很长的字符串") # 输出字符串的前5位

'这是一个很'

>>>"{:-^10}".format("PYTHON") # 居中并填充

'--PYTHON--'

4、字符串类型的操作

字符串操作符针对字符串,Python语言提供了几个基本操作符

操作符描述

x + y连接两个字符串x与y

x * n 或 n * x复制n次字符串x

x in s如果x是s的子串,返回True,否则返回False>>>name = "Python语言" + "程序设计"

>>>name

'Python语言程序设计'

>>>"等级考试!" * 3

'等级考试!等级考试!等级考试!'

>>>"语言" in name

True

>>>'Y' in name

False

字符串处理函数Python语言提供了一些对字符串处理的内置函数

函数描述

len(x)返回字符串x的长度,也可返回其他组合数据类型的元素个数

str(x)返回任意类型x所对应的字符串形式

chr(x)返回Unicode编码x对应的单字符

ord(x)返回单字符x表示的Unicode编码

hex(x)返回整数x对应十六进制数的小写形式字符串

oct(x)返回整数x对应八进制数的小写形式字符串>>>len("全国计算机等级考试Python语言科目")

19

>>>chr(10000)

'✐‘

>>>hex(1010)

'0x3f2'

字符串处理方法方法也是一个函数,只是调用方式不同。函数采用func(x)方式调用,而方法则采用.func(x)形式调用。方法仅作用于前导对象。

方法描述

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字符串str.split(sep) 能够根据sep分隔字符串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.']str.count(sub)方法返回字符串str中出现sub的次数,sub是一个字符串。>>>"Python is an excellent language.".count('a')

3str.replace(old, new)方法将字符串str中出现的old字符串替换为new字符串,old和new的长度可以不同。>>>"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.'str.center(width, fillchar)方法返回长度为width的字符串,其中,str处于新字符串中心位置,两侧新增字符采用fillchar填充,当width小于字符串长度时,返回str。其中,fillchar是单个字符。>>>"Python".center(20, "=")

'=======Python======='

>>>"Python".center(2, "=")

'Python'str.strip(chars)从字符串str中去掉在其左侧和右侧chars中列出的字符。chars是一个字符串,其中出现的每个字符都会被去掉。>>>" ==Python== ".strip(' ')

'==Python=='

>>>" ==Python== ".strip(' =')

'Python'

>>>" ==Python== ".strip(' =n')

'Pytho'str.join(iter)中iter是一个具备迭代性质的变量,该方法将str字符串插入iter变量的元素之间,形成新的字符串。>>>" ".join('PYTHON')

'P Y T H O N'

>>>",".join('12345')

'1,2,3,4,5'

>>>",".join(['1', '2', '3', '4', '5'])

'1,2,3,4,5'

5、类型判断和类型间转换

数字类型的转换Python语言提供type(x)函数对变量x进行类型判断,适用于任何数据类型。n = eval(input('请输入一个数字:'))

if type(n) == type(123):

print("输入的数字是整数。")

elif type(n) == type(11.3):

print("输入的数字是浮点数。")

else:

print("无法判断输入类型。")数值运算操作符可以隐式地转换输出结果的数字类型,例如,两个整数采用运算符“/”的除法将可能输出浮点数结果。

此外,通过内置的数字类型转换函数可以显式地在数字类型之间进行转换

函数描述

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原文字符P,其密文字符C满足如下条件:

C = ( P + 3 ) mod 26解密方法反之,满足:

P = ( C – 3 ) mod 26

恺撒密码-加密恺撒密码的加密算法程序首先接收用户输入的文本,然后对字母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.

恺撒密码-解密恺撒密码的解密算法程序首先接收用户输入的加密文本,然后对字母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数值运算操作符和数值运算函数。进一步讲解了字符串类型及格式化、字符串操作符、字符串处理函数和字符串处理方法等。最后,本章还介绍了类型判断和类型转换的基本方法,通过对恺撒密码及其变种若干实例的讲解帮助读者加深对数据类型操作的理解。

有没有一个人,你想给TA传个小纸条?用恺撒密码一展身手吧。

python限制输入类型_《计算机二级Python语言程序设计考试》第3章:基本数据类型...相关推荐

  1. 二级java题型及分值_2016年全国计算机二级java语言程序设计考试大纲

    2016年全国计算机二级java语言程序设计考试大纲 2016年3月计算机考试即将在3月26日-29日进行,为了帮助大家顺利通过2016年计算机二级考试,下面百分网小编为大家带来2016年全国计算机二 ...

  2. c语言程序设计 计算机2级,计算机二级c语言程序设计考试试题

    C语言是一种计算机程序设计语言.它既有高级语言的特点,又具有汇编语言的特点.以下是关于计算机二级c语言程序设计考试试题,希望大家认真阅读! 1: 第1题请编写函数fun,其功能使:将两个两位正整数a ...

  3. c语言考试成绩评价规则编程,上海市高等学校计算机二级C语言程序设计考试大纲.doc...

    上海市高等学校计算机二级C语言程序设计考试大纲.doc 上海市高等学校计算机二级C语言程序设计考试大纲上海市高等学校计算机等级考试(二级)C 程序设计考试大纲上海市高等学校计算机等级考试(二级)C 程 ...

  4. C++语言程序设计全真模拟试卷,2017年全国计算机二级C++语言程序设计考试试题...

    2017年全国计算机二级C++语言程序设计考试试题 一.选择题(每小题1分,共40分) 1有如下程序: #include using namespace std; class Base{ protec ...

  5. 超女选秀C语言程序设计,结构体数组 2013年计算机二级C语言程序设计考试大纲...

    2013年是什么年?蛇年吗?答:2013年1月1日-2013年2月9日是农历壬辰年(龙年):2013年2月10日-2013年12月31日是农历癸巳年(蛇年).由于2013年指的是公历年,所以要给它转换 ...

  6. 计算机考试c++语言程序设计,2017年全国计算机二级C++语言程序设计考试大纲

    摘要 全国计算机等级考试二级C++语言 程序设计考试大纲(2013 年版) 基本要求 1. 掌握C++语言的基本语法规则. 2. 熟练掌握有关类与对象的相关知识. 3. 能够阅读和分析C++程序. 4 ...

  7. 全国计算机二级c语言程序设计考试内容,2015年全国计算机等级考试二级C语言程序设计考试大纲(2013年版)...

    2015年全国计算机等级考试二级C语言程序设计考试大纲(2013年版) 基本要求: 1. 熟悉 Visual C++ 6. 0 集成开发环境. 2. 掌握结构化程序设计的方法,具有良好的程序设计风格. ...

  8. python 循环赋值_计算机二级Python语言程序设计 第2章Python语言基本语法元素

    第二章学习知识导图 本章概述:本章目的是了解基础的Python相关知识 考点主要是: 1) 程序的基本语法元素:程序的格式框架.缩进.注释.变量.命名.保留字.数据类型.赋值语句.引用 2) 基本输入 ...

  9. c语言中数组的各元素必须具有相同的类型,2018年9月计算机二级C语言程序设计章节习题1...

    出国留学网在这里为考生们整理了"2018年9月计算机二级C语言程序设计章节习题",希望能帮到大家,想了解更多考试资讯,请关注小编的及时更新哦. 2018年9月计算机二级C语言程序设 ...

  10. C语言计算机二级/C语言期末考试 刷题(二)

    收集了一些经典C语言计算机二级和C语言期末考试题库 整理不易,大家点赞收藏支持一下 祝大家计算机二级和期末考试都高分过 系列文章: C语言计算机二级/C语言期末考试 刷题(一) 目录 一.填空   共 ...

最新文章

  1. unity 角色 动画脚本_Unity Animation --动画剪辑(外部来源的动画)
  2. 百兆以太网传输距离_新品推荐 16+2G口百兆/千兆监控接入型非标PoE交换机!
  3. lamp架构,搭建一个网络平台
  4. NLP《词汇表示方法(二)词嵌入表示》
  5. java值传递和引用传递的题目_Java 值传递和引用传递
  6. 程序员编程,你的练习是不是有效的?
  7. 黑客声称攻陷并加密白俄罗斯国家铁路的服务器
  8. 小学生python编程教程-围观~山东省的小学生Python编程入门都学的什么?
  9. oracle查询functions名字,oracle 怎样查看已经存在的函数,过程?
  10. Java实现简单的QQ登录界面
  11. Cadence Allegro PCB设计88问解析(十二) 之 Allegro中两种单位显示设置
  12. 真正的QString转char,utf8编码转gb2312编码
  13. Local time zone must be set--see zic manual page 2017
  14. 【超详细教程(附源码)】基于 ARM Cortex-M3 处理器与 FPGA 的实时人脸检测 SOC
  15. 5.JavaSwing知识点----(1)swing中的容器
  16. Excel 属性及方法
  17. 安装 pymysql 的方法
  18. 5G工业路由器PLC无线组网远程控制
  19. ads1258_ADS1258高精度多通道模/数转换芯片
  20. 【项目重构】总结与反思

热门文章

  1. SQL数据库字符串与时间相互转换
  2. 【问】启动SQL服务管理器时提示SQL Server could not find
  3. 数据库join使用方法
  4. 三维计算机动画的特征是真实性,【影视制作论文】艺术语言论文:纪录片中语言的真实性解析(共4867字)...
  5. JavaScript遍历字符串
  6. Jvm面试题总结及答案 300道(针对Jvm的面试题 )
  7. 搭建个人网站需要选择什么样配置的服务器
  8. [日推荐]『宝可梦图鉴』精灵宝可梦的百科全书
  9. 双十二电商短信推广模板
  10. 服务器刷系统多少钱一台,梦幻西游:一个人搞垮一个服务器,土豪狂刷传音致系统崩溃!...