《Python语言程序设计》课件 第1、2章 Python语言基础、顺序结构_第1页
《Python语言程序设计》课件 第1、2章 Python语言基础、顺序结构_第2页
《Python语言程序设计》课件 第1、2章 Python语言基础、顺序结构_第3页
《Python语言程序设计》课件 第1、2章 Python语言基础、顺序结构_第4页
《Python语言程序设计》课件 第1、2章 Python语言基础、顺序结构_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

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

文档简介

Python语言程序设计第1章Python语言基础Python语言概述Python语言开发环境配置常量和变量Python数据类型运算常用系统函数程序设计语言按照发展过程可分为机器语言、汇编语言和高级语言。机器语言:机器语言是二进制语言,属于低级语言,直接使用二进制代码表示指令,是计算机硬件能直接识别和执行的程序设计语言。汇编语言:使用助记符与机器语言中的指令进行一一对应,计算机不能直接识别,需要由汇编语言编译器将其转换成机器指令。汇编语言和机器语言类似,不同计算机结构的汇编指令不同,难以移植,都属于低级语言。高级语言:是一种接近自然语言的计算机程序设计语言,可以更容易地描述计算问题并利用计算机解决问题。高级语言的语句是面向问题的,而不是面向机器的。1.1Python语言概述编译与解释使用高级语言编写的程序叫做源程序,它不能被计算机直接识别,必须经过转换才能执行。转换方式有两类:编译是将源代码经过编译器(Compiler)转换为目标代码,目标代码是机器语言代码,因此其目标程序可脱离语言环境独立执行,也就是源程序一旦被编译,就不再需要编译器或源代码。解释是将源代码一边由相应语言的解释器(Interpreter)“翻译”成目标代码,一边执行,也就是逐条翻译、逐条运行源代码。Python语言是一种高级通用脚本编程语言,它是一种高层次的结合了解释性、编译性、互动性和面向对象的计算机程序设计语言。虽然采用解释方式执行程序,但它的解释器保留了编译器的部分功能,也会生成完整的目标代码。这种将解释器和编译器结合的方式推动了现代脚本语言的演进。1.1Python语言概述Python语言的发展Python由荷兰的GuidovanRossum设计。Python第一个版本于1991年初公开发行。Python2.0于2000年10月发布,增加了许多新的语言特性。Python3.0于2008年12月发布,此版本不完全兼容Python2.0,导致Python2.0与Python3.0不兼容1.1Python语言概述Python语言的特点语法简洁:语法结构简单,没有太多的语法细节和规则要求开源、免费:源代码公开,可以被自由使用、复制、修改和再发布。各种社区提供了成千上万不同功能的开源函数模块,而且还在不断地发展跨平台:Python已经经过改动被移植在许多平台上,包括Linux、Windows、FreeBSD(类UNIX操作系统),Symbian、Google基于Linux开发的android平台。Python程序可以在任何安装解释器的计算机平台上执行,因此,用该语言编写的程序可以不经修改地实现跨平台运行。1.1Python语言概述Python语言的特点强大的生态系统:Python解释器提供丰富的内置类和函数库,此外,世界各地的程序员在开源社区提供了大量成熟的第三方库。模式多样:Python3.0解释器内部虽然采用面向对象方式实现,但在语法层面同时支持面向过程和面向对象两种编程模式,更灵活。1.1Python语言概述1.2.1安装Python网址:/downloads/。根据操作系统(windows,Linux/UNIX,macOS)不同的python版本1.2Python语言开发环境配置1.2Python语言开发环境配置

选中“AddPython3.*toPATH”复选框,并使用默认的安装路径,单击“InstallNow”选项,这时进入系统安装过程,安装完成后单击close按钮即可。如果要设置安装路径和其他特性,可以选择“Customizeinstallation”自定义安装选项。1.2Python语言开发环境配置1.2.2启动Python解释器和集成开发环境启动命令行形式的Python解释器在Windows系统下,选择“开始”→“所有程序”→“Python3.11”→“Python3.11(64-bit)”来启动命令行形式的Python解释器1.2Python语言开发环境配置其中“>>>”是Python解释器的提示符,在提示符后输入一条语句敲回车键后,将会立即显示运行结果1.2.2启动Python解释器和集成开发环境启动图形用户界面的Python集成开发环境(IDLE)在Windows系统下,选择“开始”→“所有程序”→“Python3.11”→“IDLE(Python3.81164-bit)”Python集成开发环境(IDLE)是图形用户界面,集程序编辑、解释、执行于一体,是一个集成开发环境,可以提高编程的效率。1.2Python语言开发环境配置1.2.3运行Python程序交互式:在启动命令行形式和图形用户界面形式下都可在提示符(>>>)后输入语句。例如,先在提示符>>>后输入一个输出语句,下一行将接着输出结果。>>>print("Hello,World!")Hello,World!>>>print(1+3/4)1.751.2Python语言开发环境配置1.2.3运行Python程序文件式:在Python解释器图形用户界面窗口,选择“File”→“NewFile”命令,或按Ctrl+N键,打开程序编辑窗口,如图所示。在程序编辑窗口输入程序的全部语句,例如输入语句:print("Hello,World!")

