Python基础知识点总结

丰富的线上&线下活动,深入探索云世界

做任务,得社区积分和周边

最真实的开发者用云体验

让每位学生受益于普惠算力

让创作激发创新

资深技术专家手把手带教

遇见技术追梦人

技术交流,直击现场

海量开发者使用工具、手册,免费下载

极速、全面、稳定、安全的开源镜像

开发手册、白皮书、案例集等实战精华

为开发者定制的Chrome浏览器插件

程序的格式框架,即段落格式,是Python语法的一部分,可以提高代码的可读性和可维护性。

Python语言采用严格的缩进来表示程序逻辑。也就是我们所说的Python程序间的包含与层次关系。一般代码不要求缩进,顶行编写且不留空白。在if、while、for、def、class等保留字所在完整语句后通过英文的“:”结尾并在之后行进行缩进,表明后续代码与紧邻无缩进语句的所属关系。

缩进可以用Tab键实现,也可以用多个空格实现(一般是4个空格),但两者不能混用。建议采用4个空格方式书写代码。

注释是代码中的辅助性文字,会被编译器或解释器略去,不被计算机执行,一般用于程序员对代码的说明。Python语言中使用“#”表示一行注释的开始。注释可以在一行中任意位置通过“#”开始,其后面的本行内容被当作注释,而之前的内容依然是Python执行程序的一部分。

注释的作用:

#-*-coding:utf-8-*-#@File:demo.py#@author:Flymeawei#@email:1071505897@qq.com#@Time:2022/8/213:40#单行注释'''多行注释'''"""多行注释"""2.1.3续行符Python程序是逐行编写的,每行代码长度并无限制,但从程序员角度,单行代码太长并不利于阅读。这个时候就可以使用续行符将单行代码分割为多行表达。

Python中的续行符为“\”。续行符之后不允许再存在空格,即续行符后直接换行。

print("云南的城市有{}\n{}\n{}\n{}".format('昆明',\'曲靖',\'大理',\'丽江'))2.2语法元素的名称Python语言的基本单位是单词,少部分单词是Python语言规定的,被称为保留字。大部分单词是用户自己定义的,通过命名过程形成了变量或函数,用来代表数据或代码,称为标识符。

变量是保存和表示数据值的一种语法元素,变量的值是可以改变的,通过赋值运算符“=”方式被修改。Python语言中,变量可以随时命名、随时赋值、随时使用。

由三部分组成:

"""标识:id类型:type值:value"""多次赋值后将指向新的空间

name='hello'#第一次赋值print(id(name))#标识#2026989330544name='world'#第二次赋值print(id(name))#20269893171682.2.2保留字保留字也称keyword关键字,被编程语言内部定义并保留使用的,每种程序设计语言都有一套保留字,保留字一般用来构成程序的整体框架,Python3.x中一共有35个保留字。

importkeyword#导入关键字模块print(keyword.kwlist)#调用keyword模块的kwlist方法Python3.x中的35个保留字

andasassertasyncawaitbreakclasscontinuedefdelelifelseexceptFalsefinallyforfromglobalifimportinislambdaNonenonlocalnotorpassraisereturnTruetrywhilewithyieldPython二级考试涉及到的保留字一共有22个。选学5个:None、finally、lambda、pass、with。Python中的保留字也是大小写敏感的。举例:True为保留字,而true则不是保留字。

标识符可以简单的理解为一个名字,主要用来标识变量、函数、类、模块和其他对象的名称。

标识符的命名规则

ASCII码表

ASCII码表字符解释

Python提供的3种数值类型:整数类型:与数学中的整数一致,包含正、负、0。一个整数有二进制、八进制、十进制、十六进制4种表示方式。

浮点数类型:与数学中的小数一致,没有取值范围限制,可正、可负。有两种表示形式,一种是小数点的形式,另外一种是科学计数法。浮点数只有十进制形式。

复数:与数学中的复数一致,采用a+bj的形式表示,存在实部和虚部。

计算机经常处理文本信息,文本信息在程序中使用字符串类型表示。在Python中使用单引号或双引号括起来的一个或多个字符来表示。单引号和双引号的作用相同。

#字符串类型被称为不可变的字符序列print('我用python')print("我用python")print('''我用python''')print(type('我用python'))print(type("我用python"))print(type('''我用python'''))字符序列有两种序号体系:正向递增序号:有效范围为[0,N-1],其中N为字符串中字符的个数。最左侧的字符序号为0,依次向右递增,最右侧字符序号为N-1。

s='helloword'print(s[0])#hprint(s[-10])#h还可以采用[N:M]格式获取字符串的子串,这种操作被称为切片操作。[N:M]获取字符串中从N到M(但不包含M)的连续的子字符串。N和M都表示的是索引序号,可以混合使用正向递增序号和反向递减序号。

s='helloword'print(s[0:5])#helloprint(s[0:-5])#hello通过Python默认提供的len()函数获取字符串的长度,一个中文字符和一个英文字符的长度都记为1。

print(len(s))#102.4程序的语句元素2.4.1表达式产生或计算新数据值的代码片段称为表达式。类似于数学中的公式,一般由数据和操作符构成。

对变量进行赋值的一行代码被称为赋值语句。在Python中使用一个“=”表示“赋值”,即将等号右侧表达式计算后的结果值赋给左侧的变量。

基本赋值语句语法:变量=表达式

同步赋值语句就是同时给多个变量进行赋值。同步赋值语句语法:

变量1,变量2,......变量N=表达式1,表达式2,......,表达式N

