Python程序设计-AI辅助编程-课件 第2章 Python语法基础_第1页
Python程序设计-AI辅助编程-课件 第2章 Python语法基础_第2页
Python程序设计-AI辅助编程-课件 第2章 Python语法基础_第3页
Python程序设计-AI辅助编程-课件 第2章 Python语法基础_第4页
Python程序设计-AI辅助编程-课件 第2章 Python语法基础_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

第二章Python语法基础Python程序设计本章要点基本数据类型标识符与关键字变量与赋值数值类型格式化输入与输出DeepSeek的使用学习目标了解Python标识符命名规则、关键字及其在程序中的作用;理解变量的概念、赋值机制及数值类型的特点;掌握整数、浮点数、复数的表示与类型转换方法;熟悉格式化输入输出的常用方式及格式控制语法;能规范编写基础表达式和简单数据处理程序,养成认真、细致、准确的编程习惯。1标识符与关键字标识符与关键字0201关键字关键字是预先保留的标识符,每个关键字都有特殊的含义,一般用于构成程序框架、表达关键值和具有结构性的复杂语义,不能用于通常的标识符。标识符Python语言为其可操控的对象取的名字;为了提高程序可阅读性,在定义标识符时,一般建议尽量遵循“见其名知其意”的原则。标识符与关键字01标识符定义标识符要遵守以下命名规则:1)由一个或多个英文字母、数字字符、下划线构成,且第一个字符不能为数字字符。2)标识符中英文字母严格区分大小写。3)标识符的长度不受限制。4)标识符中不能包含空格,#,/等特殊符号合法的标识符fruit_name、id_room、stu_birthday_stu_id不合法的标识符123、4apple、student+name。标识符与关键字02关键字Python目前拥有35个关键字。fromforFalsetryclassimportwhileNoneexceptpassincontinueTruefinallydelisbreakdefassertnonlocalifandreturnwithglobaleliforyieldasasyncelsenotlambdaraiseawait2变量与赋值变量与赋值变量是一个名字/标签,它通过赋值操作绑定到一个对象,本质是对该对象的引用。变量本身无类型、无固定内存尺寸;类型属于对象,内存由对象占用。pi=3.14159#变量pi赋值为3.14159radius=2#变量radius赋值为2area=pi*(radius**2)#计算圆面积print(area)#输出面积值12.56636radius=4#变量radius赋值为4area=pi*(radius**2)#计算圆面积print(area)#输出面积值50.26544变量与赋值Python支持在一条语句内为多个变量赋值,此时,赋值符号左边的变量的数量要与赋值号右侧数据的数量相同。m,n=3,4#m,n=(3,4),将3赋值给m,将4赋值给nprint(m,n)#输出34a,b,c=3,4,5#将3,4,5分别赋值给a,b,cprint('{}x+{}y+{}=0'.format(a,b,c))#输出3x+4y+5=0print(f'{a}x+{b}y+{c}=0')#输出3x+4y+5=0

赋值符号右侧的多个数据会被视为一个省略了括号的元组,赋值操作是将元组解包,将其中的每个元素分别绑定一个名字。变量与赋值赋值语句:

通过赋值符号“=”左边的变量与右边的表达式或值关联起来。x=5

#名字x绑定到整数5上y='apple'#名字y绑定到字符串上z=[1,2,3,4]#名字z绑定到列表上赋值号的左边必须是变量注意单击此处添加标题变量与赋值赋值语句:

通过赋值符号“=”左边的变量与右边的表达式或值关联起来。a,b=5,10#将5赋值给a,将10赋值给bprint(a,b)#输出510a,b=b,a#交换变量a和b所指向的对象print(a,b)#输出105一条赋值语句中可以同时为多个变量赋值,利用这个特点可以实现两个变量值的交换。注意变量与赋值赋值语句:

通过赋值符号“=”左边的变量与右边的表达式或值关联起来。x=(16+(8*2-4*6*2)*0.5)/(2*5)#表达式的计算结果是0print(x)#