语句输入完成后,在Python程序编辑窗口选择“File”→“Save”命令,确定保存文件位置和文件名,例如e:\mypython\hello.py。

在Python程序的编辑窗口选择“Run”→“RunModule”命令,或按F5键,运行程序并在Python解释器图形用户界面窗口中输出运行结果。1.2Python语言开发环境配置1.3.1变量一般定义:在程序运行过程中,其值可以改变的量称为变量。变量就是存储数据的容器(若干字节的存储单元),可用来存放数据,并通过变量名来操作数据。在Python中,不仅变量的值可以变化,变量的类型也可以变化。在Python语言中,变量不需要声明其数据类型,每个变量在使用之前通过赋值的动作,创建并开辟内存空间,并保存值。如果没有赋值而直接使用,会抛出变量未定义的异常。系统根据所赋的值,自动确定其数据类型。1.3常量和变量1.3.1变量单个赋值,例如:>>>a=12#单个直接赋值,创建变量a,给12分配内存空间,让a指向12>>>id(a)#查看a的内存地址8791371028592>>>a=a+1#先计算出和13,把13赋给a,给13分配内存空间,a指向13>>>id(a)#不再指向12。Python具有内存自动管理功能,对于没有

8791371028624

#任何变量指向的值,将自动删除,回收内存空间基于值的内存管理方式,Python会为每个出现的值分配内存空间1.3常量和变量1.3.1变量多个批量赋值和分别赋值。例如>>>b=c=12.34#多个批量赋值,只给12.34分配内存空间>>>id(b),id(c)#查看b和c的地址,两个变量指向同一个值(50852336,50852336)>>>x,y,z=34,3.5,"China"#分别赋值>>>type(x)#x是整型(int)变量<class'int'>>>>type(y)#y是浮点型(float)变量<class'float'>>>>type(z)#z是字符串型(string)变量<class'str'>1.3常量和变量1.3.1变量>>>a=1.0>>>b=1.0>>>id(a)47789136>>>id(b)50852304>>>a=1>>>b=1>>>id(a)8791371028240>>>id(b)87913710282401.3常量和变量Python会为每个出现的值分配内存空间,哪怕它们的值相等对于1这样简单的数值小的int类型对象,Python就只会为1分配一次内存空间,a和b均指向它,所以a和b的内存地址相同1.3.1变量开发人员一般情况下不需要考虑内存管理问题,只要知道:赋值的形式,通过赋值就定义好了变量:单个赋值:a=3多个批量赋值:b=c=3.4分别赋值:d,e,f=34,3.5,"China"1.3常量和变量Python中对变量描述错误的选项是()A、Python不需要显式声明变量类型,在第一次变量赋值时由值决定变量的类型

B、变量通过变量名访问C、变量必须在创建和赋值后使用

D、变量PI与变量Pi被看作相同的变量正确答案:D1.3.2常量在程序运行过程中,其值不能改变的数据对象称为常量(constant)在字面上就能区分是什么类型的常量35----整型3.14----浮点型“HelloWorld”----字符串型还有很多其他类型1.3常量和变量1.3.3关键字和标识符关键字(keyword),就是Python语言中事先定义的、具有特定含义的标识符,又称保留字。关键字不允许另作它用,否则执行时会出现语法错误。查看所有Python关键字,语句如下:>>>importkeyword>>>print(keyword.kwlist)1.3常量和变量以下不属于Python语言保留字的是()A、classB、passC、subD、def正确答案:C1.3.3关键字和标识符计算机程序处理的对象是数据,程序是描述数据处理的过程。在程序中,通过名称建立对象与使用的关系。这个名称就是标识符。具体命名规则如下。(1)由字母、数字、下划线_等组成,首字符不能是数字。(2)标识符中的字母是严格区分大小写的。(3)标识符不能与关键字一样。

(4)Python3系列的标识符可以采用中文等非英语语言字符,但存在输入法的切换、平台编码支持、跨平台兼容等问题,从编程习惯和兼容性角度考虑,一般不建议用中文做标识符。1.3常量和变量以下变量名中,符合Python语言变量命名规则的是()A、33_keywordB、key@word33_C、nonlocal

D、_33keyword正确答案:D在Python语言中,不能作为变量名的是()A、studentB、_bmgC、5spD、Teacher正确答案:C1.4Python数据类型第5章第6章1.4.1数值类型1.整型数据(int)整数,有正整数、负整数和0,和数学中的整数概念一样。一般认为整型没有取值范围限制。1.4Python数据类型进制引导符号描述十进制无默认情况,例如0、-4、100二进制0b或0B由0和1组成,例如0b1010、0B110八进制0o或0O由0到7组成,例如0o101,-0O12十六进制0x或0X由0到9,A到F组成,例如0x41,0XABC以下选项中非数字的是()A、0a123B、0b101C、0o123D、0x123正确答案:A1.4.1数值类型2.浮点型与数学中的实数概念一样,有两种表示形式:(1)十进制小数形式。它由数字和小数点组成,如3.23、3.

.5(2)指数形式。指数形式即用科学计数法表示的浮点数。例如,45e-5、45e-6、9.34e2是合法的浮点型常量,分别代表45×10-5、45×10-6、9.34×102。1.4Python数据类型以下是print(type(12.00))的运行结果的是()A、<class‘complex’>B、<class‘float’>C、<class‘int’>