同步赋值语句应用最多的就是互换变量的值,即交换两个变量的值。

Python程序会经常使用到当前程序之外已有的功能代码,这个过程叫引用。

Python语言中使用import这个保留字引用当前程序以外的功能库。import<功能库名称>引用功能库之后使用功能库.函数名()的方式调用基本功能,这种方式简称为“A.B()”方式。

除了赋值语句之外,Python还有分支语句和循环语句。先简单介绍一下使用,后面后详细讲解。

分支语句:根据判断条件选择程序执行路径。一般包含单分支结构、双分支结构和多分支结构。单分支语法结构:

if条件:语句块任何能够产生True或False的语句都可以作为条件,当条件为True时,则执行语句块中的内容。

双分支语法结构:

if条件:语句块1else:语句块2当条件为True时,执行语句块1,当条件为False时,执行语句块2。其中if...else都是保留字。

循环结构与分支结构一样都是程序控制语句,它的作用是根据判断条件确定一个程序是否再执行一次或者多次。

条件循环的语法结构:

while条件:语句块1语句块2当条件为True时,执行语句块1,然后再次判断条件,当条件为False时,退出循环,执行语句块2。

input()函数是从控制台获得用户的一行输入,无论用户输入什么内容,input()函数都以字符串类型返回。input()函数可以包含一些提示性文字,用来提示用户。

input语法格式:变量=input('提示性文字')无论用户输入的是数字还是字符,input()函数统一按照字符串类型输出,为了后续能够操作用户输入的信息,需要将输入指定一个变量进行存储。

input()函数的提示性文字不是必须的,可写可不写。

eval(s)函数将去掉字符串s最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容。

eavl语法格式:变量=eval(字符串)

变量用来保存对字符串内存进行Python运算的结果。

eval()函数去掉了字符串’1.2’最外侧的引号,结果赋值给a,所以a的类型为float类型。eval()函数去掉了字符串’1.2+3.4’最外侧的引号,对其内容当作Python语句进行运算,运算的结果为4.6,保存到变量a中,所以a的类型是float类型。

当eval()函数处理字符串’python’时,字符串去掉了两边的引号,Python语句将其解释为一个变量,由于这个变量在之前别有定义,因此解释器报错。如果定义变量python并赋值为123,再运行这个语句时就没有问题,如果输出为123。

eval()函数经常和input()函数一起使用,用来获取用户输入的数字。

eval()与input()函数一起使用的语法:变量=eval(input(提示性文字))

用户输入的数字、包括小数和负数,input()解析为字符串,再由eval()去掉字符串引号,将被直接解析为数字保存到变量中。

print()函数用于输出运算结果。

defprint(self,*args,sep='',end='\n',file=None):#knownspecialcaseofprint"""print(value,...,sep='',end='\n',file=sys.stdout,flush=False)Printsthevaluestoastream,ortosys.stdoutbydefault.Optionalkeywordarguments:file:afile-likeobject(stream);defaultstothecurrentsys.stdout.sep:stringinsertedbetweenvalues,defaultaspace.end:stringappendedafterthelastvalue,defaultanewline.flush:whethertoforciblyflushthestream."""passsep=''分隔符,默认为一个空格end='\n'结束符,默认以换行结束

print()函数的三种用法:

print(待输出字符串或变量)

对于字符串,print()函数输出后将出掉两侧引号,对于其它类型,则会直接输出。

当print()输出字符串表示时,字符串统一使用单引号表达。在[]中的字符串都使用了双引号,但是在被print()函数打印输出时,输出结果都采用了单引号。

print(变量1,变量2,......,变量N)

print(输出字符串模板.format(变量1,变量2,......,变量N))

print()函数输出的输出内容

'''可以输出数字int'''print(2)#2'''可以输出字符串str'''print('hello')#hello'''输出含有运算符的表达式'''print(2+3)#5print()函数输出的目的地

'''将内容输出到显示器'''print('hello,world')#hello,world'''将内容输出到文件'''#注意:所指定的盘符存在;使用file=fp;fp=open('E:\\text.txt','a')print('hello,world!',file=fp)fp.close()‘整数{}和整数{}的差是:{}’是输出字符串模板,也就是混合字符串输出的样式,大括号{}表示一个槽位,括号中的内容由后面紧跟着的format()方法中的参数按顺序填充。

就是反斜杠+想要实现的转义功能首字母。

为什么需要转义字符当字符串中包含反斜杠、单引号和双引号等有特殊用途的字符时,必须使用反斜杠对这些字符进行转义(转换一个含义)。

print('\\')#\print('\'')#'print('\"')#"当字符串中包含换行、回车,水平制表符或退格等无法直接表示的特殊字符时,也可以使用转义字符当字符串中包含换行、回车,水平制表符或退格等无法直接表示的特殊字符时,也可以使用转义字符。

#回车\rprint('hello\rhelloworld')#将hello覆盖#换行\nprint('hello\nworld')#退格\bprint('helloo\bworld')#水平制表\tprint('hello\tworld\t你好\t好')2.6.2原字符原字符:不希望字符串中的转义字符起作用,就使用原字符,就是在字符创之前加上

注意事项,最后一个字符不能是反斜线

#原字符:不希望字符串中的转义字符起作用,就使用原字符,就是在字符创之前加上r或R#注意事项,最后一个字符不能是反斜线print(r'hello\nword')#hello\nword三、运算符3.1数值运算操作符Python提供了9个基本的数值运算操作符。

所谓函数表现为对参数的特定运算。

