Python高级编程 课件全套 姜增如 第1-10讲-编程基础知识 -人工智能编程_第1页
Python高级编程 课件全套 姜增如 第1-10讲-编程基础知识 -人工智能编程_第2页
Python高级编程 课件全套 姜增如 第1-10讲-编程基础知识 -人工智能编程_第3页
Python高级编程 课件全套 姜增如 第1-10讲-编程基础知识 -人工智能编程_第4页
Python高级编程 课件全套 姜增如 第1-10讲-编程基础知识 -人工智能编程_第5页
已阅读5页,还剩709页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1讲Python编程基础知识第1讲主讲内容3变量及使用2Python输入/输出5Python数据类型及使用4运算符与表达式1代码行书写规则6Python模块1、格式缩进Python与其他语言最大的区别是代码块不使用大括号

{}

来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,Python根据缩进来判断代码行与前一行的关系。如果代码的缩进相同,Python认为它们为一个语句块;否则就是两个语句块。.绝对不要用tab,也不要tab和空格混用,这个必须严格执行。以下实例缩进为4个空格:if

True:

print

("True")

else:

print

("False")一、Python代码书写规则缩进相同的一组语句构成一个代码块,我们称之代码组。如:if、while、def和class这样的复合语句,首行以关键字开始,以冒号(:)结束,该行之后的一行或多行代码构成代码组。首行及后面的代码组称为一个子句(clause),如:ifexpression:suiteelifexpression:suiteelse:suiteif

True:

print

("Answer")

print

("True")

else:

print

("Answer")

#没有严格缩进,在执行时会报错

print

("False")下列代码出现错误错误信息:print

("False")

^

IndentationError:unindentdoesnotmatchanyouterindentationlevel错误表明使用的缩进方式不一致,有的是tab键缩进,有的是空格缩进,改为一致即可。若出现:

IndentationError:unexpectedindent

错误,表明:文件里格式不对,可能是tab和空格没对齐的问题,所有python对格式要求非常严格。因此,在Python的代码块中必须使用相同数目的行首缩进空格数。建议每个缩进层次使用

2个空格

4个空格

切记不能混用2、多行显示与显示多行Python语句中一般以新行作为语句的结束符,每行代码不超过80个字符,若将一条语句用多行显示,使用斜杠(\)将一行的语句分为多行显示,如:total=item_1+item_2

+

item_3等价于:total=item_1

+\item_2

+\item_3若语句中包含[],{}或(),括号就不需要使用多行连接符。如:

weekdays=

['Monday',

'Tuesday',

'Wednesday',

'Thursday',

'Friday']

以下情况除外:长的导入模块语句注释里的URL不要使用反斜杠连接行。如果一个文本字符串在一行放不下,可以使用圆括号来实现隐式行连接:x=('这是一个非常长非常长非常长非常长''非常长非常长非常长非常长非常长非常长的字符串')按照标准的排版规范来使用标点两边的空格,不要在逗号,分号,冒号前面加空格,但应该在它们后面加(除了在行尾)。参数列表,索引或切片的左括号前也不应加空格。不要用空格来垂直对齐多行间的标记,因为这会成为维护的负担(适用于:,#,=等):print("I'minChina");print("我在中国")I'minChina我在中国结果:字符串连接使用“+”字符连接,数值变量需要“str”转换,如:importsysprint("语句的长度是:"+str(10))print('参数列表:'+str(sys.argv))结果:同一行显示多条语句每个语句用分号隔开:语句的长度是:10参数列表:['D:/tools/PyCharm/bin/test4.py']3、Python赋值与引号Python使用引号(')、双引号(")、三引号('

'')或三个双引号("""

)来表示字符串。例如:

word='word

'

sentence=

"这是一个句子。"

paragraph=

"""这是一个段落。包含了多个语句"""

python赋值方法:

单变量赋值a=1

b=1;c=1或

a=b=c=1

a,b,c=1,2,"john"链式赋值:t1=t2=[1,2,3]增量赋值y+=10

'''

这是多行注释,使用单引号。

这是多行注释,使用单引号。

这是多行注释,使用单引号。

'''

或:

"""

这是多行注释,使用双引号。

这是多行注释,使用双引号。

这是多行注释,使用双引号。

"""多行注释使用三个单引号(''')或三个双引号(""")如:4、Python注释Python中单行注释采用#开头,如:

#这是第一种注释

print

(“Hello,Python!”)