D、<class‘bool’>正确答案:B以下关于浮点数3.0和整数3的描述,正确的是()A、两者使用相同的硬件执行单元B、两者使用相同的计算机指令处理方法C、两者是相同的数据类型D、两者具有相同的值正确答案:D1.4.1数值类型3.复数型a+bJ其中a是复数的实部,b是复数的虚部,J表示-1的平方根(虚数单位)。J也可以写成小写j,注意不是数学上的i。可以通过x.real和x.imag来分别获取复数x的实部和虚部,结果都是浮点型。1.4Python数据类型>>>a=3+4j>>>a.real3.0>>>a.imag4.0以下关于Python语言复数类型的描述中,错误的是()A、复数可以进行四则运算B、实数部分不可以为0C、Python语言中可以使用z.real和z.imag分别获取复数z的实数部分和虚数部分D、复数类型与数学中复数的概念一致正确答案:B关于Python复数类型的描述,以下选项错误的是()A、实数部分和虚数部分都是浮点数B、虚数部分通过“j”或“J”来表示C、对于复数x,可以使用x.real获得x的虚数部分D、虚数部分为1时,1不能省略正确答案:C1.4.1数值类型4.布尔类型也叫逻辑类型,有True(真或对)或False(假或错)两个值值为真或假的表达式称为布尔表达式,Python的布尔表达式包括关系表达式和逻辑表达式。例如:1.4Python数据类型>>>x=3>>>y=4>>>x>y#关系表达式False>>>x<yandx+y>0#逻辑表达式True它们通常用来在程序中表示条件,条件满足结果为True,不满足结果为False。Python语言提供三种基本的数字类型,它们是()A、整数类型、浮点数类型、复数类型B、整数类型、二进制类型、浮点数类型C、整数类型、二进制类型、布尔类型D、整数类型、二进制类型、复数类型正确答案:A1.4.2复合数据类型---字符串文本在程序中用字符串(string)类型表示。字符串是由0个或多个字符组成的有序字符序列,用单引号、双引号或三引号(三单引号或三双引号)括起来。1.4Python数据类型例1-1不同形式的字符串str1='Python'#单引号为定界符str2="Python"#双引号为定界符str3='我喜欢用"Python"语言编程'#若字符串中本身就有双引号,就用单引号定界,反之亦然str4='''少年智则国智少年富则国富少年强则国强少年进步则国进步'''#三单引号为定界符,可表示多行字符串print(str1,str2,str3)print(str4)1.4.2复合数据类型---字符串转义字符以反斜杠“\”开头,后面跟字符或数字。转义字符具有特定的含义,不同于字符原有的意义,故称转义字符,主要用来表示那些用一般字符不便于表示的控制代码。1.4Python数据类型转义符含义转义符含义\"双引号\n换行符\'单引号\t制表符\\反斜杠\b退格\a响铃\r回车符\ddd1~3位八进制数表示的ASCII码所代表的字符\xhh1~2位十六进制数表示的ASCII码所代表的字符下列转义字符能够实现换行的是()A、

\bB、\nC、\rD、\t正确答案:B1.4.2复合数据类型---字符串3.基本的字符串函数(1)eval()函数与字符串有关的一个重要函数,把字符串的内容作为对应的Python语句来执行。其调用格式为:

eval(字符串)(2)len()函数

len()函数返回字符串的长度,即字符串中所包含的字符个数,其调用格式为:

len(字符串)1.4Python数据类型1.4.2复合数据类型---字符串>>>a=5>>>eval("a+1")#相当于直接执行a+16>>>eval("3+4")#相当于直接执行a+17>>>len("abc")3>>>len("字符串长度")51.4Python数据类型例题:从键盘输入一个的学生的三门成绩,求这个学生的总分与平均分a=eval(input('请输入第1门课程的成绩:'))b=eval(input('请输入第2门课程的成绩:'))c=eval(input('请输入第3门课程的成绩:'))sum=a+b+cave=sum/3print('总分={0:.2f},平均分={1:.2f}'.format(sum,ave))1.4Python数据类型input函数(课本P33)input([提示字符串]):从键盘读取一行数据并返回一个字符串。>>>x=input()12>>>x'12'>>>x=int(input())12>>>x12int()函数将字符串转为整数>>>x,y=eval(input())3,4>>>x3>>>y4输入”3,4”,经过eval()函数处理变为:3,4x,y=3,41.4Python数据类型print函数(课本P36)print(输出项1,输出项2,…,sep=分隔符,end=结束符)sep缺省为空格,end缺省为回车a,b=10,20print(a,b)print(a,b,sep=',')print(a,b,sep=',',end='*')print("hello")print(a,b,sep=',',end='')print("hello")102010,2010,20*hello10,20hello1.4Python数据类型字符串的格式化print('总分={0:.2f},平均分={1:.2f}'.format(sum,ave))模板字符串.format(参数0,参数1,参数2…)模板字符串是由普通字符和多个占位符“{}”组成,将模板字符串中的占位符用format中的参数替换{<参数序号>:<填充字符><对齐方式><输出宽度><,><.精度><类型>}1.4Python数据类型1.4.3其他复合数据类型基本数据类型:仅能表示一个数据,不可分解为其他类型的。复合数据类型:将多个数据组织起来并统一表示。列表、元组、字典和集合类型的数据包含多个相互关联的数据元素,所以称它们为复合数据类型。列表、元组和字符串是有顺序的数据元素的集合体,称作序列(sequence)。序列可以通过各数据元素在序列中的位置编号(索引)来访问数据元素。字典和集合属于无顺序的数据集合体,不能通过位置编号来访问数据元素。1.4Python数据类型1.列表