输出0.0若赋值的右边是计算表达式,解释器会对表达式列表进行求值,并将运算结果赋给变量。注意变量与赋值复合赋值符:

+=、-=、*=、/=、%=、**=、//=

+=加法运算赋值符c+=ac=c+a-=减法运算赋值符c-=ac=c-a*=乘法运算赋值符c*=ac=c*a/=除法运算赋值符c/=ac=c/a%=取模运算赋值符c%=ac=c%a**=幂运算赋值符c**=ac=c**a(c**a:ca)//=整除运算赋值符c//=ac=c//a3基本数据类型基本数据类型根据需要对数据进行的操作和处理的不同,可以将数据定义成不同数据类型。对象示例整型1024、79浮点型123.45、12.、23.0、0.78复数型3+4j、complex(3,4)布尔型True、False字符串'1024'、"test"、'''10test'''Rangerange(1,10,2)、range(5)列表[1,2,3,4]、[1,2,'a',"b"]元组(1,2,3,4)、(1,2,'a','b')、(1)集合{1,2,3,4}、{'h','l','e','o'}、{'you','me','he'}字典{'name':'wang','age':40}基本数据类型Python中,数据类型也分为不可变数据类型和可变数据类型。(1)不可变数据类型:numeric(数字)、string(字符串)、tuple(元组)和range。(2)可变数据类型:list(列表)、dictionary(字典)、set(集合)。num1,num2=123,456print(id(num1),id(num2))#输出内存地址140735461450592140735461450592(注:输出的内存地址与机器相关)num1=789print(id(num1))#输出内存地址:2417866260272s='abc'print(id(s))#输出内存地址:2417432075096s+='def'print(s)#输出abcdefprint(id(s))#输出内存地址:2417867282896,id改变,s是新对象基本数据类型Python中,数据类型也分为不可变数据类型和可变数据类型。(1)不可变数据类型:numeric(数字)、string(字符串)、tuple(元组)和range。(2)可变数据类型:list(列表)、dictionary(字典)、set(集合)。lsa=[1,2,3]lsb=[1,2,3]print(lsa,lsb)#输出[1,2,3][1,2,3]print(id(lsa),id(lsb))#输出17471879034961747171998664,二者id不同,lsa与lsb是值相同的不同对象lsa.append(4)lsb+=[5]print(lsa,lsb)#输出[1,2,3,4][1,2,3,5],lsa与lsb是值都发生了变化print(id(lsa),id(lsb))#输出17471879034961747171998664,id不变,对象仍是原对象未变4数值类型数值类型整数:是不带小数点的数值,包括0、正整数和负整数。例如:123、-45、0b1101(二进制)、0o17(八进制)、0xff(十六进制)。进制引导符号十进制无二进制0b或0B八进制0o或0O十六进制0x或0X整数的四种进制表示数值类型浮点数(float):由整数部分与小数部分组成,其整数部分/小数部分可以没有值(但不能同时没有值),小数点必须要有,此时缺省值相当于0。当其没有小数点时就退化成了整数。浮点数有两种表示方法:十进制和科学计数法。例如:543.12、56.、26.0、0.78、4.8e-2、2.53e3科学计数法:<x>e<n>,等价于数学中的

x×10n