'''算数运算符:加+减-乘*除/整除//取余%幂**'''print(-9//-4)#2print(9//4)#2print(-9//4)#-3一正一负整除公式,商取下整print(9//-4)#-3print(9%-4)#-3公式余数=被除数-除数*商9-(-4)*(-3)=-3print(-9%4)#3-9-4*(-3)=3#规律:规律就是取余数是负数结果就是负数3.4赋值运算符赋值运算符:运算顺序从右到左

'''赋值运算符:运算顺序从右到左=a=10+=a+=ba=a+b-=a-=ba=a-b*=a*ba=ab/=a/=ba=a/b//=a//=ba=a//b%a%=ba=a%b'''链式赋值,id相同

'''链式赋值,id相同'''a=b=c=20print(a,type(a),id(a))print(b,type(b),id(b))print(c,type(c),id(c))print('-------------------------')output:201407253950036482014072539500364820140725395003648-------------------------参数赋值

'''参数赋值'''a=20a+=30#a=a+30print(a)#50系列解包赋值

布尔类型用来表示真或假

Python中一切皆对象,所有对象都有一个布尔值,获取对象布尔值使用内置函数bool()

#Python中一切皆对象,所有对象都有一个布尔值#获取对象布尔值使用内置函数bool()'''以下对象布尔值为False:False数值0None空字符串''空列表[]空字典{}空元组()空集合{}'''print(bool(False))print(bool(0))print(bool(0.0))print(bool(None))print(bool(''))print(bool([]))#空列表print(bool(list()))print(bool({}))#空字典print(bool(dict()))print(bool(()))#空元组print(bool(tuple()))print(bool(set()))#空集合print('-------------以上对象bool值均为False------------')3.6比较运算符比较运算符:比较的值为True或False

''''>大于<小于==等于比较的是值:value!=不等于>=大于等于<=小于等于对象id的比较isisnot'''3.7位运算&|'''位运算符:位与&对应位数都是1,结果才为1,否则为0位或|对应位数都是0,结果才为0左移运算符<<高位溢出,低位补0右移运算符>>低位溢出,高位补0'''3.8逻辑运算符:andornotTrue和False二元数值构成了基本的真假逻辑,因此诞生了逻辑运算。

'''and且全真为真or或有真则真not非对bool类型操作数取反in在...里notin不在...里'''3.9运算符的优先级指数运算运算(最高优先级)**算数运算*///%+-位运算<<>>&|比较运算符><>=<=等于运算符==!=身份运算符isisnot成员运算符innotin逻辑运算符andornot四、流程控制4.1顺序结构程序按照线性顺序依次执行的一种运行方式。

例:把大象装冰箱分几步:

#把大象装冰箱分几步print('--------程序开始--------')print('1.把冰箱门打开')print('2.把大象装进冰箱')print('3.关上冰箱门')print('--------程序结束--------')4.2分支结构(选择结构)程序根据判断条件的布尔值选择性地执行部分代码明确的让计算机知道在什么条件下,该去做什么。

中文语义:如果......就......

if条件表达式:条件执行体if条件语句:判断一次,条件为True时执行一次

if条件表达式:条件执行体else:条件执行体2双分支结构if...else,二选一执行

语法结构:

if条件表达式:条件执行体elif条件表达式:条件执行体elif条件表达式:条件执行体elif条件表达式:条件执行体else:条件执行体例:从键盘录入一个整数成绩:90-100:A80-89:B70-79:C60-69:D0-59:E小于0或大于100不及格代码:

num=int(input('从键盘输入一个成绩:'))if90<=num<=100:print('A')elif80<=num<=89:print('B')elif70<=num<=79:print('C')elif60<=num<=69:print('D')elif0<=num<=59:print('E')else:print('不及格')4.2.4嵌套if的使用语法结构:

会员:>=2008折>=1009折<100不打折非会员:>=2009.5折<100不打折代码:

answer=input('您是会员吗y/n')money=float(input('请输入您的购物金额:'))#外层判断是否是会员ifanswer=='y':#会员ifmoney>=200:print('打8折,付款金额为:',money*0.8)elifmoney>=100:print('打9折,付款金额为:',money*0.9)else:print('不打折,付款金额为:',money)else:#非会员ifmoney>=200:print('打9.5折,付款金额为:',money*0.95)else:print('不打折,付款金额为:',money)4.2.5三元表达式语法结构:xif判断条件elsey

运算规则:如果判断条件的布尔值为True,条件表达式的返回值为x,否则条件表达式的返回值为False

#条件表达式xif判断条件elseya=int(input('请输入第一个整数:'))b=int(input('请输入第二个整数:'))'''ifa>=b:print(a,'>=',b)else:print(a,'<',b)'''#条件表达式print(str(a)+'小于'+str(b))ifa

deffun(a,b):pass什么时候使用pass语句:先搭建语法结构,还没想好代码怎么写的时候。

pass语句与哪些语句一起使用:

range():用于生成一个整数序列

#第一种创建方式range(stop)range(10)print(range(10))#range(0,10)返回值是一个迭代器对象默认从0开始,默认步长为1print(list(range(10)))#用于查看range对象中的整数序列list-->列表#第二种创建方式range(start,stop)print(range(0,10))#第三种创建方式range(start,stop,step)print(range(0,10,1))range()函数的返回值是一个迭代器对象

'''内置函数range(start(开始)未指定从0开始,stop(结束),step(步长)未指定步长为1)'''r=range(1,10,2)print(r)print(list(r))#列表[1,3,5,7,9]print(tuple(r))#元组(1,3,5,7,9)print(set(r))#字典{1,3,5,7,9}in与notin判断整数序列中是否存在(不存在)指定的整数

'''判断指定整数在序列中是否存在in,notin'''print(3inr)#Trueprint(4inr)#Falseprint(3notinr)#Falseprint(4notinr)#Trueforvalueinrange(10):print(value,end='')4.3.2遍历循环for-infor-in循环

for-in的语法结构

#forin循环#in表达是依次从(字符串,序列等)中依次取值,又称遍历#forin遍历对象必须是可迭代对象'''forin语法结构'''#for自定义变量in可迭代对象:#循环体foriin'hello':print(i,end='')print('')foriinrange(10):print(i,end='')print('')#在循环体中如果不需要使用到自定义变量,可将自定义变量写为下划线('_')for_inrange(3):#3表示次数print('hello')使用for循环计算1-100之间的偶数和

#使用for循环计算1-100之间的偶数和sum=0foriteminrange(101):ifitem%2==0:sum+=itemprint('1-100之间的偶数和为:',sum)输出100-999之间的水仙花数

'''输出100-999之间的水仙花数这个数的个位上的三次方+十位上的三次方+百位上的三次方=这个数'''foriteminrange(100,1000):ge=item%10shi=item%100//10#item//10%10bai=item//100ifitem==ge**3+shi**3+bai**3:print(item)4.3.3无限循环while语法结构:

while条件表达式:条件执行体(循环体)四步循环法:

计算0-4之间的累加和

a=0#1.初始化变量s=0whilea<=4:#2.条件判断s+=a#3.条件执行体a+=1#4.改变变量print(s)#5.打印输出选择结构的if与循环结构while的区别

循环结构有两个辅助循环控制的保留字:break与continue。

break用来跳出最内层for或while循环,脱离该循环后程序继续执行循环后续代码,通常与分支结构if一起使用。

例:从键盘录入密码,最多录入三次,如果正确就结束循环

#for循环for_inrange(3):#range()函数可以用作for循环的循环次数3表示for执行了3次pwd='888'a=input('请输入密码:')ifa==pwd:print('密码正确')breakelse:print('密码错误,请重新输入密码')#while循环,四步循环法a=0whilea<3:'''条件执行体(循环体)'''b='888'pwd=input('请输入密码:')ifpwd==b:print('密码正确')breakelse:print('密码错误')a+=1continue语句continue语句用来结束当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环,进入下一次循环,通常与分支结构if一起使用

例:要求输出1-50-之间所有5的倍数

#for循环foriinrange(1,51):ifi%5==0:print(i)#while循环a=1whilea<=50:ifa%5==0:print(a)a+=1#continue语句foriteminrange(1,51):ifitem%5!=0:continueprint(item)4.3.5嵌套循环循环结构中又嵌套了另外的完整的循环结构,其中内层循环做为外层循环的循环体执行。

例1:打印一个三行四列矩形

for_inrange(3):for_inrange(4):print('-',end='\t')print()例2:输出乘法口诀表

列表类型用中括号[]表示,也可以通过list(x)函数将集合或字符串类型转换成列表类型。list()函数可生成空列表。

列表需要使用中括号[],元素之间使用英文的逗号进行分隔

lst=['hello','world','java']print(lst)使用内置函数list()lst2=list(['hello','world','java']+['hello','world','java'])print(lst2)列表生成式lst=[iforiinrange(1,11)]print(lst)5.1.2列表的特点列表元素按顺序有序排列索引映射唯一一个数据列表可以存储重复数据任意数据类型混存根据需要动态分配内存空间5.1.3列表的索引索引是列表的基本操作,用于获得列表第一个元素。该操作沿用序列类型的索引方式,即正向递增序号和反向递减序号,使用中括号作为索引操作符,索引序号不能超过列表的元素范围,否则会产生IndexErrorr的错误。获取列表中指定元素索引

语法:列表或列表变量.index('要获取索引的元素',起始位置,结束位置)

如果列表中含有相同元素,只返回相同元素的第一个元素的索引。

#如果列表中含有相同元素,只返回相同元素的第一个元素的索引lst=['hello','world','java','hello','world','java']print(lst.index('java'))#2print(lst.index('java',3,6))#5可以使用遍历循环对列表类型的元素进行遍历操作。

语法:for迭代变量in列表名:

#列表元素的遍历lst=[10,20,30,40,50,60,70,80]foriinlst:print(i)output:10203040506070805.1.4列表的切片切片是列表的基本操作,用于获得列表的一个片段,即获得零个或多个元素。切片后的结果也是列表类型。切片有两种使用方式:

根据索引获取元素值

列表类型的一些常用操作方法:

代码:

sort()方法

classlist(object):defsort(self,*args,**kwargs):#realsignatureunknown"""SortthelistinascendingorderandreturnNone.Thesortisin-place(i.e.thelistitselfismodified)andstable(i.e.theorderoftwoequalelementsismaintained).Ifakeyfunctionisgiven,applyitoncetoeachlistitemandsortthem,ascendingordescending,accordingtotheirfunctionvalues.Thereverseflagcanbesettosortindescendingorder."""pass按升序对列表进行排序,返回None。排序是原地的(即列表本身被修改)和稳定的(即保持两个相等元素的顺序)。如果给出了一个键函数,对每个列表项应用一次,并对它们进行排序,根据它们的函数值升序或降序。反向标志可以设置为降序排序。内置函数sorted()

列表生成式:简称列表生成的公式。

语法格式:lst=[列表元素表达式for自定义变量in可迭代对象]例:lst=[iforiinrange(1,11)]

“键值对”是组织数据的一种重要方式,广泛应用在当代大型信息系统中,如Web系统。键值对的基本思想是将“值”信息关联一个“键”信息,进而通过键信息找对应的值信息,这个过程叫映射。Python语言中通过字典类型实现映射。

在python中创建一个字典对象,常用的方式有两种。

'''第一种方式,使用花括号{},语法如下所示使用{}创建字典scores={'张三':100,'李四':98,'王五':45}'''scores={'张三':29,'李四':10,'王五':40}print(scores)#{'张三':29,'李四':10,'王五':40}print(type(scores))#第二种方式,使用内置函数dict()。'''第二种方式,使用内置函数dict()。dict即dictionary(字典)的缩写,语法如下所示。字典名=dict(键1=值1,键2=值2)'''dic=dict(name='张三',age=20)print(dic)#{'name':'张三','age':20}创建空字典d={}print(d)#{}5.2.5字典元素的获取根据键key获取字典的值value

#1.使用[]获取scores={'张三':29,'李四':10,'王五':40}print('张三'inscores)#Trueprint('张三'notinscores)#Falseprint(scores['张三'])#29#2.使用get()方法print(scores.get('张三'))#29print(scores.get('柽柳'))#Noneprint(scores.get('麻子',99))#99是在查找麻子值的(value)不存在时的一个默认值5.2.6字典的操作函数Python内置数据结构:字典dict()类源代码:

字典类型有一些操作方法,使用的语法格式为:<字典对象名>.<方法名>(<方法参数>)

scores={'张三':29,'李四':10,'王五':40}

2.字典中元素是无序的

元组:Python内置的数据结构之一,是一个不可变序列。

不可变序列与可变序列

不变可变序列:没有增、删,改的操作

#修改后对象地址会发生改变s='hello'print(id(s))#2533879685808s=s+'world'print(id(s))#2533879671984print(s)#helloworld可变序列:列表、字典可变序列:可以对序列执行增、删、改操作,对象地址不发生更改

#1.使用()t=('python','java')print(t)#('python','java')print(type(t))#使用内置函数tuple()#2.使用内置函数tuple()t2=tuple(('java','python'))print(t2)#('java','python')print(type(t2))#只包含一个元组的元素需要使用逗号,和小括号()#3.只包含一个元素,需要使用逗号和小括号(只有一个元素的时候必须加上,)t3=('hello',)print(t3)#('hello',)print(type(t3))#空元组创建方式#空元组创建方式t4=()t5=tuple()print('空元组',t4,t5)#空元组()()print('空列表',[],list())#空列表[][]print('空字典',{},dict())#空字典{}{}#print('空集合',{},set())为什么要将元组设计成不可变序列

在多任务环境下,同时操作对象时不需要加锁,因此,在程序中尽量使用不可变序列。注意事项:元组中存储的是对象的引用

这样设计的原因是,元组的不可变性保证了数据的完整性,这样如果有多个地方都用到了元组,我们可以保证它的数据不会被改变。并且,相较于列表,元组的读取速度更快,占用的内存空间更小,并且可以作为字典的key去使用。

#这样设计的原因是,元组的不可变性保证了数据的完整性,这样如果有多个地方都用到了元组,我们可以保证它的数据不会被改变。#并且,相较于列表,元组的读取速度更快,占用的内存空间更小,并且可以作为字典的key去使用。t=(10,[20,30],40)print(t)#(10,[20,30],40)print(type(t),id(t))#2972759079744print(t[0],type(t[0]),id(t[0]))#10140726042761152print(t[1],type(t[1]),id(t[1]))#[20,30]2972768483776print(t[2],type(t[2]),id(t[2]))#40140726042762112t[1].append(100)print(t,id(t))#(10,[20,30,100],40)29727590797445.3.3元组的遍历元组是可迭代对象,所以可以使用for...in进行遍历

什么是集合

多行字符串由一对三单引号''''''或三双引号""""""作为边界来表示,二者作用相同。

Python的驻留机制会对相同的字符串只保留一份拷贝,后续创建相同的字符串时,不会开辟新的空间,而是把字符串的地址付给新创建的变量。

>>>s1=''>>>s2=''>>>s1iss2True>>>>>>s1='a'>>>s2='a'>>>s1iss2True>>>>>>s1='abc_def'>>>s2='abc_def'>>>s1iss2True>>>s1='abc%def'>>>s2='abc%def'>>>s1==s2True>>>s1iss2False>>>>>>a=256>>>b=256>>>aisbTrue>>>a=257>>>b=257>>>aisbFalse>>>a==bTrue>>>6.1.4强制2个字符串指向同一个对象sys中的intern方法强制两个字符串指向同一个对象'''sys中的intern方法强制两个字符串指向同一个对象'''importsysa='abc%'b='abc%'print(aisb)#Truea=sys.intern(b)print(id(a),id(b))#29899052305122989905230512PyCharm对字符串进行了优化处理。

在需要进行字符串拼接时建议使用str类型的join方法,而非+,因为join()方法是先计算出所有字符中的长度,然后再拷贝,只new一次对象,效率要比"+"效率高。

语法如下:

编码:s.encode()将字符串转换为二进制数据(bytes)解码:s.decode()将bytes类型的数据转换成字符串类型

语法格式:

def函数名([参数列表]):函数体return返回值列表例:

函数名(实际赋值参数列表)#函数创建defcalc(a,b):#函数定义c=a+breturnc'''函数调用:函数名(实际参数列表)'''d=calc(10,20)#函数调用print(d)#307.3函数的参数传递函数的参数在定义时可以指定默认值,当函数被调用时,如果没人传入对应的参数时,则使用函数定义时的默认值替代。语法格式

在函数调用过程中,进行参的传递:

在一个函数的定义过程中,既有个数可变的*arges位置形参,又有个数可变的**kwargs关键字形参,要求把位置形参放在前面

函数的返回值

函数是程序的一种基本抽象方式,它将一系列代码组织起来通过命名供其他程序使用。函数封装的直接好处是代码复用,任何其他代码只要输入参数即可调用函数,从而避免相同功能的代码在被调用处重复编写。代码复用有另一个好处,当更新函数功能时,所有被调用处的功能都被更新。

程序由一系列代码组成,如果代码是顺序但无组织的,不仅不利于阅读和理解,也很难进行升级和维护。当程序长度在百行以上,如果不划分模块,程序的可读性就已经很糟糕了。解决这一问题最好的方法是将一个程序分割成短小的程序段,每一段程序完成一个小的功能。使用函数对合理划分为功能模块,并基于模块设计程序是一种常用方法,被称为“模块化设计”。

模块化设计是指函数的封装功能将程序划分成主程序、子程序和子程序间关系的表达。模块化设计是使用函数设计的思考方法,以功能块为基本单位,一般有两个基本要求:

使用函数只是模块化设计的必要非充分条件,根据计算需求合理划分函数十分重要。一般来说,完成特定功能或被经常复用的一组语句应该采用函数来封装,并尽可能减少函数间参数和返回值的数量。

从此以后,人们将计算机错误戏称为虫子(bug),而把找寻错误的工作称为(debug)。

除零异常

先看一段代码:

进入调试视图的三种方式:

(3)快捷键:shift+F9

共同点:面向过程和面向对象都是解决实际问题的一种思维方式

二者相辅相成,并不是独立的,解决复杂问题,通过面向对象便于我们从宏观上把握事物之间复杂关系,方便我们分析整个系统;具体到微观操作,仍然使用面向过程来处理

数据类型:1.不同数据类型属于不同的类2.使用内置函数type查看数据类型

创建类的语法:

class类名:pass类的组成:

类的创建:

语法:

代码实现:

语法格式:

class子类名(父类1,父类2,...):pass代码实现:

子类重写后的方法通过super().方法名()调用父类中被重写的方法。

定义子类时,必须在其构造函数中调用父类的构造函数

#-*-coding:utf-8-*-#@File:demo.py#@author:Flymeawei#@email:Flymeawei@163.com#@Time:2022/8/1523:27#多继承classA(object):passclassB(object):passclassC(A,B):pass10.3多态多态:多态就是具有多种形态,即便不知道一个变量所引用的对象是什么类型,仍然可以使用这个变量调用方法,在运行过程中根据变量所引用的对象类型,动态决定调用那个对象中的方法。代码实现:

动态语言与静态语言

静态语言和动态语言关于多态的区别:

赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。

**浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变)**