列表(list)是写在中括号[]之间、用逗号分隔的元素序列,元素的类型可以不相同,可以是数字、单个字符、字符串甚至可以包含列表(所谓嵌套)。例如:>>>mlist=['brenden',45.3,911,'john',32]列表中的元素是可以改变的。例如:>>>a=[1,2,3,4,5,6]>>>a[0]=9>>>a[9,2,3,4,5,6]1.4.3其他复合数据类型1.4Python数据类型2.元组

元组(tuple)是写在小括号之间、用逗号隔开的元素序列。元组中的元素类型也可以不相同。元组与列表类似,不同之处在于元组的元素不能修改,相当于只读列表。例如:>>>mtuple=('brenden',45.3,911,'john',32)要注意一些特殊元组的表示方法。空的圆括号表示空元组。当元组只有一个元素时,必须以逗号结尾。1.4.3其他复合数据类型1.4Python数据类型任何一组以逗号分隔的对象,当省略标识序列的括号时,默认为元组。例如:>>>2,3,4(2,3,4)元组和列表有几点重要的区别。列表元素用中括号[]括起来,且元素的个数及元素的值可以改变。元组元素用小括号()括起来,且不可以更改。元组可以看成是只读的列表。1.4.3其他复合数据类型1.4Python数据类型3.字典字典(dict)是用花括号{}括起来的、用逗号分隔的元素集合,其元素由关键字和值组成,形式为:“关键字:值”。1.4.3其他复合数据类型1.4Python数据类型>>>mdict={"学号":2022,"姓名":"张三","性别":"男","年龄":18}>>>print(mdict["年龄"])18>>>mdict["年龄"]=19#把年龄改为19>>>mdict["班级"]="22计科1班"#增加一个键值对>>>print(mdict){'学号':2022,'姓名':'张三','性别':'男','年龄':19,'班级':'22计科1班'}4.集合集合(set)是包含0个或多个数据元素的无序且不重复的数据类型。它的基本功能是进行成员关系测试和消除重复元素。可以用花括号{}或set()函数创建集合。student={'Tom','Jim','Mary','Tom','Jack','Rose'}>>>mset={1,2,3,3,4}>>>print(mset)#会去掉重复的元素{1,2,3,4}>>>nset=set("hello")>>>print(nset){'o','h','l','e'}1.4Python数据类型1.5.1算术运算符与算术表达式Python的算术运算符有:+(加)、-(减)、*(乘)、/(除)、//(整除)、%(求余)、**(乘方)1.5数值类型的运算运算符说明举例x+yx与y之和2+3(结果是5)2+3.0(结果是5.0)x-yx与y之差2-3(结果是-1)x*yx与y之积2*3(结果是6)x/yx与y之商(商是浮点型)5/2(结果是2.5)4/2(结果是2.0)x//yx与y之整数商,即不大于x与y之商的最大整数5//2(结果是2)-5//2(结果是-3)5//2.0(结果是2.0)x%yx与y之商的余数,也称为模运算10%4(结果是2)5%3.0(结果是2.0)x**yx的y次幂,即xy5**2(结果是25)25**0.5(结果是5.0)

/、//和%运算符都是做除法运算,“/”运算符做一般意义上的除法,其运算结果是一个浮点数,即使被除数和除数都是整型,也返回一个浮点数;8/4=?“//”运算符做除法运算后返回商的整数部分。如果分子或者分母是浮点型,它返回的值将会是浮点类型;5//3=?5//3.0=?“%”运算符做除法运算后返回余数。“**”运算符实现乘方运算,其优先级高于乘除运算,乘除运算优先级高于加减运算。4*5/2**3=?1.5.1算术运算符与算术表达式1.5数值类型的运算“1234”+1234的计算结果的是()A、“1234”+1234B、“12341234”C、2468D、提示类型错误,无法运行正确答案:D以下代码的输出结果是()