其中:4.8e-2=4.8×10-2=0.048Python3对于浮点数默认提供大约17位数字的精度。占8个字节(64位)内存空间,其数字范围为1.7×10-308~1.7×10308。超过16位有效数字后面的数字往往没有精确意义了数值类型浮点数(float):由整数部分与小数部分组成,其整数部分/小数部分可以没有值(但不能同时没有值),小数点必须要有,此时缺省值相当于0。当其没有小数点时就退化成了整数。Python3对于浮点数默认提供大约17位数字的精度。占8个字节(64位)内存空间,其数字范围为1.7×10-308~1.7×10308。超过16位有效数字后面的数字往往没有精确意义了print('{:.30f}'.format(314159.265358979323846264338327950288419716939937510))print('{:.30f}'.format(3.14159265358979323846264338327950288419716939937510))输出:314159.2653589793480932712554931640623.141592653589793115997963468544实际值:3.14159265358979323846264338327950288419716939937510数值类型复数(complex)由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点数。可以用real和imag分别获取复数的实部和虚部,用abs(a+bj)获得复数的模。print((3.0+4.0j).real)print((3.0+4.0j).imag)print(abs(3.0+4.0j))输出:3.04.05.0数值类型在程序设计过程中,经常需要对数值类型转换。不同数值类型的转换,可以将要得到的目标数据类型作为函数名,将要转换的数值作为函数的参数即可完成转换。(1)int(x)将浮点数x或整数类型字符串转换为一个整数。(2)float(x)将整数x或浮点数类型字符串转换为一个浮点数。(3)eval(x)将数值型的字符串对象x转换为其对应的数值。例如:x为字符串'3'时,转换结果为数值3;当x为字符串'3.0'时,转换结果为数值3.0。(4)complex(x)将浮点数x转换到一个复数,实数部分为x,虚数部分为0。(5)complex(x[,y])将x和y转换到一个复数,实数部分为x,虚数部分为y。x如果是字符串,此时不可再有参数y(即此时complex只需要1个参数)。数值类型print(int(3.14))#浮点数转整数,只保留整数部分,输出:3print(int('3'))#'3'为整数类型的字符串,将其转为十进制整数,输出:3print(float(3))#整数转浮点数,增加小数位,小数部分为0,输出:3.0print(float('3.14'))#将字符串'3.14'转为浮点数3.14print(float('0.456'))#将字符串'0.456'转为浮点数0.456print(complex(3))#整数转复数,虚部为0,输出:(3+0j)print(complex(3,4))#整数转复数,输出:(3+4j)a=eval('100')#字符串'100'被转换为数值100print(a*3)#100*3=300;a=eval('100.0')#字符串'100.0'被转换为数值100.0print(a*3)#100.0*3=300.0;数值类型eval()函数还可以把用逗号分隔的多个字符型数据转换为一个元素为数值类型的元组。例如:eval('3.5,3,2.0')的结果为(3.5,3,2.0)。利用这个特性,可以实现在一条语句中将用逗号分隔的多个输入分别命名,实现多变量的同步赋值。#可以把输入的用逗号分隔的2个数值型数据分别命名为m,nm,n=eval(input())#例如输入3.0,5print(m,n)#输出3.05print(m*n)#输出15.0数值类型int()函数不仅可以进行浮点数与整数间的转换,也可以进行字符串与数值类型的转换。语法格式:int(x,base=10)1.浮点数转换为整数当x是一个浮点数且没有参数base时,int()函数可以将这个浮点数转换成十进制整数。print(int(3.14))#x为数字,无参数base,浮点数转整数,取整数部分,输出3print(int(2.71828))#x为数字,无参数base,浮点数转整数,取整数部分,输出22.数字字符串转换整数当x是整型的数字字符串时,此时int()函数将这个整型的字符串转成整数,参数base取值范围:0、2~36中的整数字,其具体值表示整数的进制,如2、8、10、16分别代表二进制、八进制、十进制和十六进制。数值类型#base为2,将二进制构成的字符串转成十进制整数print(int('11111111',base=2))#二进制11111111转成十进制整数,输出255print(int('11111111',2))#base可省略,二进制11111111转成十进制整数,输出255print(int('1111'+'1111',2))#字符串x可由多个字符串拼接而成,输出255base参数缺省值为10,也是int()函数中没有使用base参数,默认是将一个10进制的整数形式的字符串转成十进制的整数。当base取值为0时,系统根据字符串当前的进制引导符确定该数的进制,例如:print(int('10'))#x为整数类型字符串,缺省base默认转换为十进制整数,输出10print(int('0o107',base=8))#'0o'表示这是八进制的整数,输出71print(int('0x107',base=16))#'0x'表示这是十六进制的整数,输出263print(int('0b1001',base=2))#'0b'表示这是二进制的整数,输出9数值类型需要说明的是,int()函数只能将浮点数或整数类型的数字字符串转成整数,不能将浮点数类型的字符串转成整数,如尝试将字符串‘3.14’转成整数时,系统会返回一个错误。print(int('3.14',base=10))输出错误提示信息:Traceback(mostrecentcalllast):File"<pyshell#12>",line1,in<module>print(int('3.14',base=10))ValueError:invalidliteralforint()withbase10:'3.14'实例