#第二种注释5、Python空行函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。记住:空行也是程序代码的一部分。一般规则:顶级定义之间空两行,方法定义之间空一行顶级定义之间空两行,比如函数或者类定义.方法定义,类定义与第一个方法之间,都应该空一行.函数或方法中,也可空一行。1、输入input()函数接受一个标准输入数据,返回string类型。即:输入任何内容,input()函数总是返回一个字符串,该命令是等待用户输入,按回车键退出。input(“提示字符串\n”)将显示提示内容并自动回车,例如:a=input()b=input()print(type(a),type(b))请输入你的名字输入:100python结果<class'str'><class'str'>name=input(“请输入你的名字:\n”)二、Python输入/输出请输入你的名字:Lucy结果:a=input("a=?")b=input("b=?")c=a+b#字符连接print("a+b=:",c)d=eval(a)+eval(b)#计算数值print("a+b=:",d)输入数字型数据:a=?200b=?1.456a+b=:2001.456a+b=:201.456结果:若需要数字性,需要使用eval函数转换。例1input()接收多个输入值需要与split()结合使用,split()是用于对一个字符串进行分割成多个字符串数组,输入多个数据不能用逗号分隔。map()函数对指定序列做映射,格式:map(function,iterable),function为函数,iterable为

一个或多个序列。例如:a,b,c=map(int,input('PleaseInputa,b,c=?').split())1)将元组转换成list>>map(int,(1,2,3))结果:[1,2,3]2)将字符串转换成list>>map(int,‘1234’)结果:[1,2,3,4]3)提取字典的key,并将结果存放在一个list中>>map(int,{1:2,2:3,3:4})结果:[1,2,3]4)字符串转换成元组,并将结果以列表的形式返回>>map(tuple,‘agdf’)结果:[('a',),('g',),('d',),('f',)]input()接收多个输入值2、输出Python有类对象write()方法和print()函数两种输出方式:,类输出需要加入:import

sys引用,默认不换行输出,类输出方法是:importsyssys.stdout.write(输出内容)

