1.python 生态第三方库归纳
用于数据分析方面的第三方库有:numpy、scipy、pandas、Seaborn
用于Web开发框架方面的的有:Flask、Django、Pyramid、Tornado、WeRoBot(微信小程序)
用于视图可视化的有:mayavi、matplotlib、TVTK
用于网络爬虫的有:scrapy、requests、Pyspider
用于用户图形界面(GUI)的有:PyQt5、wxPython、PyGTK、turtle(但turtle属于标准库,不是第三方库)
数据存储:redis-py
自然语言处理:NLTK
人工智能领域:PyTorch、MXNet、Keras
视觉领域:OpenCV、Luminoth
深度学习方向的第三方库是:TensorFlow、Scikit-learn、Theano、MXNet、Caffe2、Keras、Pandle、PyTorch、Neon
机器学习灵域:Tensorflow、Theano、scikit-learn
文本处理(office办公):openpyxl、SnowNLP、dfminer、python-docx、beautifulsoup4、python-pptx
安装:pip(第三方安装工具)
将Python脚本程序转变为可执行程序的第三方库是: PyInstaller
图像处理:PIL
艺术类:wordcloud(生成词云)、MyQR(生成二维码)、jieba(中文分词)
游戏开发方向的第三方库是:Pygame、Panda3D、cocos2d、Arcade(图形)、FGMK、Panda3d
Python支持符号计算的第三方库是:SymPy
用于硬件开发的第三方库是:Pyserial
2.基础知识类
Python采用大写字母、小写字母、数字、下划线和汉字等字符及其组合进行命名,但名字的首字符不能是数字,标识符中间不能出现空格,长度没有限制。
A答案错再“所有代码都需要缩进”,Python语言采用严格的缩进来表示程序逻辑。
缩进指每行语句开始前的空白区域,用来表示Python程序间的包含和层次关系。
一般代码不需要缩进,顶行编写且不留空白。当表示分支、循环、函数、类等程序含义时,在if、while、for、def、class等保留字所在完整语句后通过英文冒号(:)结尾并在之后进行缩进,表明后续代码与紧邻无缩进语句的所属关系。
len(x)返回字符串x的长度,一个中文字符和一个西文字符的长度都记为1。单个\表示为转义字符,而"\0"表示一个空格,长度记为1,所以字符串长度为5。
B答案是错误的,因为python的生态十分丰富和宽泛,单单就论第三方库就有十几万了,所以它涉及的领域非常宽广和全面,而不是这里强调“主要用作”。
Python语言是一种被广泛使用的高级通用脚本编程语言,具有通用性,可以用于几乎任何与程序设计相关应用的开发,不仅适合训练编程思维,更适合诸如数据分析、机器学习、人工智能、web开发等具体的技术领域。
这题主要考的的是运算符的优先级,关键在于弄懂整除的意思(向下取整)。
我们先算括号里面的所以:
x = 2 + 9 * 28 // 10
= 2 + 252 // 10
= 2 + 25
= 27
常识送分题:什么是源文件?即我们编写的代码保存为文件后的结果。
python关键字即(保留字)如下图(共33个):
while | with | yield | |||
---|---|---|---|---|---|
and | as | assert | break | class | continue |
for | from | False | global | if | import |
in | is | lambda | nonlocal | not | None |
or | pass | raise | return | try | True |
def | del | elif | else | finally | except |
双等号==用于判断值是否相等,判断后的结果是True(真)或False(假),分别对应值相等或值不相等。左侧是浮点数运算结果为0.30000000000000004,右侧结果为0.3,值不相等,所以输出False。
至于为什么不是0.3,这涉及到计算机的浮点数定义,大家可以用python自带的idle数去测试下,0.1+0.2到底是等于0.3还是0.30000000000000004
Python字符编码可以使用ASCII编码和Unicode编码。
记忆小技巧:
chr 将数字转变为字符 ,为了和ord区分,避免混淆记不住,
我们可以单独就记一个chr就好了,ch即change的缩写,r则是str的缩写
还有小写字母的ASCII编码大于大写字母ASCII编码
complex(r,i)函数的作用是创建一个复数r+i*1j,其中i可以省略。
表达式中的运算符中,幂的运算级最高,所以先计算4**2
3*4**2//8%7
=3*16//8%7
=48//8%7
=6%7
=6
6对7求余求不了,保留原来。
[N:M]切片获取字符串从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。
简单点理解就是[N:M]切片,包头不包尾,D答案就是错在(包含N和M),正确的说法应该是包含N不包含M。
常识题
高级语言根据计算机执行机制的不同可分成两类:静态语言和脚本语言,静态语言采用编译方式执行,脚本语言采用解释方式执行(如果用过python的debuger调试工具,就可以清晰看到python语言是一行一行解释执行的,和js脚本语言一样)。
IPO模式包括输入(input)、输出(output)和处理(process)。
Python中使用print()函数打印输出,是最常见的一个函数。字符串是字符的序列表示,根据字符串内容多少分为单行字符串和多行字符串。单行字符串由一对单引号或双引号作为边界表示;多行字符串由一对三单引号或三双引号作为边界表示。
二进制整数以0b引导,由字符0和1组成。
Python语言中的浮点数类型必须带有小数部分,小数部分可以是0。
我们认为的浮点数就是有小数点的,小数部分可以是0,比如3.000,4.0
Python采用大写字母、小写字母、数字、下划线和汉字等字符及其组合进行命名,但名字的首字符不能是数字,标识符中间不能出现空格,长度没有限制。
解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。执行解释的计算机程序成为解释器。
我们用过调试工具就知道,它是逐行运行的,而不是一次性。
一般代码不需要缩进,顶行编写且不留空白。当表示分支、循环、函数、类等程序含义时,在if、while、for、def、class等保留字所在完整语句后通过英文冒号结尾并在之后进行缩进,表明后续代码与紧邻无缩进语句的所属关系。
代码编写中,缩进可以用Tab键实现,也可以用多个空格(一般是4个空格)实现,但两者不混用。不会增加编程难度。
Python采用大写字母、小写字母、数字、下划线和汉字等字符及其组合进行命名,但首字符不能是数字。
Python保留字是大小写敏感的,True是保留字,true不是。
sum不是保留字,可以被当做变量使用。
[N:M]切片获取字符串从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。反向从-1开始,正向从0开始。
A答案:tstr[-6:6]表示截取字符串反向第6个字符v到正向第7个字符s(不包括s)之间的字符,即vi。
B答案:截取到的是is
C答案:截取到的是vis
D答案:visi
id()函数是Python内置函数之一,作用是获取对象的内存地址,返回对象的内存地址(是一个正整数)。
Python语言的三个重要特点:
(1)通用性:Python语言可以用于几乎任何与程序设计相关应用的开发,不仅适合训练编程思维,更适合诸如数据分析、机器学习、人工智能、Web开发等具体的技术区域。
(2)语法简洁。
(3)生态高产:Python解释器提供了几百个内置类和函数库,此外,世界各地程序员通过开源社区贡献了十几万个第三方函数库。
除此之外,还有一些具体特点:
(1)平台无关。
(2)强制可读。
(3)支持中文。
TypeError表示类型错误。
count不是保留字,可以被当做变量使用。
eval()函数将去掉字符串最外侧的引号,并按照Python语句执行去掉引号后的字符内容。运算符//表示计算整数商,500//10结果为50。
type(x)函数对变量x进行类型判断,type('45')输出为<class 'str'>,type(type('45'))输出为<class 'type'>。
**是数值运算操作符,x**y表示x的y次幂。
+=是增强赋值操作符,x+=y等价于x=x+y。
&是按位与运算符,参与运算的两个二进制值,如果两个相应位都为1,则该位的结果为1,否则为0。
do不是保留字,d开头的保留字只有def和del。
Python语言使用保留字try和except进行异常处理。
[N:M]切片操作,包含N,不包含M
加法运算级最低的,其余平级。
这里5%6求不了余,保留为5.
所以就是
3 + 5 * 2 // 8
=3 + 10 // 8
=3 + 1
=4
**是数值运算操作符。
&是按位与运算符,&=则是对应的二元操作符。
^是按位异或运算符。
保留字大小写敏感,True和False是保留字,true和false不是保留字。
if不用于异常处理逻辑,用于分支结构。
异常处理4兄弟:try - except - else - finally
Python语言的三个重要特点:
(1)通用性:Python语言可以用于几乎任何与程序设计相关应用的开发,不仅适合训练编程思维,更适合诸如数据分析、机器学习、人工智能、Web开发等具体的技术区域。
(2)语法简洁。
(3)生态高产:Python解释器提供了几百个内置类和函数库,此外,世界各地程序员通过开源社区贡献了十几万个第三方函数库。
除此之外,还有一些具体特点:
(1)平台无关。
(2)强制可读。
(3)支持中文。
Python采用大写字母、小写字母、数字、下划线和汉字等字符及其组合进行命名,但首字符不能是数字。
3.文件处理类
Python语言中写文件的操作方法:
f.write(s):向文件写入一个字符串或字节流。
f.writelines(lines):将一个元素为字符串的列表整体写入文件。
当文件以文本方式打开时,读写按照字符串方式;当文件以二进制方式打开时,读写按照字节流方式。
你可以这样理解,比如我们打开一个.txt文本,我们看得懂的就是字符串写出来的,而不是二进制形式0101表达的那种。
二维数据,也称表格数据,由关联关系数据构成,采用二维表格方式组织,对应于数学中的矩阵,常见的表格属于二维数据。
这里A答案错在“通用”2个字上,存储二维数组的形式有很多,比如json格式,csv格式即逗号分隔值,详情要去学习csv内置模块。
关于一维数据和二维数据图解:
split()通过指定分隔符对字符串进行切片。
join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
replace()方法把字符串中的old(旧字符串)替换成new(新字符串)。
format()方法用于解决字符串和变量同时输出的格式安排问题。
str(x):将x转换为等值的字符串类型。
fo.write(s):向文件写入一个字符串或字节流。
f.writelines(lines):将一个元素为字符串的列表整体写入文件。
代码执行后的输出结果为['book','23','201009','20'],你可能很好奇为什么 fo.write(s)方法最后输出了列表,这是因为ls = ['book','23','201009','20']本身是个列表,所以直接输出了。
创建写模式x,文件不存在则创建,存在则返回异常FileExistsError。
拓展:
r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w:打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+:打开一个文件用于读写。文件指针将会放在文件的开头。
w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
逗号分隔的存储格式叫作CSV格式(逗号分隔值),是一种通用的、相对简单的文件格式,用途广泛,主要用于不同程序之间的数据交换;CSV文件不需要特定的字符编码;CSV文件的每一行是一维数据,整个CSV文件是一个二维数据;一维数据和二维数据都可以使用CSV格式保存成CSV文件。
一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中数组的概念。一维数据十分常见,任何表现为序列或集合的内容都可以看作是一维数据。
这是二维数组
[1,2,3,[4,4],[2,3,4,5,6],[7,7]]
打开并关闭文件的操作,需要文件的路径名,
由于"\"是字符串中的转义符,所以表示路径时,使用"\\"或"/"代替"\"。
记住python里面反斜杠代表转义的意思。
join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
二维数据存储为CSV格式,需要将二维列表对象写入CSV格式文件以及将CSV格式读入成二维列表对象。
二维列表对象输出为CSV格式文件方法采用遍历循环和字符串的join()方法相结合。实例如下:
#ls代表二维列表,此处省略
f = open("cpi.csv","w")
for row in ls:
f.write(",".join(row)+"\n")
f.close()
split() 方法用于把一个字符串分割成字符串数组。
strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
文件是存储在辅助存储器上的一组数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象。
Python通过open()函数打开一个文件,并返回一个操作这个文件的变量,语法形式如下:
<变量名> = open(<文件路径及文件名>,<打开模式>)
open()函数有两个参数:文件名和打开模式。打开模式用于控制使用何种方式打开文件,open()函数提供7中基本的打开模式,如下:
r:只读模式,如果文件不存在,返回异常FileNotFoundError,默认值
w:覆盖写模式,文件不存在则创建,存在则完全覆盖原文件
x:创建写模式,文件不存在则创建,存在则返回异常FileExistsError
a:追加写模式,文件不存在则创建,存在则在原文件最后追加内容
b:二进制文件模式
t:文本文件模式,默认值
+:与r/w/x/a一同使用,在原功能基础上增加读写功能
默认是只读模式,可以省略,C答案还错在必须要用r或w指定打开方式,太过绝对了,还可以指定x创建写模式,b二进制文件模式等等模式。
split()方法是常用的字符串处理方法之一。
Python文件操作方法:
f.read(size):从文件中读入整个文件内容。参数可选,如果给出,读入前size长度的字符串或字节流。
f.readline(size):从文件中读入一行内容。参数可选,如果给出,读入该行前size长度的字符串或字节流。
f.readlines(hint):从文件中读入所有行,以每行为元素形成一个列表。参数可选,如果给出,读入hint行。
f.seek(offset):改变当前文件操作指针的位置,offset的值:0为文件开头;1为当前位置;2为文件结尾。
f.write(s):向文件写入一个字符串或字节流。
f.writelines(lines):将一个元素为字符串的列表整体写入文件。
一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中数组的概念。
二维数据,也称表格数据,由关联关系数据构成,采用二维表格方式组织,对应于数学中的矩阵,常见的表格都属于二维数据。
高维数据由键值对类型的数据构成,采用对象方式组织,可以多层嵌套。高维数据相比一维和二维数据能表达更加灵活和复杂的数据关系,可以用字典类型表示。
open()方法的作用是打开一个文件,而所给的代码未对文件exam.txt进行读写操作,直接关闭,运行后代码输出的结果是<_io.TextIOWrapper name='book.txt' mode='r' encoding='cp936'>。
Python文件读操作的方法:
f.read(size):从文件中读入整个文件内容。参数可选,如果给出,读入前size长度的字符串或字节流。
f.readline(size):从文件中读入一行内容。参数可选,如果给出,读入该行前size长度的字符串或字节流。
f.readlines(hint):从文件中读入所有行,以每行为元素形成一个列表。参数可选,如果给出,读入hint行。
f.seek(offset):改变当前文件操作指针的位置,offset的值:0为文件开头;1为当前位置;2为文件结尾。
open()方法的作用是打开一个文件,而所给的代码只指定了模式而未对文件book.txt进行读写操作,直接关闭,运行后输出<_io.TextIOWrapper name='book.txt' mode='r' encoding='cp936'>。
改成这样才不报错:
txt = open('book.txt','r')
print(txt.read())
txt.close()
f.read(size):从文件中读入整个文件内容。参数可选,如果给出,读入前size长度的字符串或字节流。
split(str,num)通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分隔num个子字符串。
f.read().split(","):从文件中读入整个文件内容,并以逗号分隔。原文的第一行后有一个换行符"\n",
所以读入文件内容时,这里的字符串应为"巴巴多斯\n白俄罗斯"。
运行代码后的输出结果是['巴哈马', '巴林', '孟加拉国', '巴巴多斯\n白俄罗斯', '比利时', '伯利兹']。
备注:csv格式的文件就是excel表格
fo.writelines(lines)方法的含义是将一个元素为字符串的列表整体写入文件。
代码运行后的输出结果是book2320100920。
采用二进制方式打开文件,文件被解析成为字节流。
Python通过open()函数打开一个文件,并返回一个操作这个文件的变量。
f.write(s):向文件写入一个字符串或字节流。
C答案错误,并不会载入内存当中,而是存在一个变量空间里面,这涉及到堆栈地址什么的。
格式化方法.format()用于解决字符串和变量同时输出时的格式安排问题,使用方式如下:
<模板字符串>.format(<逗号分隔的参数>)
其中,模板字符串是一个由字符串和槽组成的字符串,用来控制子串和变量的显示结果。
槽用大括号({})表示,对应format()方法中逗号分隔的参数。
程序中使用strip()方法去掉数据尾部的逗号,
所以程序填空处应该重新加上逗号,所以选项A错误。
选项C中使用了中文状态下的引号(若将引号修改为英文状态,
输出到文件的内容也与题意不符),所以选项C错误。使用选项D中的代码输出到文件中的内容与题意不符,所以选项D错误。
对于列表类型,使用等号无法实现真正的赋值,不能产生新列表。img1 = img2语句并不是拷贝img2中的元素给变量img1,而是新关联了一个引用,即增加一个别名,img1和img2所指向的是同一套内容,所以调用函数modi()后,输出的img1,指向的是img2的内容,即[1,2,3,4,5]。在函数外部,img1内容不变,所以输出的是[12,34,56,78]。
列表的索引值由0开始。
pip常用的子命令有:
install、download、uninstall、freeze、list、show、search、wheel、hash、completion、help。
'b':二进制文件模式。
'+':与r/w/x/a一同使用,在原功能基础上增加同时读写功能。
f.readlines(hint=-1):从文件中读入所有行以每行为元素形成一个列表。参数可选,如果给出,读入hint行。
A错在加载到内存中,应该是存到一个变量中。
f.writelines(lines):直接将列表类型的各元素连接起来写入文件f。
str.split(sep=None):返回一个列表,由str根据sep被分割的部分构成,省略sep默认以空格分割。
str.strip(chars):从字符串str中去掉在其左侧和右侧chars中列出的字符。
str.replace(old,new):返回字符串str的副本,所有old子串被替换为new。
str.center(width,fillchar):字符串居中函数,fillchar参数可选。
pip常用的子命令有:
install、download、uninstall、freeze、list、show、search、wheel、hash、completion、help。
str.split(sep=None):返回一个列表,由str根据sep被分割的部分构成,省略sep默认以空格分割。
str.strip(chars):从字符串str中去掉在其左侧和右侧chars中列出的字符。
str.join(iter):将iter变量的每一个元素后增加一个str字符串。
这三个方法用来增加字符串中的分隔字符或者去掉指定字符,是在进行CSV文件读写时,可能会使用的处理方法。
index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
Python通过open()函数打开一个文件,并返回一个操作这个文件的变量,语法形式如下:
<变量名> = open(<文件路径及文件名>,<打开模式>)
f就是等号左边的变量名,不是特殊的变量,仅仅是个变量名,右边赋值给它的。
B答案:高维数据在Web系统中十分常用,作为当今Internet组织内容的主要方式,高维数据衍生出HTML、XML、JSON等具体数据组织的语法结构。
D答案:在列表中,元素的类型可以是字符串,可以是整数等等。例如:[3,4,'6','my']
A答案:高维数据由键值对类型的数据构成,采用对象方式组织。故字典用于表示高维数据,一般不用来表示一二维数据,字典类似json格式。
perf_counter()不是Python内置函数。
install:安装
uninstall:卸载
download:下载
search:查找
randint(a,b):生成一个[a,b]之间的整数,含a和b。
random.random() 随机生成一个(0,1)的浮点数,
uniform(a,b):生成一个[a,b]之间的随机小数。
使用time.time()获取当前时间戳,返回值为数字形式,得到当前时间戳Timestamp,是一个浮点数。
choice(seq):从序列类型(例如列表)中随机返回一个元素。
shuffle(seq):将序列类型中元素随机排列,返回打乱后的序列。
getrandbits(k):生成一个k比特长度的随机整数。
sample(pop,k):从pop类型中随机选取k个元素,以列表类型返回。
install:安装
uninstall:卸载
download:下载
search:查找
pencolor():设置画笔的颜色
pensize():设置画笔宽度
seth():改变画笔绘制方向
right(angle):向右旋转angle角度
这里强调颜色控制。
4.条件控制类
属于分支逻辑的保留字有if、else、elif,属于循环逻辑的保留字有break、continue、for、while。
列表、字典和字符串类型的元素是有限的,浮点数的个数是无限的。
基本的语法格式如下:
try:
<语句块1>
except:
<语句块2>
语句块1是正常执行的程序内容,当执行这个语句块发生异常时,则执行except保留字后面的语句块2。
缩进是指每行语句开始前的空白区域,用来表示Python程序间的包含和层次关系。一般代码不需要缩进,顶行编写且不留空白。当表示分支、循环、函数、类等程序含义时,在if、while、for、def、class等保留字所在完整语句后通过英文冒号(:)结尾并在之后进行缩进,表明后续代码与紧邻无缩进语句的所属关系。
异常和错误是不同的概念,异常仅指程序运行层面的错误,而错误范围更广泛,还包括程序的逻辑错误等。
break用来跳出最内层for或while循环,脱离该循环后程序从循环后的代码继续执行。
Python语言的循环结构包括两种:遍历循环和无限循环。遍历循环使用保留字for,无限循环使用保留字while。
t.fd(50)表示沿着当前方向前进指定距离,t.left(90)表示向左旋转90度。range(start, stop[, step])表示计数从start开始,到stop结束,但不包括stop,步长默认为1,则i的取值为1、2、3、4,所以绘制的图形是正方形。
分支结构中的判断条件可以使用任何能够产生True或False的语句或函数。形成判断条件最常见的方式是采用关系操作符。11<=22<33是合法的条件,输出为True。
range(start, stop[, step])表示计数从start开始,到stop结束,但不包括stop,步长默认为1,则i的取值为1、2、3、4、5。根据程序可知,当i不能被4整除时,执行输出语句;当i能被4整除时,跳出for循环,则输出结果为"1,2,3,"。
Python的单分支结构使用if保留字对条件进行判断;二分支结构使用if-else保留字对条件进行判断;多分支结构使用if-elif-else保留字对多个相关条件进行判断,并根据不同条件的结果按照顺序选择执行路径。其中,else子句是可选的,这里错在每个if必须搭配使用,其实是没有限制要求的,可以单个if关键字出现。
列表的索引采用正向递增序号或反向递减序号,正向递增序号从0开始,即ls索引的取值范围是0到9(含)的整数;反向递减符号从-1开始,即ls索引的取值范围是-1到-10(含)的整数。
键盘输入数字5,则n的值为5,s的值为0。此时n>=5条件成立,n减1为4,s被赋值为4。此时n<5条件成立,n减1为3,s被赋值为3。程序结束,输出s的值为3,因为没有continue子句,所以不会再继续下去的哦。
Python语言的循环结构包括两种:遍历循环和无限循环。遍历循环使用保留字for,无限循环使用保留字while。
输入数字5之后,程序执行try之后的语句块。语句块中只包含函数定义过程,并未调用函数,所以程序没有任何输出,要增加一个调用函数:pow2()。
顺序结构、分支结构和循环结构是Python语言中3种最基本的控制结构。异常处理以程序异常为判断条件,根据一段代码执行的正确性进行程序逻辑选择,是分支结构的一种扩展。
纠错下:这题答案应该选A
二分支结构使用if-else保留字对条件进行判断,多分支结构使用if-elif-else保留字对多个相关条件进行判断。
运算符//表示计算整数商。当guess == 0x452//2条件成立时,跳出while循环,输出guess的值。
0x452是16进制数,0x代表16进制标志,所以456(16进制)转换成十进制为4*16**2+5*16**1+2*16**0=1024+80+2=1106,则0x452//2的值为553。
十六进制转换有16进制每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个大小不同的数
continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。由代码可知,当s=="a"或s=='e'条件成立时,跳出当前当次循环,不输出s的值,则最后的输出结果为tsttst。
while循环也可以用来实现遍历循环。
divmod(x,y)函数同时返回两个值,分别是x和y的整数商和除法余数,输出为二元组形式(也称为元组类型)。
len(x):返回字符串x的长度,也可返回其他组合数据类型的元素个数。
B答案:字符串不支持除法,但支持乘法(就是对字符串的复制效果)
C答案:用法错误
D答案:isnumeric() 方法检测字符串是否只由数字组成。这种方法是只针对unicode对象。
对字符串中某个子串或区间的检索成为切片。切片的使用方式如下:
<字符串或字符串变量>[N:M]
切片获取字符串从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,
可以混合使用正向递增序号和反向递减序号。反向从-1开始,正向从0开始。
str1[2:]表示截取字符串正向第3个字符p到字符串末尾之间的字符,即'python@*'。
str.strip(chars)表示从字符串str中去掉在其左侧和右侧chars中列出的字符。
因为得到的子字符串'python@*'最左和最右都没有字符@,所以最后的结果依然为'python@*'。
字符串按位比较,x>y是成立的,所以输出True。
比较的是字符对应的ASCII码大小,如果两个字符串字符相同,但是一个字符串的字符多,则多的大,比如:
"ABC"小于"ABCD"
break是辅助循环控制的保留字,用来跳出最内层for或while循环,脱离该循环后程序从循环后的代码继续执行。
break语句,对循坏次数没有影响。
round(x):返回对x四舍五入的整数值。
eval()函数将去掉字符串最外侧的引号,并按照Python语句执行去掉引号后的字符内容。
对字符串中某个子串或区间的检索成为切片。切片的使用方式如下:
<字符串或字符串变量>[N:M]
切片获取字符串从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。反向从-1开始,正向从0开始。
tstr[3:-1]表示截取字符串正向第4个字符5到字符串末尾(不包括末尾字符)之间的字符,即'52'。
上面语句运行会出错,星号是字符串的形式,所以要加上一对引号才行。
str.center(width,fillchar):返回长度为width的字符串,
其中,str位于新字符串中心位置,两侧新增字符采用fillchar填充。
正确的语句是print(str1.center(10,'*')),运行后的结果为**python**。
纠错:题目有问题。
all(x):组合类型变量x中所有元素都为真时返回True,否则返回False;若x为空,返回True。
any(x):组合类型变量x中任一元素都为真时返回True,否则返回False;若x为空,返回True。
y中第一个元素为一个空格,在ascii2和unicode码表中空格是算一个字符,第二个元素为空,即null,
所以第一个元素为真,第二个元素为假,all(y)输出False,any(y)输出True。
for i in range(len(ls))中,i的值是数字类型,for i in ls中i是列表中的元素,是字符串类型。这两个i的值不同。
使用函数主要有两个目的:降低编程难度和增加代码复用。代码复用降低了代码行数和代码维护难度,增强代码可读性。
python的代码是解释型的,是一行一行逐行解释的,所以代码执行速度相较于其他语言是慢的。
全局变量在函数内部使用时,需要提前使用保留字global声明,而且我们的代码习惯都是置顶声明全局变量(第一行),而且global不是语句而是一个保留字。
如果一个函数需要以多种形式来接收实参,定义时一般把位置参数放在最前面,
然后是默认参数,接下来是一个星号的可变长度参数,最后是两个星号的可变长度参数。
例:def foo(x,*args,**kwargs):
len(d):字典d的元素个数(长度)。字典中每一个元素是一个键值对,共有3个键值对,所以结果为3。
常见的组合数据类型有集合类型、序列类型和映射类型。
序列类型的典型代表是字符串类型和列表类型,映射类型的典型代表是字典类型。集合类型是一个元素集合,元素之间无序,相同元素在集合中唯一存在。
准确的说python没有数组这一个概念,只有列表,容易和其他编程语言混淆
文件包括文本文件和二进制文件两种类型。文本文件一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示和阅读。二进制文件直接由比特0和比特1组成,没有统一的字符编码。
现在流行的编辑器都默认utf-8
round(x,d):对x四舍五入,保留d位小数,无参数d则返回四舍五入的整数值。
chr(x):返回Unicode编码x对应的单字符。
都说是无限循环了,还要确定循环次数吗?
Python通过保留字while实现无限循环,不需要提前确定循环次数。
循环结构有两个辅助循环控制的保留字:break和continue。
无限循环也有一种使用保留字else的扩展模式,使用方式如下:
while <条件>:
<语句块1>
else:
<语句块2>
常见的组合数据类型有集合类型、序列类型和映射类型。
序列类型的典型代表是字符串类型和列表类型,映射类型的典型代表是字典类型。集合类型是一个元素集合,元素之间无序,相同元素在集合中唯一存在。
5.组合类
列表没有长度限制,元素类型可以不同,不需要预定义长度。
例子:list1=[1,2,'3',(4,5,6),{‘age’:21}],这个列表涵盖了整数类型、字符串类型、元组类型、字典类型,所以元素类型不必相同。
python语言中通过字典类型实现映射。由于字典元素"键值对"中键是值的索引,因此,可以直接利用键值对关系进行索引元素,而列表是通过整数索引的,例如a = [1,2,3,4]求a[0]。
字典是存储可变数量键值对的数据结构,键和值可以是任意数据类型,通过键索引值,并可以通过键修改值。
字典中的值没有任何类型限制,值可以是整数类型,字符串类型、列表, 可以是任意Python对象,但是字典中的键是有类型限制的。
不允许一个键对应多个值。必须明确一条原则:每个键只能对应一个项。也就是说:一键对应多个值是不允许的。 当有键发生冲突(即字典键重复赋值),取最后(最近)的赋值。
当有键和值重复不会出现报错的提醒信息,Python并不会因字典中的键存在冲突而产生一个错误,它不会检查键的冲突。
append(x):在列表最后增加一个元素x。
insert(i,x):在列表第i位置增加元素x。
索引是列表的基本操作,用于获得列表中的一个元素。该操作沿用序列类型的索引方式,
即正向递增序号和反向递减序号,使用中括号作为索引操作符,索引序号不能超过列表的元素范围,
否则会出现IndexError错误。正向递增序号从0开始,反向递减序号从-1开始。
ls[2][1][-1]的执行过程:[2010,'stud1']-> stud1->1,即最后的结果是"1"。
查找要逐级查找,不能越过,这里应该先找food键再找cake键。
d.get(key,default)根据键信息查找并返回值信息,如果key存在则返回相应值,否则返回默认值。
代码d.get('cake','no this food')中的键"cake"在运行的时候找不到,
所以输出结果:no this food;
但是如果将代码d.get('cake','no this food')修改为d['food']['cake'],运行后输出结果:1。
Python通过保留字for实现遍历循环,使用方法如下:
for <循环变量> in <遍历结构>
<语句块>
遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,
对于每个所提取的元素执行一次语句块。for语句的执行次数是根据遍历结构中元素个数确定的。
使用range()函数,可以指定语句块的循环次数。
题目中的代码循环过程如下:
c=[1,2,3],j=0,c[0]=1,s=1;
c=[1,2,3],j=1,c[1]=2,s=3;
c=[1,2,3],j=2,c[2]=3,s=6;
c=[4,5,6],j=0,c[0]=4,s=10;
c=[4,5,6],j=1,c[1]=5,s=15;
c=[4,5,6],j=2,c[2]=6,s=21;
c=[7,8,9],j=0,c[0]=7,s=28;
c=[7,8,9],j=1,c[1]=8,s=36;
c=[7,8,9],j=2,c[2]=9,s=45。
Python语言中的组合数据类型包括集合类型、序列类型(列表类型)和映射类型(字典类型),而复数类型属于基本数据类型中的数字类型。
range(a,b,s)的作用是从a到b以s为步长产生一个序列。
list(x)的作用是创建或将变量x转换成一个列表类型。
代码执行后的输出结果是[0, 1, 2, 3, 4]。
ls.clear():删除ls中所有元素。
Python语言中的字典使用大括号{}建立,每个元素是一个键值对,使用方式如下:
{<键1>:<值1>,<键2>:<值2>……<键n>:<值n>}
其中,键和值通过冒号连接,不同键值对通过逗号隔开。
max(ls)是列表的常用操作函数,表示列表ls中的最大值。
Python通过保留字for实现遍历循环,使用方法如下:
for <循环变量> in <遍历结构>
<语句块>
遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,
对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。
ls.append(x)方法是列表的常用操作方法,作用是在列表最后增加一个元素x。
题目中的代码循环过程如下:
m = A,n = C,m+n = AC;
m = A,n = D,m+n = AD;
m = B,n = C,m+n = BC;
m = B,n = D,m+n = BD。
代码执行后的输出结果是['AC', 'AD', 'BC', 'BD']。
列表是包含0个或多个元组的有序序列,属于序列类型。列表可以进行元素增加、删除、替换、查找等操作。
如果序列长度为L,正向递增需要以最左侧序列符号为0,向右依次递增,最右侧序列符号为L-1;反向递减序号以最右侧序列符号为-1,向左依次递减,最左侧序列符号为-L。
选项"如果s是一个序列,s = [1,"kate",True],s[3]返回True"中的索引序号"3"超过列表的元素范围,出现IndexError错误,返回的结果不是True。
Python通过保留字for实现遍历循环,使用方法如下:
for <循环变量> in <遍历结构>
<语句块>
遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,
对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。
len(S):字符串S的长度,这里为4。i的取值范围为range(4),即0、1、2、3。
题目中的代码循环过程如下:
i = 0,S[-i]=P;
i = 1,S[-i]=e;
i = 2,S[-i]=m;
i = 3,S[-i]=a。
代码执行后的输出结果是Pema。
Python通过保留字for实现遍历循环,使用方法如下:
for <循环变量> in <遍历结构>
<语句块>
遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,
对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。
Python的单分支结构使用if保留字对条件进行判断,使用方法如下:
if <条件>:
<语句块>
其中,if、:和<语句块>前的缩进都是语法的一部分。<条件>是一个产生True或False结果的语句,
当结果为True时,执行<语句块>,否则跳过<语句块>。
continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。
题目中的代码循环过程如下:
s = H,输出结果H;
s = e,输出结果e;
s = l,输出结果l;
s = l,输出结果l;
s = o,输出结果o;
s = W,跳出当前当次循环,继续下一次循环;
s = o,输出结果o;
s = r,输出结果r;
s = d,输出结果d。
代码执行后的输出结果是Helloorld。
索引是按照一定顺序检索内容的体系。由于字典元素"键值对"中键是值的索引,因此,可以直接利用键值对关系索引元素。
字典中键值对的索引模式如下(采用中括号格式):
<值> = <字典变量>[<键>]
d['food'][-1]和d['cake'][1]中括号里的内容不是键,与字典类型中的索引模式不一样;d['egg']执行后的值是3,不是5。
s.insert(i,x):在列表第i位置增加元素x。
列表中的索引值从0开始,s.insert(2,3)表示在列表的第三个位置增加元素3,则题目中的代码执行后输出结果为[4,2,3,9,1]。
len(ls):列表ls中的元素个数(长度)。
代码执行后的输出结果是3,即ls=[[1,2,3],[[4,5],6],[7,8]]的长度为3。
ls.append(x):在列表ls最后增加一个元素x。
代码执行后的输出结果为['2020', '20.20', 'Python', 2020, [2020, '2020']]。
d.get(key,default):键存在则返回相应值,否则返回默认值default。
代码执行后的输出结果:黑色 黑色。
序列类型是一维元素向量,元素之间存在先后关系,通过序号访问。
高维数据由键值对类型的数据构成,采用对象方式组织,可以多层嵌套。高维数据相比一维和二维数据能表达更加灵活和复杂的数据关系,可以用字典类型表示。一维数据不用字典类型来表示。
索引序号从0开始,不能超过列表的元素范围。l1列表中只有两个元素,l1.index(2)表示取列表中第三个元素,会出错。
range(start, stop[, step])表示计数从start开始,到stop结束,
但不包括stop,步长默认为1。start默认从0开始,range(2)等价于range(0,2),则k的取值范围为0、1。
break用来跳出最内层循环,脱离该循环后程序从循环后的代码继续执行。
第1次循环,i=N,k=0,if判断条件不成立,输出i的值为N。
第2次循环,i=N,k=1,if判断条件不成立,输出i的值为N。
第3次循环,i=a,k=0,if判断条件不成立,输出i的值为a。
第4次循环,i=a,k=1,if判断条件不成立,输出i的值为a。
……
第11次循环,i=n,k=0,if判断条件成立,跳出内层循环。
第12次循环,i=n,k=1,if判断条件成立,跳出内层循环。
最后输出为NNaattiioo。