2.1

计算矩形面积矩形的面积等于其长与宽的乘积,用户输入长和宽的值,按输入要求编程计算矩形的面积,输入要求如下:(1)输入两个正整数,输出结果为整数(2)输入两个浮点数,输出结果为浮点数(3)输入两个正数,要求输出的数据类型与输入的数据类型保持一致。分析在Python中,可利用input()函数获取用户从键盘的输入。不过,借助input()获取的输入均为字符串,而字符串无法参与数学运算,因此在程序中要把输入的字符串转换为数值类型。当确定用户的输入是整数时,在程序中能使用int()函数把输入转换为整数类型,计算结果同样是整数。当确定用户的输入是浮点数时,能够使用float()函数把输入转换为浮点数类型。当输入为整数时,也会被转换为浮点数,计算结果也是浮点数。分析当用户输入的数据无法确定是整数还是浮点数时,若想确保计算结果和输入的数据类型相同,可使用eval()函数。此函数在把输入转换为可计算对象时,会让数据类型和输入保持一致。输入整数,转换后仍是整数;输入浮点数,转换后仍是浮点数。实例2.1计算矩形面积#输入整数表示的矩形的长和宽,

计算并输出矩形的面积width=int(input())#用int()函数将输入转成整数,例如输入:3length=int(input())#用int()函数将输入转成整数,例如输入:4area=width*length#利用面积公式计算面积print(area)#输出:12#输入浮点数表示的矩形的长和宽,

计算并输出矩形的面积width=float(input())#用float()函数将输入转成浮点数,输入:2.456length=float(input())#用float()函数将输入转成浮点数,输入:3.58area=width*lengthprint(area)#输出:8.79248print(round(area,2))#当小数位数多于2位时,保留2位小数,输出:8.79#输入正数表示的矩形的长和宽,

计算并输出矩形的面积width=eval(input())#用eval()函数将输入转成数值型length=eval(input())#用eval()函数将输入转成数值型area=width*length#利用面积公式计算面积print(area)#输入3,4时,输出:12;输入3.0,4.0时,输出12.05格式化输入与输出引言内置函数准则人机交互input()接收用户输入的字符串print()将程序的处理结果以字符的形式展示给用户一个程序可以没有输入,但至少要有一个输出,其作用是将程序的处理结果返回给调用程序处计算机能接收用户的输入,并且把处理结果通过字符或图像等形式返回给用户。格式化输出函数Python主要有两种输出值的方式:表达式语句和print()函数。表达式语句主要用于交互模式,在交互模式下输入变量或表达式将可以直接输出变量或表达式的值。>>>5+6/2-3*22.0>>>格式化输出函数Python主要有两种输出值的方式:表达式语句和print()函数。print()函数主要用于将单个对象或多个对象输出到屏幕上,常用的语法格式:print(*objects,sep='',end='\n',file=sys.stdout)若欲输出多个对象,这些对象作为print()函数的参数,须以逗号“,”隔开多个对象;输出到屏幕后,默认以空格分隔。print(1,2,3,4)#默认输出时用空格分隔#输出1234格式化输出函数Python主要有两种输出值的方式:表达式语句和print()函数。print()函数主要用于将单个对象或多个对象输出到屏幕上,常用的语法格式:print(*objects,sep='',end='\n',file=sys.stdout)输出多个对象时,可以用sep参数指定分隔符号,sep参数的值必须是字符串。print(1,2,3,4,sep=',')