print()使用%、f-format()和format()函数,有三种格式输出方式。(1)使用“%”控制符功能描述控制符功能描述控制符功能描述%d十进制整数%x(%X)十六进制整数%e(%E用科学计数法浮点数格式%u无符号整数%o八进制整数%.nf小数格式%g(%G)输出小数有效数字%cASCII字符%i整数输出“%”的输出控制符如表使用“%”的格式输出不同数据。print("整数输出=%d"%100)#输出十进制数100print("整数=%i"%-123.4556)#输出整数-123print('小数输出=%.2f'%3.14159)#输出2位小数print('科学计数输出=%E'%314159)#按照10的幂形式输出print('科学计数输出=%g'%3.14160000)#输出有效数print('数据输出%10d'%123)#输出十进制整数,占10位右对齐print('字符输出%-10s'%'中国')#输出字符串占10位左对齐运行结果:例2整数输出=100整数=-123小数输出=3.14科学计数输出=3.141590E+05科学计数输出=3.1416123字符输出中国(2)f-format格式输出(该方法是在print函数中加入“f,”和“{}”,此时,变量的值即可显示在f后面的大括号中。例如:输出name和score变量name='李一评'score=90print("《Python语言程序设计》期末成绩")print(f"hello,{name},你的得分是:{score}分")结果:《Python语言程序设计》期末成绩hello,李一评,你的得分是:90分

(3)format用法

format()函数把字符串当成一个模板,通过传入参数格式化,使用大括号’{}’作为特殊字符代替,包括:

不带编号,即“{}”带数字编号,可调换顺序,即“{1}”、“{2}”带关键字,即“{a}”、“{tom}”print(‘{}{}’.format('hello',‘world’))#不带编号print('{0}{1}'.format('hello','world'))#带数字编号print('{0}{1}{0}'.format('hello','world'))#打乱顺序print('{1}{1}{0}'.format('hello','world'))print('{a}{tom}{a}'.format(tom='hello',a='world'))#带关键字例如:helloworldhelloworldhelloworldhelloworldworldhelloworldhelloworld结果:通过位置匹配参数print('{0},{1},{2}'.format('a','b','c'))print('{},{},{}'.format('a','b','c'))print('{2},{1},{0}'.format('a','b','c'))print('{2},{1},{0}'.format(*'abc'))#可打乱顺序print('{0}{1}{0}'.format('10','20'))#可重复print('长方形:高度{h},宽度{w}'.format(h=37.24,w=-115.81))a,b,ca,b,cc,b,ac,b,a102010长方形:高度37.24,宽度-115.81结果:例3我的大学是:深圳北理莫斯科大学and入学分数是600分!深圳北理莫斯科大学网址:”!“我喜欢的计算机语言是:Matlab和Python我的名字:张三:学号:20210610115我在学习计算机语言Python,Matlab,和C语言常量PI的值近似为3.141592653589793常量PI的值近似为3.14。例4结果:importmathprint("我的大学是:%sand入学分数是%d分!"%("深圳北理莫斯科大学",600))print('{}网址:”{}!“'.format('深圳北理莫斯科大学',''))print('我喜欢的计算机语言是:{1}和{0}'.format('Python','Matlab'))print('我的名字:{name}:学号:{id}'.format(name='张三',id='20210610115'))print('我在学习计算机语言{0},{1},和{other}'.format('Python','Matlab',other='C语言'))print('常量PI的值近似为',math.pi)print('常量PI的值近似为{0:.2f}。'.format(math.pi))print('{:10s}and{:>10s}'.format('hello','world'))#10位左对齐10位右对齐print('{:^10s}and{:^10s}'.format('hello','world'))#取10位中间对齐print('{}is{:.2f}'.format(1.123,1.123))#取2位小数print('{0}is{0:>10.2f}'.format(1.123))#取2位小数,右对齐,取10位print(‘{0:8d}and{1:5d}’.format(‘体重’,55))#字符左对齐空6位,数字右对齐空3位helloandworldhelloandworld1.123is1.121.123is1.12体重

and55(4)对齐方式的使用<(字符默认)左对齐,>(数字默认)右对齐,^中间对齐、=(只用于数字)在小数点后进行补齐,取位数"{:4s}"、"{:.2f}"例5结果:'b'-二进制。将数字以2为基数进行输出。'c'-字符。在打印之前将整数转换成对应的Unicode字符串。'd'-十进制整数。将数字以10为基数进行输出。'o'-八进制。将数字以8为基数进行输出。'x'-十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。'e'-幂符号。用科学计数法打印数字。用'e'表示幂。‘g’-一般格式。将数值输出有效数字'n'-数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。'%'-百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号。

(5)使用格式控制符输出print('{:b}'.format(5))print('{:c}'.format(65))print('{:d}'.format(21))print('{:o}'.format(21))print('{:x}'.format(21))print('{:e}'.format(1022))print('{:g}'.format(21.578000))print('{:f}'.format(23))print('{:n}'.format(50))print('{:%}'.format(50))101A2125151.022000e+0321.57823.000000505000.000000%结果:例6使用类对象输出Python是一个非常好的语言。是的,也是非常容易学的一门语言!!在疫情面前,中国是最安全的国家例7importsyssys.stdout.write("Python是一个非常好的语言。\n是的,也是非常容易学的一门语言!!\n")ch='在疫情面前,中国是最安全的国家'sys.stdout.write(ch+'\n')结果:换行符1、Python常量和变量常量描述pi数学常量pi(圆周率,一般以π来表示)e数学常量e,e即自然常数(自然常数)(1)常量importmathprint('圆周率pi的值近似为:',math.pi)print('自然对数e的值近似为:',math.e)圆周率pi的值近似为:3.141592653589793。自然对数e的值近似为:2.718281828459045。三、Python变量及使用结果:(2)变量在python中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建,变量赋值格式:

等号(=)用来给变量赋值,=左边是一个变量名,=右边是存储在变量中的值,即:

变量名=值

变量定义之后,就可以直接使用了,可以通过使用del语句删除单个或多个对象的引用。例如:var_a=100var_b=3.45

del

var_a

或del

var_a,var_b

变量命名要符合Python标识符命名规则,即:(1)字母、数字、下划线组成,但不能以数字开头,普通变量一般使用小写字母;(2)可以包括英文(区分大小写)、数字以及下划线(_),可以用下划线分隔;(3)变量名中不能包含空格,或?、“”、!等符号;(4)不可使用Python关键字和函数作为变量名(5)Python以下划线开头的标识符具有特殊意义的。

单下划线开头

_foo

为不能直接访问的类属性,需通过类访问

双下划线开头的

__foo

代表类的私有成员双下划线开头和结尾的

__foo__

代表内置变量,如__init__()

代表类的构造函数。2、Python变量命名规则(6)在内存中创建变量,包括变量的名称变量保存的数据变量存储数据的类型变量的地址在定义变量时,为了保证代码格式,=的左右两边该各保留一个空格,如果变量名需要由两个或多个单词组成,可以按照以下方式命名

每个单词都使用小写字母单词与单词之间使用_下划线连接例如:first_name,last_name….Python中的保留字(关键字)不能用作常数或变数,或任何其他标识符名称。关键字就是在python内部已经使用的标识符,具有特殊的功能和含义,开发者不允许定义和关键字相同的名字的标示符,所有Python的关键字只包含小写字母。3、Python(关键字)关键字andexecnotisassertfinallyorelsebreakforpasswithclassfromprintexceptcontinueglobalraiselambdadefifreturnyielddelimporttryelifinwhilePython语言支持以下类型的运算符:算术运算符比较(关系)运算符赋值运算符逻辑运算符字符运算符位运算符成员运算符身份运算符运算符优先级四、运算符及表达式运算符描述实例+加-两个对象相加a+b输出结果36-减-得到负数或是一个数减去另一个数a-b输出结果-16*乘-返回一个被重复若干次的字符串a*b输出结果260/除法运算b/a输出结果2.6//除法运算,返回商的值b//s输出结果2%取模-返回除法的余数b%a输出结果6**幂-返回x的y次幂a**5为10的5次方,输出:1000001、算术运算符及使用设变量:

a=10,b=26:用户输入摄氏温度转为华氏温度方法是:=(摄氏温度*1.8)+32#接收用户输入celsius=

eval(input('输入摄氏温度:'))#计算华氏温度fahrenheit=(celsius*1.8)+32print('{0:.2f}

摄氏温度转为华氏温度为{1:.2f}'.format(celsius,fahrenheit))输入摄氏温度:2828.00摄氏温度转为华氏温度为82.40结果:例82、关系运算符设变量a为10,变量b为20:运算符描述实例==比较对象是否相等(a==b)返回False。!=比较两个对象是否不相等(a!=b)返回true.>返回x是否大于y(a>b)返回False。<比较x是否小于y。若x<y

返回True,否则返回False。(a<b)返回true。>=返回x是否大于等于y。(a>=b)返回False。<=返回x是否小于等于y。(a<=b)返回true。a=4;b=3print("已知:a=",a,",b=",b)print("1a>b的值为:",a>b)print("2a<b的值为:",a<b)print("3a<=b的值为:",a<=b)print("4a>=b的值为:",a>=b)print("5a==b的值为:",a==b)print("6---a!=b的值为:",a!=b)已知:a=4,b=31a>b的值为:True2a<b的值为:False3a<=b的值为:False4a>=b的值为:True5a==b的值为:False6---a!=b的值为:True结果:例9关系运算符的使用3、赋值运算符设变量a为10,变量b为20:运算符描述实例=简单的赋值运算符c=a+b将a+b的运算结果赋值为c+=加法赋值运算符c+=a等效于c=c+a-=减法赋值运算符c-=a等效于c=c-a*=乘法赋值运算符c*=a等效于c=c*a/=除法赋值运算符c/=a等效于c=c/a%=取模赋值运算符c%=a等效于c=c%a**=幂赋值运算符c**=a等效于c=c**a//=取整除赋值运算符c//=a等效于c=c//aa=4;b=3c=a-b;print("1c的值为:",c)c+=a;print("2c的值为:",c)c*=a;print("3c的值为:",c)c/=a;print("4---c的值为:",c)c=2;c%=a;print("5c的值为:",c)c**=a;print("6c的值为:",c)c//=a;print("7c的值为:",c)1c的值为:12c的值为:53c的值为:204---c的值为:5.05c的值为:26c的值为:167c的值为:4结果:例10赋值运算符的使用a=1b=1c=1或a=b=c=1a,b,c=1,2,"john“链式赋值:t1=t2=[1,2,3]增量赋值y+=10

例如:一般下列运算符前后都需使用一个空格:=,+,-,<,>,==,>=,<=,and,or,not下列运算符前后不使用空格:*/**4、Python字符串运算符操作符描述实例+字符串连接a+b'HelloPython'*重复输出字符串a*2'HelloHello'[]通过索引获取字符串中字符a[1]'e'[:]截取字符串中的一部分a[1:4]'ell'in成员运算符-如果字符串中包含给定的字符返回True"H"inaTruenotin成员运算符-如果字符串中不包含给定的字符返回True"M"notinaTruer/R原始字符串-原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。printr'\n'\nprintR'\n'\na="Hello"b="我在学习Python语言"print("a+b输出结果:",a+b)print("a*2输出结果:",a*2)print("a[1]输出结果:",a[1])print("b[4:10]输出结果:",b[4:10])a+b输出结果:Hello我在学习Python语言a*2输出结果:HelloHelloa[1]输出结果:eb[5:11]输出结果:Python例11字符串的使用

号描述

%c

格式化字符及其ASCII码

%s

格式化字符串

%d

格式化整数

%u

格式化无符号整型

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

作用同%e,用科学计数法格式化浮点数

%g

%f和%e的简写

%G

%F和%E的简写

%p

用十六进制数格式化变量的地址python字符串格式化符号:5、位运算符按位运算符是把数字看作二进制来进行计算的。Python中的按位运算。若变量a为60,b为13,则a=00111100,b=00001101运算符描述实例&按位与运算符:参与运算的两个值都为1时,则结果为1,否则为0(a&b)二进制:00001100|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a|b)输出结果61,二进制:00111101^按位异或运算符:对应二进位相异时,为1(a^b)二进制:00110001~按位取反运算符:对每个二进制位取反,即把1变为0,把0变为1。~x

类似于

-x-1(~a)输出结果-61,二进制:11000011,负数以补码形式。<<左移动运算符:对各二进位按指定数字全部左移若干位,结果是高位丢弃,低位补0。a<<2输出结果240,二进制解释:11110000>>右移动运算符:对各二进位按指定数字全部右移若干位。a>>2二进制解释:00001111print(5&3)

print(5|3)

print(5^3)

print(~5)

print(5<<2)

print(10>>2)176-6202例12位运算符的使用结果:6、逻辑运算符Python语言支持布尔(辑运)运算符,设变量a为10,b为20:运算符逻辑表达式描述实例and(与)xandy若x为False,xandy返回False,否则返回y的值。(aandb)返回20。or(或)xory若x是非0,它返回x的计算值,否则返回y的值。(aorb)返回10。not(非)notx若x为True,返回False。若x为False,它返回True。not(aandb)返回Fals请输入第一个逻辑值Ture请输入第二个逻辑值FalseFalsel1andl2Falsel1orl2Turel1=input('请输入第一个逻辑值')l2=input('请输入第二个逻辑值')print(notl1)print("l1andl2",l1andl2)print("l1orl2",l1orl2)例13逻辑运算符的使用(1)xandy:当x和y都为真,则以y的值作为整体表达式的结果。x和y可以是bool或非bool值,如果是非bool的话,会通过bool()进行转换。(2)xory:当x为True时,则以x的值作为整体表达式的结果,否则,则以y的值作为整体表达式的结果。

score1=eval(input('请输入任意成绩'))score2=eval(input('请输入Python成绩'))print(notscore1)print("score1andscore2",score1andscore2)print("score1orscore2",score1orscore2)请输入任意成绩69请输入Python成绩90Falsescore1andscore290score1orscore269例如:若x和y是数字值时,结果为数字值,即:7、成员运算符

Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。它是否包含运算符,,主要应用在字符串或者集合中

,判断某值是否是指定列表的成员。运算符描述实例in如果在指定的序列中找到值返回True,否则返回False。x在y序列中,若x在y序列中返回True。notin如果在指定的序列中没有找到值返回True,否则返回False。x不在y序列中,若x不在y序列中返回True。a=10b=20list=[1,2,3,4,5];if(ainlist):print"1-变量a在给定的列表中list中"else:print"1-变量a不在给定的列表中list中"if(bnotinlist):print"2-变量b不在给定的列表中list中"else:print"2-变量b在给定的列表中list中"#修改变量a的值a=2if(ainlist):print"3-变量a在给定的列表中list中"else:print"3-变量a不在给定的列表中list中"1-变量a不在给定的列表中list中2-变量b不在给定的列表中list中3-变量a在给定的列表中list中结果:例14成员运算符的使用身份运算符用于比较两个对象的存储单元,用于判断两个对象的内存地址是否相同。id()

函数用于获取对象内存地址。运算符描述实例isis是判断两个标识符是不是引用自一个对象xisy,类似

id(x)==id(y)

,如果引用的是同一个对象则返回True,否则返回Falseisnotisnot是判断两个标识符是不是引用自不同对象xisnoty

,类似

id(a)!=id(b)。如果引用的不是同一个对象则返回结果True,否则返回False。8、身份运算符a=[1,2,3]b=[1,2,3]print(a==b)

print(aisb)print(id(a),id(b))TrueFalse17223325653121722336595712结果:身份运算符的使用例159、Python转义字符在需要在字符中使用特殊字符时,python用反斜杠

\

转义字符。如下表:转义字符描述\(在行尾时)续行符\\反斜杠符号\'单引号\"双引号\a响铃\b退格(Backspace)\n换行\v纵向制表符\t横向制表符\r回车\f换页\oyy八进制数,y代表0~7的字符,例如:\012代表换行。\xyy十六进制数,以\x开头,yy代表的字符,例如:\x0a代表换行10、格式化操作符辅助指令:符号功能*定义宽度或者小数点精度-用做左对齐+在正数前面显示加号(+)<sp>在正数前面显示空格#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')0显示的数字前面填充'0'而不是默认的空格%'%%'输出一个单一的'%'(var)映射变量(字典参数)m.n.m是显示的最小总宽度,n是小数点后的位数(如果可用的话)a=[1,2,3]b=abisa结果:Trueb==a结果:Trueb=a[:]bisa结果:Falseb==a结果:Trueaisb相当于id(a)==id(b),id()能够获取对象的内存地址。若a=10;b=a;则此时a和b的内存地址一样的;但当a=[1,2,3];另b=a[:]时,虽然a和b的值一样,但内存地址不一样。若:定义a=10、b=10,则aisb结果是True11、is与==区别is用于判断两个变量引用同一个内存地址,表示地址指针传递==用于判断两个变量的值是否相等,表示值传递a=20;b=20if(aisb):print("1-a和b有相同的标识“)else:print("1-a和b没有相同的标识“)if(aisnotb):print("2-a和b没有相同的标识“)else:print("2-a和b有相同的标识“)b=30#修改变量b的值if(aisb):print("3-a和b有相同的标识“)else:print("3-a和b没有相同的标识“)if(aisnotb):print("4-a和b没有相同的标识“)else:print("4-a和b有相同的标识“)1-a和b有相同的标识2-a和b有相同的标识3-a和b没有相同的标识4-a和b没有相同的标识结果例16is运算符的使用12、Python运算符优先级运算符描述**指数(最高优先级)~+-按位翻转,一元加号和减号(最后两个的方法名为+@和-@)*/%//乘,除,取模和取整除+-加法减法>><<右移,左移运算符&位'AND'^|位运算符<=<>>=比较运算符<>==!=等于运算符=%=/=//=-=+=*=**=赋值运算符isisnot身份运算符innotin成员运算符notandor逻辑运算符赋值运算符,将运算符右侧的值赋值给左侧的变量,是对象赋值。算术运算符主要是对两个对象进行算术计算。比较关系运算符,其运算对象可以是数值也可以是字符串。逻辑运算符一般用于判断两个变量的交并集,一般返回一个布尔值位运算符对象是二进制,一般我们在开发过程中用到的比较少。成员运算符用于判断两个对象的是否存在包括关系,即一个对象中是否包含另外一个对象,其返回为布尔值。身份运算符用于判断是否引用自一个对象,通过两个对象的存储单位id进行对比判断两个变量是否相同。在二元操作符两边都加上一个空格,比如赋值(=),比较(==,<,>,!=,<>,<=,>=,in,notin,is,isnot),布尔(and,or,not)。当‘=’用于指示关键字参数或默认参数值时,不要在其两侧使用空格,Python运算符说明a=20;b=10;c=15;d=5;e=0e=(a+b)*c/d#(30*15)/5print("(a+b)*c/d运算结果为:",e)e=(a+b)*c)/d#(30*15)/5print("((a+b)*c)/d运算结果为:",e)e=(a+b)*(c/d);#(30)*(15/5)print("(a+b)*(c/d)运算结果为:",e)e=a+(b*c)/d;#20+(150/5)print("a+(b*c)/d运算结果为:",e)(a+b)*c/d运算结果为:90((a+b)*c)/d运算结果为:90(a+b)*(c/d)运算结果为:90a+(b*c)/d运算结果为:50说明:Python中没有++或--自运算符因为在Python里的数值和字符串之类的都是不可变对象,对不可变对象操作的结果都会生成一个新的对象结果:例17表达式的使用Python有六个标准的数据类型:Numbers(数字型,包括整形int、浮点型float、复数complex,布尔型Boolean用数值1-真和0-假表示)String(字符串str)List(列表list)Tuple(元组tuple)Dictionary(字典dict)Set(集合set)在内存中存储的数据可以有多种类型。例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。Python定义了一些标准类型,用于存储各种类型的数据。五、数据类型及使用Python支持四种不同的数字类型:int(有符号整型)long(长整型[也可以代表八进制和十六进制])使用L来显示长整型float(浮点型)complex(复数)复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。在Python中可直接进行算数运算,如:a=3*3.14;print("a={}".format(a))Booleans(布尔)用于逻辑判断真(True)或假(False)1、数字类型字符串(String)是由数字、字母、下划线组成的一串字符,例如:S="appleanwater…"从左到右索引默认0开始的,最大范围是字符串长度少1要实现从字符串中获取一段子字符串的话,可以使用

[头下标:尾下标]

来截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。[头下标:尾下标]

获取的子字符串包含头下标的字符,但不包含尾下标的字符,如:2、字符串类型string[start:end]:获取从起点位置到终点位置-1的所有字符string[:end]:获取从字符串开头到终点位置-1的所有字符string[start:]:获取从起点位置到字符串结尾的所有字符string[start:end:step]:获取从起点位置到终点位置-1的,每个之间距离步长的所有字符S="Windows操作系统"print(S[1:5])print(S[7:])indo操作系统负索引的意思是从字符串的末尾开始(即从右到左)开始计数。索引-1代表字符串的最后一个字符,-2代表倒数第二个字符,依此类推……例如:str='abcdefghijkl'print(str[-2])#取倒数第2个字符print(str[-5:])#取末尾5个字符print(str[1:-4])#包括除了末尾4个和开头第一个字符的所有字符print(str[-5:-2])#末尾第5个开始,再取2个字符共3个字符khijklbcdefghhij结果:结果:操作符描述实例a=‘Study’;b=’Python’+字符串连接a+b返回StudyPython*重复输出字符串a*2返回StudyStudy[]通过索引获取字符串中字符a[1:4]返回tud截子串in若字符串包含给定的字符返回True“H”ina返回Falsenotin若字符串不包含给定的字符返回True“H”notina返回Turer/R在转义或不能打印的字符前加上字母“r“(“R”)输出原字符print(r‘\n’)返回

\n%格式字符串,与{}和.format{}功效相同print(“a:%s”%(a))返回a:Study常见的字符串操作HelloWorld!HllolloWorld!HelloWorld!HelloWorld!HelloWorld!TEST结果:str='HelloWorld!'

print(str)

#输出完整字符串

print(str[0])

#输出字符串中的第一个字符

print(str[2:5])

#输出字符串中第三个至第六个之间的字符串

print(str[2:])

#输出从第三个字符开始的字符串

print(str*2)

#输出字符串两次

print(str+"TEST")#输出连接的字符串例18字符串的使用str=‘ABCDEFG’

print(str[0:4:2])#从开头到第3个位置,每隔步长2来截取字符串print(str[0:5:2])#从开头到第4个位置,每隔步长2来截取字符串print(str[0:7:2])#从开头到第6个位置,每隔步长2来截取字符串

Python列表截取可以接收第三个参数,参数作用是截取的步长。结果:ACACEACEG例19列表用[]标识,可实现大多数集合类的数据结构,它支持字符,数字,字符串等类型,列表的数据项不需要具有相同的类型,方括号内用逗号分隔。例如:list1=[‘中国',‘China',2021,2022]list2=[1,2,3,4,5]list3=["a","b","c","d"]列表用变量

[头下标:尾下标]

截取相应的元素。头下标从左到右索引默认0开始,从右到左索引默认-1开始,与字符串的索引一样,列表可以进行截取、添加、插入、删除等,例如:list1[0]结果是:中国list2[0:3]结果是:[1,2,3]3、Python列表(list)类型(1)列表的使用list=['中国',123,3.14,'玛丽',80.5]

tinylist=[789,'Marly']

print(list)#输出完整列表

print(list[0])#输出列表的第一个元素

print(list[1:3])#输出第二个至第三个元素

print(list[2:])#输出从第三个至列表末尾的所有元素

print(tinylist*2)#输出列表两次

print(list+tinylist)#打印组合的列表['中国',123,3.14,'玛丽',80.5]中国[123,3.14][3.14,'玛丽',80.5][789,'Marly',789,'Marly']['中国',123,3.14,'玛丽',80.5,789,'Marly']结果:例20列表的输出Python列表操作符列表对+和*的操作符与字符串相似。+号用于组合列表,*号用于重复列表。Python表达式结果描述len([1,2,3])3长度[1,2,3]+[4,5,6][1,2,3,4,5,6]组合['Hi!']*4['Hi!','Hi!','Hi!','Hi!']重复3in[1,2,3]True元素是否存在于列表中forxin[1,2,3]:printx,123迭代元组类似于List(列表),列表和元组之间的区别是可变性。与列表不同,元组是不可变的元组,即:不能二次赋值,相当于只读列表,它使用()标识,内部元素用逗号隔开。列表使用方括号。以下对元组无效的,因为元组不允许更新而列表允许更新。4、Python元组类型list=['中国',123,3.14,'玛丽',80.5]

tuple=('中国',123,3.14,'玛丽',80.5)

#tuple[2]=3000#元组中是非法应用,出错!

print(list)

list[2]=3000#列表中是合法应用

则:

print(list)['中国',123,3.14,'玛丽',80.5]['中国',123,3000,'玛丽',80.5]结果:(1)元组的创建例21与字符串一样,元组之间可以使用+号和*号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。Python表达式结果描述len((1,2,3))3计算元素个数(1,2,3)+(4,5,6)(1,2,3,4,5,6)连接('Hi!',)*4('Hi!','Hi!','Hi!','Hi!')复制3in(1,2,3)True元素是否存在forxin(1,2,3):printx,123迭代(2)元组运算符(3)元组索引,截取因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:元组:L=('spam','Spam','SPAM!')Python表达式结果描述L[2]'SPAM!'读取第三个元素L[-2]'Spam'反向读取,读取倒数第二个元素L[1:]('Spam','SPAM!')截取元素(1)操作一个从函数返回到元组,可以通过内置函数list()把它转换成一个列表。(2)当元组中仅有一个元素时,需要在元素后面加“,”;列表则不需要。(3)列表可变,元组不可变,除非整体替换。(4)列表可用append()、extend()、insert()、remove()、pop()实现添加和删除功能,而元组没有这几个方法。(5)列表支持通过切边进行修改和访问,而元组只支持访问,不支持修改,当数组不修改时,建议使用元组。(6)元组比列表的访问和处理速度快。(7)列表不能作为字典的键,而元组可以。(8)列表,字典称为可变类型。数字,字符串,元组称为不可变类型。

元组与列表的区别字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用"{}"标识。字典由索引(key)和它对应的值value组成。创建方法:name={key1:value1,key2:value2….}

查询方法:name[keyn]删除方法:delname[keyn]清空方法:name.clear()5、Python字典类型(1)创建字典dict={}

dict['one']="我在中国"

dict[2]="I'minChina"

tinydict={'name':'Maly','high':165,'sex':'女'}

print(dict['one'])#输出键为'one'的值

print(dict[2])#输出键为2的值

print(tinydict)#输出完整的字典

print(tinydict.keys())#输出所有键

print(tinydict.values())#输出所有值我在中国I'minChina{'name':'Maly','high':165,'sex':'女'}dict_keys(['name','high','sex'])dict_values(['Maly',165,'女'])结果:例22字典的简单使用6、Python集合类型

Python集合是是一个无序不重复的元素集,

它是可迭代的,基本功能包括关系测试和消除重复元素。它有可变集合(set())和不可变集合(frozenset)两种。集合有集合添加、删除、交集、并集、差集的操作,要创建集合直接使用{}或使用set()函数。特点:集合中的元素不能重复。集合中的元素是不可变的(不能修改),但整个集合是可变的。集中不支持任何索引或切片操作。说明:python中的集合通常用于数学运算,如并集,交集,比较等。与列表相比,使用集合的主要优点是它具有高度优化的方法,用于检查集合中是否包含特定元素。(1)集合的创建结果:ass1={1,2,False,""}print("ass1的数据类型是:",type(ass1))ass2={1,2,False,(),""}print("ass2的数据类型是:",type(ass2))s=set([3,5,9,10])#创建一个数值集合t=set("Hello")#创建一个唯一字符的集合print(s)print(t)print("s数据类型是:",type(s))print("t的数据类型是:",type(t))ass1的数据类型是:<class'set'>ass2的数据类型是:<class'set'>{9,10,3,5}{'e','o','l','H'}s数据类型是:<class'set'>t的数据类型是:<class'set'>例23集合的使用1六、Python模块Python模块(Module),是一个以.py为扩展名的文件,包含对象定义、初始化、数据处理和输出等语句。模块不仅是有逻辑、有组织地把相关代码集合起来,使得层次更加清晰、易懂,且还是Python保存、运行的基本单元。模块分:模块内置模块第三方模块自定义模块(1)类的命名遵循首字母大写(CapWords)的方式,大部分内置的名字都是单个单词(或两个),首字母大写方式只适用于异常名称和内置的常量,模块内部使用的类采用添加前导下划线的方式。(2)模块命名要使用简短的小写英文或加下划线来提高可读性。(3)包的命名和模块命名类似,但不推荐使用下划线。模块别名应该符合大驼峰命名法(大驼峰:每一个单词的首字母都大写,例如:AnamialZoo,JavaScript;小驼峰,第一个单词的首字母小写,后面的单词的首字母全部大写,例如:fontSize、backgroundColor。)1、模块及包的命名规则2、Python导入模块Python模块(Module),是一个以.py扩展名的文件,包含对象定义和语句。模块能够有逻辑地组织Python代码段。把相关代码分配到一个模块层次更加清晰、易懂。模块能定义函数、类和变量,模块能包含可执行的代码。(1)用import模块名列表使用import语句来引入模块,语法格式:importmodule1[,module2[,...moduleN]]也可用as导入模块的别名方法是:import模块名1as模块别名

例如:importmathasma(2)使用from模块名import函数名列表from语句从模块中导入一个指定的部分到当前命名空间中。语法格式:frommodnameimportname1[,name2[,...nameN]]说明:import相当于导入一个文件夹,是相对路径。

from…import:导入一个模块中的一个函数;相当于导入一个文件夹中的文件,是绝对路径。例如:frommathimportpi

frommathimport*说明:from

mathimportpi不把整个math模块导入到当前的命名空间中,它只将pi引入到模块的全局符号表中。若要该模块math全都导入到当前的命名空间,使用格式:frommathimport*建议该声明不要过多地使用,它占用内存影响运行速度。导入命令要放在文件顶部,包括系统标准库导入、第三方库导入和应用程序指定导入。每种分组中,应该根据每个模块的完整路径按字典排序,忽略大小写导入模块需要把放在顶端且一个模块只能导入一次,例如:importmathprint(math.sqrt(16))print(math.pi)print(math.exp(3))print(math.e**3)frommathimport*print(sqrt(16))print(pi)print(exp(3))print(e**3)4.03.14159265358979320.08553692318766820.085536923187664结果:python内置了很多模块。可以通过

模块名.参数名或者模块名.函数名来查询或者调用相应的功能。如图:(1)单击Python3.10ModuleDocs即可选择模块运行。783、内置模块(2)Python系统模块显示79标准库说明builtins内建函数默认加载os操作系统接口sysPython自身的运行环境functools常用的工具logging记录日志,调试multiprocessing多进程threading多线程copy拷贝time时间datetime日期和时间calendar日历random生成随机数(3)python常用的内置模块sys.argv是一个list,包含所有的命令行参数.sys.stdout表示标准输出sys.stdin表示标准输入sys.stderr表示错误输出sys.stdin.readline()从标准输入读一行sys.stdout.write("a")屏幕输出asys.exit(exit_code)退出程序sys.modules是一个dictionary,表示系统中所有可用的modulesys.platform得到运行的操作系统环境sys.path是一个list,指明所有查找module,package的路径.(1)

importsysos模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控运行环境4、系统模块的使用os.envi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论