哪些是浅拷贝:

深拷贝:创建一个新的对象,并且递归的复制它所包含的对象。

1.模块:英文名modules

2.在Python中一个拓展名为.py的文件就是一个模块

3.函数与模块的关系:

4.使用模块的好处:

#-*-coding:utf-8-*-#@File:demo.py#@author:Flymeawei#@email:Flymeawei@163.com#@Time:2022/8/1611:58deffun():#函数passclassStudent:#类a='hello'#类属性def__init__(self,name):#初始化方法self.name_=name#实例属性def__str__(self):#实例方法pass@staticmethoddefcm():print('静态方法')@classmethoddefcs(cls):print('类方法')a=10#变量b=20c=a+b#语句11.1.2导入模块创建模块:

导入模块:

import模块名称as别名#导入模块中所有的from模块名称import函数/变量/类#导入模块的指定内容代码实现:

#-*-coding:utf-8-*-#@author:Flymeawei#@email:Flymeawei@163.com#@Time:2022/8/1611:58importmath#导入关于数学运算的模块print(id(math))print(type(math))#moduleprint(math)print('----------------')print(math.pi)#3.14...print(dir(math))print(math.pow(2,3))#幂2**3=8print(math.e)print(math.ceil(9.435))#取上整print(math.floor(9.35))#取下整print(math.log(2,4))frommathimportpi#导入模块指定的内容print(pi)11.1.3导入自定义模块自定义模块calc