#用sep参数指定符号,用于输出时分隔值#输出1,2,3,4格式化输出函数Python主要有两种输出值的方式:表达式语句和print()函数。print()函数主要用于将单个对象或多个对象输出到屏幕上,常用的语法格式:print(*objects,sep='',end='\n',file=sys.stdout)print()函数中end参数默认值是换行符('\n'),此参数值缺省时,执行print()函数后会自动输出一个换行。如果希望多个print()语句的输出在同一行中,可以将一个字符串类型的值赋给end参数,例如设置end=''或end=',',使每条print()语句的输出以空格或逗号代替默认的回车符结束,实现多条print()语句输出在同一行内的效果。foriinrange(4):print(i,end='')#单引号间有一个空格#输出:0123格式化输出函数Python主要有两种输出值的方式:表达式语句和print()函数。print()函数主要用于将单个对象或多个对象输出到屏幕上,常用的语法格式:print(*objects,sep='',end='\n',file=sys.stdout)print()函数中file参数以设置输出设备,即把print()中的值输出到什么地方,默认值是“sys.stdout”,意思是输出到标准输出设备(显示器)。修改此参数的值可以输出到其他设备或文件。例如可以设置“file=文件储存对象”,把内容输出存储到该文件对象中。#将字符串输出到文件对象fo中withopen('text.txt','w')asfo:#创建文件对象,命名为foprint("Lifeisshort,youneedpython!",file=fo)#输出到文件对象fo中输出格式控制1.格式化字符串字面值用“f”或“F”做前缀格式化字符串输出(f/F串)。使用时,在字符串开始的单引号、双引号或三引号前加上一个“f”或“F”,在字符串中,放置在大括号“{}”中的变量或表达式在程序运行时会被变量和表达式的值代替。a=5b=1print(f'{a}-{b}={a-b}')

#输出5-1=4输出格式控制1.格式化字符串字面值为了增加用户友好性,可以在模板字符串中加入说明性字符串,这些字符串将被原样输出,大括号中的变量值可以为任意类型,当大括号中的值为字符串时,需使用与f/F串不同的引号。name='Rose'gender='fmale'age='18'print(f'姓名:{name},性别:{gender},年龄:{age}')#输出:姓名:Rose,性别:fmale,年龄:18#大括号中的值为字符串时需用双引号print(f'姓名:{"Rose"},性别:{"male"},年龄:{18}')#姓名:Rose,性别:fmale,年龄:18输出格式控制1.格式化字符串字面值除用于字符串的输出外,此方法还可用于格式限定,使用方法是在大括号中加冒号和“格式限定符”,如在冒号后面加“.mf”,可以控制输出浮点数(float)保留小数点后m位数字。a=10b=3print(f'{a}/{b}={a/b}')#10/3=3.3333333333333335print(f'{a}/{b}={a/b:.2f}')#10/3=3.33输出格式控制1.格式化字符串字面值在':'后传递一个整数可以让该字段成为最小字符宽度,这在设置列对齐时很有用。print(f'{1}*{9}={1*9:2}')#1*9=9print(f'{9}*{9}={9*9:2}')#9*9=81输出格式控制2.通过str.format()方法将待输出的变量格式化成期望的格式语法格式:<模版字符串>.format(<逗号分隔的参数>)<模版字符串>由一系列的用大括号{}表示的替换域组成,用来控制修改字符串中嵌入值出现的位置,调用此方法的“模版字符串”可以包含字符串字面值以及以一个或多个花括号{}括起来的替换域。每个替换域可以包含一个位置参数的数字索引,或者一个关键字参数的名称。该方法被执行时会将format()方法中用逗号分隔的参数按约定规律替换到替换域中。输出格式控制2.通过str.format()方法将待输出的变量格式化成期望的格式语法格式:<模版字符串>.format(<逗号分隔的参数>)#str.format()的用法a=3b=4print('{}+{}={}'.format(a,b,a+b))