print(0.1+0.2==0.3)A、-1B、TrueC、FalseD、0正确答案:C1.5.1算术运算符与算术表达式由算术运算符将数值类型的变量连接起来就构成了算术表达式,它的计算结果是一个数值。不同类型的数据进行运算时,这些数据类型应当是兼容的,并遵循运算符的优先级规则。算术表达式的所有字符都必须写在一行,特别是分数、乘方、带有下标的变量等。例如c=a2+b2应写成c=a**2+b**2要根据运算符的优先级,合理地加括号,以保证运算顺序的正确性。特别是分数中的分子分母有加减运算时,或分母有乘法运算,要加括号。1.5数值类型的运算1.5.2数值运算函数1.5数值类型的运算函数说明abs(x)返回数字x的绝对值或复数x的模divmod(x,y)返回包含商和余数的元组,即(x//y,x%y)max(x1,x2,..xn)返回x1,x2,..xn的最大值,n没有限制min(x1,x2,..xn)返回x1,x2,..xn的最小值,n没有限制pow(x,y[,z])返回(x**y%z),[]表示该参数可省略,即pow(x,y),返回x**y,即x的y次幂round(x[,n])对x四舍五入,保留n位小数。n默认为0,即返回x四舍五入的整数值1.5.3数值类型转换函数(内置函数)1.5数值类型的运算函数说明bin(x)将整数x转换为二进制字符串oct(x)将整数x转换为八进制字符串hex(x)将整数x转换为十六进制字符串int(x)若x是浮点数,返回其整数部分(注意不是四舍五入)若x是字符串(必须是整数字符串,否则报错),则返回对应的整数float(x)若x是整数,返回浮点数x若x是字符串(必须是数字字符串),则返回对应的浮点数complex(re[,im])生成一个复数,re为实部,im为虚部(缺省为0)下列函数不能实现类型转换的是()A、str()B、type()C、int()D、float()正确答案:B下面是Python的内置函数的是()A、linspace(a,b,s)B、eye(n)C、bool(x)

D、fabs(x)正确答案:C1.6常用系统函数Python语言有标准库和第三方库两类,第三方库需要安装后才能使用。每个标准库中定义了很多函数,这些函数称为系统函数。任何程序都可直接或间接地调用这些函数。在调用系统函数之前,先要用import语句导入库,格式为:import库名或import库名as别名from库名import函数名1,函数名2…from库名import*数学库模块(math):数学运算函数随机数模块(random):生成随机数的函数时间(time):日历(calendar):处理日期和时间的函数。>>>importmath>>>math.sqrt(2)1.4142135623730951>>>frommathimportsqrt>>>sqrt(2)1.4142135623730951如果希望导入模块中的所有函数定义,则函数名用“*”。格式如下:from模块名import*后两种方法不用加模块名.虽然方便,但推荐第一种,会引起混乱。以下属于Python中导入语句的是()A、classB、returnC、importD、print正确答案:C1.6.1math函数库(1)数学常量e:自然对数pi:圆周率(2)数值表示函数fabs(x):返回x的绝对值(返回值为浮点数)fmod(x,y):返回x与y的模,即x/y的余数(返回值为浮点数)floor(x):对x向下取整,返回不大于x的最大整数ceil(x):对x向上取整,返回不小于x的最小整数gcd(a,b):返回a与b的最大公约数1.6常用系统函数1.6.1math函数库(3)幂对数函数

pow(x,y):返回x的y次幂

exp(x):返回e的x次幂,e是自然对数

sqrt(x):返回x的平方根

log(x[,base]):返回x的对数值即logbasex,缺省base时,返回x的自然对数lnx1.6常用系统函数1.6.1math函数库.(4)三角运算函数

degree(x):将弧度转换为角度

radian(x):将角度转换为弧度

sin(x):返回x的正弦值,x为弧度

cos(x):返回x的余弦值,x为弧度

tan(x):返回x的正切值,x为弧度

asin(x):返回x的反正弦值,返回值为弧度

acos(x):返回x的反余弦值,返回值为弧度

atan(x):返回x的反正切值,返回值为弧度1.6常用系统函数例题从键盘输入圆的半径,求圆的周长、面积和体积。importmathr=eval(input('请输入圆的半径:'))area=math.pi*r**2len=2*math.pi*rvol=4/3*math.pi*r**3print('面积={0:.6f},周长={1:.6f},体积={2:.6f}'.format(area,len,vol))1.6常用系统函数例题importmatha,b,c=eval(input("请输入一元二次方程的3个系数a,b,c:"))x1=(-b+math.sqrt(b*b-4*a*c))/(2*a)x2=(-b+math.sqrt(b*b-4*a*c))/(2*a)print("x1=",x1,"x2=",x2)1.6常用系统函数(1)随机数种子:seed(x)X为种子,只要种子相同,每次生成的随机数序列也相;缺省x为随机数,随机数完全不可重现(2)随机挑选和排序(3)生成随机数random():随机生成一个[0.0,1.0)之间的小数randint(a,b):随机生成一个[a,b]之间的整数randrange(a,b[,c]):随机生成一个[a,b)之间以c(缺省为1)为步长的随机整数uniform(a,b):随机生成一个[a,b]之间的小数1.6.2random函数库1.6常用系统函数1.6.3time函数库时间获取函数:time(),localtime([secs]),ctime(),gmtime()、mktime()时间格式化函数:strftime(),strptime()程序计时函数:sleep(),perf_counter()1.6常用系统函数1.6.3time函数库时间获取函数:time():返回当前时间的时间戳(浮点数)。时间戳是从Epoch(1970年1月1日00:00:00UTC)开始经过的秒数。localtime([secs]):接收从Epoch开始的秒数,并返回一个时间元组。时间元组包含9个元素,相当于struct_time结构。省略秒数secs时,返回当前时间戳对应的时间元组。ctime([secs]):省略秒数secs时,获取系统当前时间(北京时间),返回一个以易读方式表示的时间字符串。否则返回从Epoch开始,经过secs秒后的时间字符串。gmtime():获取当前时间(英国格林尼治时间),返回一个程序可处理的时间格式1.6常用系统函数>>>importtime>>>time.time()1678376004.6912215>>>time.localtime()time.struct_time(tm_year=2023,tm_mon=3,tm_mday=9,tm_hour=23,tm_min=33,tm_sec=37,tm_wday=3,tm_yday=68,tm_isdst=0)>>>time.gmtime()time.struct_time(tm_year=2023,tm_mon=3,tm_mday=9,tm_hour=15,tm_min=33,tm_sec=52,tm_wday=3,tm_yday=68,tm_isdst=0)>>>time.ctime()'ThuMar923:35:062023'1.6.3time函数库时间格式化函数:strftime(tpl,ts):时间转字符串tpl是格式化模板字符串,用来定义输出的效果,ts是时间类型的变量,ts的值由函数gmtime()或localtime(()获取。>>>importtime>>>t=time.localtime()>>>time.strftime("%Y-%m-%d%H:%M:%S",t)'2022-11-1117:34:31'1.6常用系统函数1.6.3time函数库时间格式化函数:strptime(str,tpl):字符串转时间strptime函数的功能是将字符串解析为给定格式的日期时间对象。str是字符串形式的时间值,tpl是格式化模板字符串,用来定义输入效果>>>tstr="2022-11-1118:24:24"#tstr是一个字符串形式的时间>>>time.strptime(tstr,"%Y-%m-%d%H:%M:%S")#把tstr转换为指定格式的时间time.struct_time(tm_year=2022,tm_mon=11,tm_mday=11,tm_hour=18,tm_min=24,tm_sec=24,tm_wday=4,tm_yday=315,tm_isdst=-1)1.6常用系统函数1.6.4calendar函数库日历(calendar)模块提供与日历相关的功能。在默认情况下,日历把星期一作为一周的第一天,星期日为最后一天。要改变这种设置,可以调用setfirstweekday()函数。firstweekday():返回当前的星期开始工作日isleap(year):判断year是否为闰年True或Falseleapdays(y1,y2):返回y1到y2年间的闰年数setfirstweekday(weekday):0`6,代表周一到周日calendar(year):返回指定年份的日历month(year,month):返回某年某月的日历1.6常用系统函数importcalendarx=calendar.calendar(2024)print(x)y=calendar.month(2024,3)print(y)1.7常用系统函数应用举例【例

1‑2】模拟打印下载进度条importtimeimportrandomrandom.seed()start=time.perf_counter()foriinrange(11):a=random.random()time.sleep(a)print("已下载",i/10*100,"%")end=time.perf_counter()print("总计用时",end-start,"秒")1.7常用系统函数应用举例【例

1‑4】把当前系统的当月日历和当前时间打印输出。importcalendarimporttimet=time.localtime()y=t.tm_yearm=t.tm_monprint(time.strftime("%Y年%m月的日历为",t))print(calendar.month(y,m))print(time.strftime("现在时间是北京时间:%H:%M:%S%p",t))第2章顺序结构程序设计第2章

顺序结构程序设计Python代码的编写规范赋值语句数据的输入输入输出语句顺序结构程序设计举例顺序结构程序是指在程序的执行过程中,按照每条语句出现的先后顺序依次执行,并且只执行一次,中间没有中断、分支和重复。顺序结构是程序设计三种基本结构中最简单的一种。程序设计有三种基本结构,分别是顺序结构、分支结构和循环结构。使用这三种结构可以编写复杂的程序。2.1.1缩进与其他语言最大的不同就是,Python是使用缩进来区分不同的代码块,所以对缩进有严格要求。Python

采用冒号和缩进区分代码块之间的层次。行尾的冒号和下一行的缩进,表示下一个代码块的开始。而缩进的结束则表示此代码块的结束。Python要求属于同一代码块中的各行代码,它们的缩进量必须一致,但具体缩进量为多少,并不做硬性规定。2.1Python代码的编写规范

缩进指的是每一行代码前面的空白部分,可以由空格或者Tab键实现。但无论是手动敲空格键,还是使用Tab键,通常情况下都是采用4个空格作为一个缩进量。需要注意的是,一定不能将空格和Tab键混在一起使用。通过下面这段代码,体会代码块的缩进规则。a=1#定义变量,缩进为0while(a<=5):if(a%2==1):

#第1种缩进,隶属于whileprint(a)#第2种缩进,隶属于ifprint("********")#第2种缩进,隶属于ifa=a+1#第1种缩进,隶属于while程序的运行结果:1********3********5********相同的代码,如果采用不同的缩进,程序执行的效果可能产生差异。更改上述代码第2个print的缩进,如下:a=1#定义变量,缩进为0while(a<=5):if(a%2==1):#第1种缩进,隶属于whileprint(a)#第2种缩进,隶属于ifprint("********")#改变为第1种缩进,隶属于whilea=a+1#第1种缩进,隶属于while程序的运行结果:1**************3**************5*******2.1.2注释注释对程序的执行没有任何影响,目的是对程序作解释说明,以增强程序的可读性。程序中的单行注释采用#开头,注释可以从任意位置开始,可以在语句行末尾,也可以独立成行。对于多行注释,一般推荐使用多个#开头的多行注释,也可采用三引号(实际上是用三引号括起来的一个多行字符串,起到注释的作用)。1.单行注释“#”是单行注释符号。注释的内容以“#”开始,直到换行结束,可以放在需要注释的代码行的上一行,也可以放在代码的后面。例如:#第1个Python程序>>>print("Helloworld!")Helloworld!>>>x=10>>>y=-1+2j#y是复数类型>>>print(x+y)(9+2j)2.多行注释并没有单独的多行注释符号。当注释的内容过多,需要写在多行时,既可以在每行注释的前面都加上“#”。也可以先选中多行注释,再按组合键“Ctrl+/”,需要注释所有行的前面会自动添加“#”。

有时也可以使用三个引号(英文的单引号或双引号)作为多行注释的开始和结束。这种情况可以看做是字符串没有被赋给变量,不占内存,解释器不做操作。#Python代码的编写规范#教师:张三#开发时间:2023/9/110:30print("Helloworld!")'''你好,这是多行注释,只看不执行。'''1.在Python中,语句从新行的第一列开始,语句前面不可以随意加空格(注释语句可不做这样的要求)。因为空格表示缩进,而解释器是根据缩进判断语句的逻辑关系。2.一行一句。为了使代码更易读,通常建议每行只写一条语句,例如:>>>x=7>>>y=8>>>z=9>>>print(x,y,z)7892.1.3Python程序的书写规则3.一行多句。如果一行内书写多条语句,语句间应使用分号进行分隔,例如:>>>x=7;y=8;z=9;print(x,y,z)7894.一句多行。如果一条语句过长,一行放不下,需要换行书写。此时需要用续行符“\”标识表示多行编写,例如:>>>print("富强、民主、文明、和谐是国家层面的价\值目标,自由、平等、公正、法治是社会层面的价\值取向,爱国、敬业、诚信、友善是公民个人层面的\价值准则,这24个字是社会主义核心价值观的基本\内容。")2.2赋值语句赋值语句是Python中最基本的语句之一。对变量进行赋值的一行代码称为赋值语句,使用“=”作为赋值运算符。2.2.1基本形式变量=表达式>>>x1=10>>>x2=x1>>>x1=123%10>>>x3=pow(2,3)赋值运算符“=”的左侧必须是变量或对象的某个属性,不能是表达式,如:>>>x+y=10#错误的赋值语句SyntaxError:can'tassigntooperator赋值运算符“=”右侧的表达式一定是具有返回值,可以是常量值、变量值、函数返回值、计算式值等等。注意,与C语言不同的是,Python的赋值语句没有返回值,不能作为返回值赋予另一个变量,也不能将其作为print函数的参数打印输出,都会产生错误。>>>y=(x=1)+2#错误的赋值语句SyntaxError:invalidsyntax>>>print(x=10)#赋值语句不能作为参数输出TypeError:'x'isaninvalidkeywordargumentforthisfunction2.2.2复合赋值Python提供了12种复合赋值运算符:+=、-=、*=、/=、//=、%=、**=、<<=、>>=、&=、|=、^=其中,前7种是常用的算术运算,后5种是关于位运算的复合赋值运算符。例如:>>>x=1>>>x+=2

#等价于x=x+2>>>print(x)>>>7。当右侧表达式是一个复杂表达式时,尤其要注意,复合赋值运算一定是先计算右侧表达式的值,如:>>>x=2>>>x*=3+4#等价于x=x*(3+4)>>>print(x)>>>14“x*=3+4”先计算“=”右侧表达式“3+4”的值为“7”,然后计算“x*7”的值为14,最后将14的值赋给变量x。2.2.3序列赋值1.元组赋值运算>>>a,b,c=1,2,3>>>print(a,b,c)1232.为列表里的变量赋值>>>[a,b,c]=[4,5,6]>>>print(a,b,c)456以下程序的运行结果说明,先执行“x=10”,再执行“x=20”,最终x的值为20.>>>x,x=10,20>>>print(x)20序列赋值的一个重要应用是交换两个变量的值,不需要借助第3个变量,不需要多条语句就可以实现,如:>>>x,y=10,20>>>x,y=y,x>>>print(x,y)20102.2.4链式赋值链式赋值用于为多个变量赋相同的值。变量1=变量2=......变量n=赋值表达式>>>x=y=z=10>>>print(x)>>>print(y)>>>print(z)101010需要注意的是,链式赋值是从按左到右的顺序执行赋值的。也就是说先执行“x=10”,再依次执行“y=10”和“z=10”。>>>i,ls=0,[10,11,12,13]>>>i=ls[i]=3>>>ls[10,11,12,3]从执行结果中可以看出,ls[i]中i的值是3,也就是说“i=3”的执行是先于“ls[i]=3”的执行。2.3.1input()函数Python用内置函数input()实现标准输入,其调用格式为:变量=input("提示性的文字")例如:>>>name=input("请输入你的名字:")其中name是变量。“=”是赋值运算符,将键盘输入的结果赋值给变量name。input()是输入函数。"请输入您的名字:"是提示性的文字,也可以省略,主要用来提示用户。2.3

数据的输入2.3.1input()函数Python用内置函数input()实现标准输入,其调用格式为:变量=input("提示性的文字")例如:>>>name=input("请输入你的名字:")其中name是变量。“=”是赋值运算符,将键盘输入的结果赋值给变量name。input()是输入函数。"请输入您的名字:"是提示性的文字,也可以省略,主要用来提示用户。2.3

数据的输入2.3.1input()函数Python用内置函数input()实现标准输入,其调用格式为:变量=input("提示性的文字")例如:>>>name=input("请输入你的名字:")其中name是变量。“=”是赋值运算符,将键盘输入的结果赋值给变量name。input()是输入函数。"请输入您的名字:"是提示性的文字,也可以省略,主要用来提示用户。2.3

数据的输入>>>name=input("请输入你的名字:")请输入你的名字:张三>>>print(name,type(name))张三<class'str'>#输入的张三是str类型>>>age=input("请输入你的年龄:")请输入你的年龄:20>>>print(age,type(age))20<class'str'>#输入的20是str类型a=input("请输入一个数:")b=input("请输入一个数:")print(a+b)这段代码的运行结果:请输入一个数:3请输入一个数:4342.3.2eval()函数eval()是Python的一个内置函数。它的作用是将字符串当成表达式进行计算求值,可以理解为去掉字符串的引号标识,并返回计算结果。eval()去除引号后会检查到它是不是可计算的,如果可计算会将计算的结果输出,如果不可计算则直接返回结果。>>>eval('pow(2,3)')8>>>eval('2+2')4>>>s=eval("'*'*5")>>>print(s)*****注意:在编写Python程序时,经常将input()和eval()结合使用,实现为变量赋值。此时,用户输入的数字(包括小数和复数),先由input()加引号解析为字符串,再由eval()去引号,最后被解析的数字保存到变量中。>>>a,b=eval(input())7,8#输入:7,8相当于a,b=7,8>>>print(a+b)152.4数据的输出2.4.1表达式语句输出如果只是查看变量或表达式的值,可以使用表达式语句直接输出,这样比较简洁。>>>a=10>>>a/42.5>>>a//42>>>a*=a+2>>>a1202.4.2print()函数print的意思是打印。在Python中,print()函数可以将结果输出到IDLE、控制台或文件里。一般形式为:print(输出内容1,输出内容2,输出内容3......)输出的内容可以是多项。输出时,默认以空格分隔,最后换行。其中,要输出的内容可以是数字、字符串、表达式,也可以直接输出变量,如数值型变量、字符串变量等。>>>print(100) #输出整数100100>>>print(3.14) #输出实数3.143.14>>>print('Helloworld') #输出字符串HelloworldHelloworld>>>print("自强不息,格物致知") 自强不息,格物致知格式说明符说明%d用一个十进制整数代替%o用一个八进制整数代替%x用一个十六进制整数代替%c用一个字符代替%f或%F%.nf或%.nF用一个小数形式的实数代替,小数部分默认6位n用于指定小数的位数。%e或%E用一个指数形式的实数代替%s用一个字符串代替%%用一个%代替表3.1常用的格式说明符及说明

如果需要格式化输出多个数据,在%后面加上(),在()中按顺序用逗号隔开各个数据。name='张三'age=20height=1.756weight=120.3print('我的名字是:%s'%name)首先原样输出“我的名字是”,然后遇见格式说明符%s,它的位置被后面的%后的变量name代替,输出字符串张三。输出结果是:我的名字是:张三print('Heightis%5.2f,Weightis%.2f'%(height,weight))print中%5.2f的意思是,这个位置被一个实数代替,并且这个实数一共5位(注意小数点要占一位),小数部分2位。如果不足5位,前面补空格。如果是%-5.2f,表示如果不足5位,后面补空格。如果数据实际是超过5位的,那么为了保证准确性,按实际输出。%.2f的意思是,只要求小数部分保留2位,第3位需要四舍五入。输出结果是:Heightis1.76,Weightis120.30%比较特殊,如果希望输出1个%,格式说明符应该是%%。total=50boy=30print("男生人数占%.2f%%"%(boy/total*100))上述程序的输出结果是:男生人数占60.0%2.f-string方法这是Python的一种更直观的格式化方法,从Python3.6版本开始支持f-string。这种方法使用{}代替了%。在形式上是以f或F引领的字符串,以大括号{}标明被替换的部分。f-string方法的一般形式为:print(f'{被替换的部分}')age=20print(f'Myageis{age}')#输出Myageis20pi=3.1415926print(f'{pi:.3f}')

#输出3.1422.f-string方法这是Python的一种更直观的格式化方法,从Python3.6版本开始支持f-string。这种方法使用{}代替了%。在形式上是以f或F引领的字符串,以大括号{}标明被替换的部分。f-string方法的一般形式为:print(f'{被替换的部分}')age=20print(f'Myageis{age}')#输出Myageis20pi=3.1415926print(f'{pi:.3f}')

温馨提示

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

评论

0/150

提交评论