#-*-coding:utf-8-*-#@File:calc.py#@author:Flymeawei#@email:Flymeawei@163.com#@Time:2022/8/1611:58defadd(a,b):returna+bdefdiv(a,b):returna/b导入自定义模块calc

如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。

顶级模块__name__变量的值为__main__

语句:

if__name__='__main__':pass自定义模块calc2

#-*-coding:utf-8-*-#@File:calc2.py#@author:Flymeawei#@email:Flymeawei@163.com#@Time:2022/8/1611:58defadd(a,b):returna+bif__name__=='__main__':print(add(10,20))#只有当点击运行calc2模块时,才会执行运算导入calc2模块

1.包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下

2.包的作用:

3.包与目录的区别:

4.包的导入:import包名.模块名

module_A模块

#-*-coding:utf-8-*-#@File:module_A.py#@author:Flymeawei#@email:Flymeawei@163.com#@Time:2022/8/1611:58#包的导入a=10module_B模块

#-*-coding:utf-8-*-#@File:module_B.py#@author:Flymeawei#@email:Flymeawei@163.com#@Time:2022/8/1611:58b=100导入包package1

'''包的导入import包名.模块名'''importpackage1.module_Aasma#导入包package1中的module_A模块print(ma.a)#10导入带有包的模块注意事项