#参数值按出现顺序填入替换域print('{2}*{1}={0}'.format(a*b,b,a))#参数序号为0,1,2输出:3+4=74*3=12输出格式控制2.通过str.format()方法将待输出的变量格式化成期望的格式print('{}/{}={:.4f}'.format(a,b,a/b))#5/3=1.6667,.4f保留4位小数浮点数str.format()中也可以在大括号中加冒号和“格式限定符”,在冒号后面加“.mf”控制输出保留小数点后m位数字的浮点数(float)。输出格式控制2.通过str.format()方法将待输出的变量格式化成期望的格式print('{a}-{b}={c}'.format(a=5,b=3,c=5-3))还可以在每个替换域中传入一个关键字,在format()方法里给每一个关键字赋值,输出时,替换域被替换为传入的关键字的值。输出格式控制#按位置传递参数print('我叫{},今年{}岁'.format('李明',18))#我叫李明,今年18岁#按序号传递参数,与位置无关,大括号中数字表示传递的对象的位置print('这是{1},我喜欢喝{0}'.format('咖啡','茶'))#这是茶,我喜欢喝咖啡#序号可重复使用print('这是{1},我喜欢喝{1}'.format('咖啡','茶'))#这是茶,我喜欢喝茶#参数可多于替代域索引数print('这是{0},我喜欢喝{0}'.format('茶','咖啡','红酒'))#这是茶,我喜欢喝茶#参数少于替代域索引数时报错#print('这是{1},我喜欢喝{0}'.format('茶'))#错误用法,测试时去掉行首#号#IndexError:Replacementindex1outofrangeforpositionalargstuple#使用关键字参数,关键字参数的位置可以随意调换print('我叫{name},今年{age}岁'.format(name='李明',age=18))#我叫李明,今年18岁2.通过str.format()方法将待输出的变量格式化成期望的格式输出格式控制3.字符串拼接的方法name='李明'age=18#18是整数,用str(age)转为字符串'18'print('我叫'+name+',今年'+str(age)+'岁')#我叫李明,今年18岁用“+”将多个字符串拼接为一个字符串输出。参与拼接的可以是字符串也可以是字符串变量,但参与拼接的变量为整数等其他数据类型时,需先用str()函数将其转为字符串类型再参与拼接。输入函数a=input()#输入5,默认为字符串'5'b=input()#输入3,默认为字符串'3'print(type(a))#输出<class'str'>,a的类型是字符串print(a+b)#输出53,'+'作用是将两个字符串拼接为一个字符串print(a*int(b))#输出555,'*'作用是将字符串重复整数b次input()函数的作用是从标准输入设备(键盘)获得用户输入的一行数据,不管用户输入的是字符型还是数字型的数据,input()函数都会将其作为一个字符串类型处理。输入函数name=input('请输入姓名:')print('你真的是',name,'?')#多参数输出,空格分隔print('你真的是',name,'?',sep='')#多参数输出,空字符串分隔print('你真的是'+name+'?')#字符串拼接,无分隔print(f'你真的是{name}?')#f串格式输出为了提高程序的用户友好性,input()可以包含一些提示性的文字,提示性文字以双引号或单引号引起来放于input后的括号内实例

2.2日期格式化输出在三行中分别输入当前的年、月、日的整数值,按要求完成输出。(1)输出年月日,空格分隔,格式:20230906。(2)输出年-月-日,连字符“-”分隔,格式:2023-09-06。(3)输出年/月/日,斜线“/”分隔,格式:2023/09/06。

(4)输出月,日,年,逗号“,”分隔,格式:09,06,2023。

(5)用str.format()格式输出,格式:2023年09月06日。

(6)用字符串拼接方法输出,格式:2023年09月06日。分析①年、月、日由input()函数输入,则year,month,date为字符串。题(1)至题(4)格

温馨提示

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

评论

0/150

提交评论