提供访问操作系统服务功能的标准库

pipinstall模块名

import模块名

常见的字符编码格式

.py文件放在磁盘上使用UTF—8储存(外存)UTF-8变长编码:UTF-8是Unicode的实现,1-4个字节表示一个字符,英文1个字节,汉字3个字节。

新建demo1.py文件

文件操作原理

内置函数open()创建文件对象

语法规则

3.文件读写操作.py文件

1.文本文件:存储的是普通“字符”文本,默认为Unicode字符集,可以使用记事本程序打开

2.二进制文件:把数据内容以字节进行存储,无法用记事本打开,必须使用专用的文软件打开,举例:MP3音频文件JPG图片.doc文档等

常用的文件打开模式

'''打开模式描述---------------------------------------------------------------------------------------------------r以只读模式打开文件,文件的指针将会放在文件的开头w以只写方式打开文件,如果文件不存在就创建,如果文件存在则覆盖原有内容,文件指针放在开头a以追加模式打开文件,如果文件不存在则创建,文件指针在开头,如果文件存在,则在文件末尾追加内容,文件指针在原文末尾b以二进制方式打开文件,不能单独使用,需要与其它模式一起使用,rb,或者wb+以读写方式打开文件,不能单独使用,需要与其它模式一起使用'''代码演示:

file.close()

"""方法名说明----------------------------------------------------------------------------------------1.read([size])从文件中读取size个字节或字符返回,若省略[size]则读到文件末尾2.readline()从文本中读取一行内容3.readlines()把文本文件中每一行都作为独立的字符串对象,并将这些对象放回列表返回4.write(str)将字符串内容写进文件5.writelines(s_list)将字符串列表s_list写入文本文件,不添加换行符6.seek(offset,whence)把文件指针移到新的位置,offset表示相对whence的位置:offset:为正往结束方向移动,whence不同的值呆鸟不同的含义:0:从文件开头开始计算1:从文件当前位置开始计算2:从文件结尾开始计算7.tell()返回文件指针当前位置8.flush()把缓冲区的内容写入文件,但不关闭文件9.close()把缓冲区内容写入文件,同事关闭文件,释放文件对象资源"""12.6with上下文管理with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正常关闭,以此来达到释放资源的目的

THE END
1.管理中控制的方法有哪些事前控制:组织在一项活动正式开始之前所进行的管理上的努力。它主要是对活动最终产出的确定和对资源投入的控制,其重点是防止组织。事中控制:在某项活动过程中进行的控制,管理者在现场对正在进行的活动始终给予指导和监督,以保证活动按规定的政策、程序和方法进行。事后控制:发生在行动或任务结束之后。这是历史最悠久的...https://m.yyk.iask.sina.com.cn/q/87N4AJD9KgmR.html
2.国开(中央电大)专科《市场营销学》网上形考(任务1至4)试题及答案33.哪种促销方式是一种能见度最高的公共沟通方式,受众面广,并在一定范围表现为无差异地提供信息,许多人共同接受同样的信息?( ) [答案:广告] 34.以下哪个不是广播媒体的优越性?( )。 [答案:针对性强,有的放矢] 35.以下不属于销售促进方式的是哪一项?( ...http://www.gjknj.com/duwu/346004.html
3.人力资源管理六大模块门各岗位的人力资源质量。它是根据员工与岗位的对应关系进行配置的一种形式 。就企业内部来说,目前这种类型中的员工配置方式大体有如下几种:招聘、轮 换、试用、竞争上岗、末位淘汰(当企业内的员工数多于岗位数,或者为了保持 一定的竞争力时,在试用过程或竞争上岗过程中,对能力最差者实行下岗分流。 http://www.chinahrd.net/blog/264/1011645/263502.html
1.2017年管理学研究生考试备考练习题及答案54.“治病不如防病,防病不如讲卫生。”根据这一说法,以下几种控制方式中,哪一种方式最重要? A. 预先控制 B.实时控制 C.反馈控制 D.前馈控制 55.一家生产洗面奶的企业,在原材料价格上涨、其他竞争者都对产品提价的情况下,仍然维持原来的产品售价,因此而出现了亏损。企业为扭亏采取了减少每单位产品包装容量的...https://www.yjbys.com/edu/yanjiusheng/42327.html
2.护理管理学复习参考题5、费德勒模型认为,某一领导方式的有效性与他是否和其所处的环境相适应无关。( F ) 6、有效的领导方式与环境和个性无关。 ( F ) 7、领导采用的领导方式应与下属的“成熟”程度一致。 ( T ) 8、在领导生命周期理论中,“四种领导方式”不能主观确定哪一种领导方式最好。 ( T ) ...https://www.unjs.com/zige/yishikaoshi/20080423104705_81692.html
3.江西环境工程职业学院2018年大学生心理降知识竞赛题库37.心理学有一种最重要的研究方法是?实验法 38.以恐怖症状为主要临床相的一种神经症是什么?恐怖症 39.人类基本的情绪有哪四种?快乐、愤怒、悲哀和恐惧 40.设身处地地去理解求助者的不良情绪和情感被称之为?共情 41.“江山易改,秉性难移”说明人的什么不可改变?气质不可改变。 http://www.jxhjxy.com/lxy/xsgl/xshd/content_20416
4.青少年网络信息安全知识竞赛题库(中职(学)版)网络安全23. DES 是一种分组加密算法,是把数据加密成 块。 ( B ) A. 32 位 B. 64 位 C. 128 位 D. 256 位 24. 以下算法中属于非对称算法的是 。 ( B ) A. Hash 算法 B. RSA 算法 C. IEDA D. 三重 DES 25. 密码处理依靠使用密钥,密钥是密码系统里的最重要因素。以下密钥算法在加密数据与解密时...https://www.wxjsxy.com/xxglzx/wlaq/content_11087
5.情商的研究戈尔曼和其他研究者认为,这种智力是由五种特征构成的:自我意识、控制情绪、自我激励、认知他人情绪和处理相互关系。 情商越来越多的被应用在企业管理学上。对于组织管理者而言,情商是领导力的重要构成部分。 来源 生命早期的智能形式,人类的右脑预测变化的环境中各类信息对自己产生各种情绪、心情、精神类感受, 判断各类...https://blog.csdn.net/qq877507054/article/details/88659895
6.山东协和学院一、蛋白质的概念 蛋白质是生物体的基本组成成份。蛋白质是由20种氨基酸组成的高分子有机物质,典型的蛋白质分子含数百至数千个aa残基,分子量数千至数百万。 蛋白质在自然界及生物体中分布广、含量高、功能多种多样。它是生命体系中最重要的成分。肌肉、毛发、血细胞等以及常见的鸡蛋、皮革、蚕丝等都主要是由蛋...https://www.sdxiehe.edu.cn/m/view.php?id=12528
7.职业指导师实操考试题目20、职业指导人员在与来访者进行职业取向分析时,如果问当事人“你那样说什么意思呢”,其他的还有什么”,这是在运用哪一个基本引导技巧? (A)关注(B)主动倾听(C)传达理解(D)运用探究 21、在确定不同求职者群体诊断咨询的切入点和切入方式时,哪种行为是错误的? https://www.ruiwen.com/shiti/1745288.html
8.什么是供应链管理?为什么供应链体系非常重要?界面新闻2.控制度关键点:保齐套和平衡产能 对于欠料和齐套管理,给大家推荐五种方式:一是生产调度例会管理机制,采用例会的方式做终端;二是物料基础数据的监控与管理;三是IT工具的运用管理(ERP—企业资源计划、APS—自动采购系统及其它辅助工具);四是库存报警机制的建设(RYG管理、预缺料管理);五是有效跟单与追料。 https://www.jiemian.com/article/4392572_foxit.html
9.一篇文章解决10个常见的表单设计疑问!内附素材经验/观点以此为基础,我们在网页表单设计中有4种最常见的标签对齐方式:顶对齐标签、右对齐标签、左对齐标签、行内标签。 另外还有混合对齐标签、内联标签、图标标签等,它们基本是在这4种形式上变化,不脱离本质。每一种对齐方式都有一定的优点和局限性;因此在合适的场景下选择合适的标签对齐样式,可以提升用户的输入效率,下面我...https://www.ui.cn/detail/626532.html
10.高一政治必修一知识点总结(人教版)1、坚持效率优先:①含义:效率,指经济活动中投入与产出的比较,它表示资源有效利用的程度。效率提高就是资源的节约和社会财富的增加。人们总是追求以最少的投入取得最大的成果。 ②收入分配方式对效率的影响:收入分配方式对效率有重要影响。因为分配是再生产的一个重要环节生产决定分配,但分配又仅作用于生产。如果分配...https://www.oh100.com/kaoshi/peixun/190654.html
11.沟通的技巧发送完信息后,对方就要去接收信息,即聆听。发送信息和聆听信息哪一个更重要一些呢?冷静地思考后你会发现,其实在沟通中听比说更重要,我们平时听别人说了很多的话,却没有认真去聆听对方真实传递的信息,导致沟通失败。所以说聆听是一种重要的非语言性沟通技巧。 https://www.jy135.com/zhichang/857618.html
12.中国法院网15、我国制定安全生产法重要目的是什么? 答:最重要的是制裁各种安全生产违法犯罪行为,保护劳动者的人身安全。 16、安全生产责任制的目的是什么? 答:明确岗位责任,保障人民生命财产,预防工伤事故的发生。 17、施工人员在作业中必须佩戴什么用品? 答:必须正确佩戴和使用合格的劳动防护用品。如:安全帽、安全带、护目镜...https://www.chinacourt.org/law/detail/2006/06/id/110289.shtml
13.54454544486. 一位工程师每天收集了100~200 件产品,每天抽样数不能保证相同,准备监控每天不合格品数,他应当使用以下哪种控制图?( ) A. u B. np C. C D. P 87. 在研究完改进措施后,决定进行试生产。试生产半月后,采集了100 个资料。发现过程仍未受控,且标准偏差过大,平均值也低于目标要求。对于这3 方面的问题...https://www.douban.com/note/708272089/
14.每日热点0704水痘是一种传染性很强的疾病,经呼吸道分泌物、皮损水疱样通过空气或直接接触传播。如果宝宝得了水痘,可能会传给没有得过的孩子,因此需要隔离。水痘一般隔离至皮疹全部结痂为止。与水痘患儿接触过的儿童,应隔离观察3周。 接种水痘减毒活疫苗是预防水痘的最有效的方式。因为人群普遍易感,建议1岁以上没...https://www.sccdc.cn/Article/View?id=31379