《第二次课编写简单的程序教学教学课件.pptx》由会员分享,可在线阅读,更多相关《第二次课编写简单的程序教学教学课件.pptx(77页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、示例程序:求两个整数的和与平均值问题:由用户任意输入两个整数,求这两个数的和以及平均值是多少。 Step 1:获取数据 Step 2:计算和与平均值 Step 3:输出结果 Step 1:从键盘输入两个整数m和n Step 2:sum = m + n avg = (m + n)/ 2 Step 3:输出sum和avg示例程序:求两个整数的和与平均值问题:由用户任意输入两个整数,求这两个数的和以及平均值是多少。m = eval(input(输入第一个整数:)n = eval(input(输入第二个整数:)sum = m + n # 求和avg = (m + n) / 2 # 求平均print(和
2、为:, sum)print(平均值为:, avg)示例程序:求两个整数的和与平均值Python程序的书写规则如下:1)使用换行符分隔,一般情况下,一行一条语句。2)从第一列开始,前面不能有任何空格,否则会产生语法错误。3)以# 开始的语句是注释语句。4)在Python程序中所有的语法符号,都必须在英文输入法下输入,字符串中的符号除外。5)在Python中代码的缩进非常重要,具体将在第三章中介绍。m = eval(input(输入第一个整数:)n = eval(input(输入第二个整数:)sum = m + n # 求和avg = (m + n) / 2 # 求平均print(和为:, sum
3、)print(平均值为:, avg)标识符及命名规则Python对标识符的构成是有要求的: 每个标识符必须以字母或下划线“_”开头,后跟字母、数字或下划线的任意序列。根据这个规则,以下都是Python中的合法名称:x,num,num_1,numEggs,python123;而2x,a-b,num Eggs都是不合法的。 在Python中,标识符区分大小写。标识符及命名规则有一些标识符是Python本身的一部分,这些特殊的标识符被称为“关键字”或者是“保留字”,它们不能像普通标识符那样使用。Python关键字的完整列表可以用以下方式查看:变量与赋值语句Python是动态类型语言,即变量不需要显式
4、声明数据类型。根据变量的赋值,Python解释器会自动确定其数据类型。通过内置的type()函数,可以判断一个对象指向的数据类型。变量与赋值语句m整数对象2 m整数对象2实数对象2.61. 执行语句m = 2,解释器创建了整数对象2和变量m,并把m指向整数对象2。2. 接着执行m = 2.6,解释器创建了实数对象2.6,并把m指向实数对象2.6。因此m的类型取决于它所指向的数据的类型变量与赋值语句变量的赋值赋值就是用一个变量来标识某个对象,其语法格式如下:变量 = 表达式最简单的表达式就是一个字面量,例如:x = 100,即表示用变量x来标识一个整数对象100,x为这个整数对象的引用。表达式也
5、可以复杂一点,例如:x = (100-20)/2,这时Python会先求表达式的值,然后返回表达式结果对象,并用变量来引用该对象。Python中变量在访问之前,必须先绑定某个对象,也就是先赋值,否则会报错。变量与赋值语句Python中变量在访问之前,必须先绑定某个对象,也就是先赋值,否则会报错。在示例中显示,x和str两个变量都可以正常使用。当试图输出y的时候,系统会报错,因为y变量未赋值,因此不能直接使用。变量与赋值语句链式赋值用于为多个变量同时赋值相同值。这里的x = y = z = 200等价于x = 200、y = 200、z = 200三条语句。变量与赋值语句解包赋值语句Python
6、支持将序列数据类型解包为对应相同个数的变量。变量的个数必须与序列的元素个数一致,否则会产生错误。变量与赋值语句解包赋值语句利用解包赋值实现两个变量值的交换数据的输入与输出输入语句input如果需要将用户输入的数据用一个变量来标识,可以使用如下的语句形式:变量 = input ( 提示字符串 )需要记住的是,这种形式的input语句只能得到文本(字符串),如果希望得到一个数字,我们需要将输入的数据做一些处理。数据的输入与输出输入语句input如果希望输入一个数字,必须用eval函数解析输入数据。数据的输入与输出输入语句input变量 = eval ( input ( 提示字符串 ) )我们添加了
7、一个内置的函数eval(),它“包裹”了input函数。在这种形式中,用户输入的字符串被解析为表达式以求值。数据的输入与输出输出语句printprint语句以文本形式显示信息,所有提供的表达式都从左到右求值,结果值以从左到右的方式显示在输出行上。默认情况下,在显示值之间放置一个空格字符。什么参数都没有的print输出一个空行数据的输入与输出输出语句print默认情况下,print输出完所有提供的表达式之后,会自动的换行,如果希望print输出完数据后不换行我们可以采用如下形式:请注意,这是在文件方式下运行,end=“”,表示print输出完数据后不加任何字符,包括换行符。数值数值类型数据 整数
8、类型(int)是表示整数的数据类型。与其他计算机语言有精度限制不同,Python中的整数位数可以为任意长度(只受限制于计算机内存)。整型对象是不可变对象。 浮点类型(float)是表示实数的数据类型。与其他计算机语言的双精度(double)和单精度(float)对应,Python中的浮点类型精度与系统相关。数值内置数值操作运算符描述实例结果备注+加法3 + 4.57.5 -减法12 4.87.2 *乘法2 * 5.010.0 /实数除法10 / 42.5 /整数除法10 / 42采用向下取整方式,-10 / 4 = -3%取余10 % 31操作数可以为实数,3.5 % 3 = 0.5*乘方2
9、* 38操作数可以为实数,4.0 * 0.5 = 2.0数值内置数值操作在这里要注意的是:1. 在乘法运算中,“*”不可以省略,在书写表达式的时候要和数学中的写法相区别。例如语句:m = 4ab,必须写成:m = 4*a*b。2. Python中的除法有两种,一种是单斜杠(/)表示实数除法,另一种是双斜杠(/),表示整除,它会对除后的结果进行取整操作。数值问题:需要找钱给用户,现在只有50元,5元和1元的人民币若干张。输入一个整数金 额值,给出找钱的方案,假设人民币足够多,且优先使用面额大的钱币。money = eval(input(输入金额:)m50 = money / 50 # 计算需要的
10、50元面额的纸币数量money = money % 50 # 使用50元面额钱币后剩下的金额m5 = money / 5 money = money % 5m1 = moneyprint(50元面额需要的张数:, m50)print(5元面额需要的张数:, m5)print(1元面额需要的张数:, m1)数值复合赋值运算符所有二元运算符(+、-、*、/、/、%、*)都可以跟赋值运算符结合在一起,形成复合赋值运算符(+=、-=、*=、/=、/=、%=、*=),复合赋值运算符中间不可有空格。若a和b为操作数,则a += b,等价于a = a + b;a *= b,等价于a = a*b 数值内置数值
11、函数函数描述abs(x)求x的绝对值divmod(x,y)输出(x/y, x%y)pow(x,y,z)(x*y)%z, 表示可选参数,当z省略的时候,等价于x*yround(x,ndigits)对x四舍五入操作,保留ndigits位小数,当ndigits省略的时候,返回x四舍五入后的整数值max(x1,x2,xn)返回x1,x2,xn中的最大值min(x1,x2,xn)返回x1,x2,xn中的最小值数值内置数值函数函数描述abs(x)求x的绝对值divmod(x,y)输出(x/y, x%y)pow(x,y,z)(x*y)%z, 表示可选参数,当z省略的时候,等价于x*yround(x,ndig
12、its)对x四舍五入操作,保留ndigits位小数,当ndigits省略的时候,返回x四舍五入后的整数值max(x1,x2,xn)返回x1,x2,xn中的最大值min(x1,x2,xn)返回x1,x2,xn中的最小值数值使用math库Python数学计算的标准函数库math,提供了4个数学常数和44个函数。math库不支持复数类型,仅支持整数和浮点数运算。math库中的常数和函数不能直接使用,需要用关键字import引用后才可使用。数值使用math库引用math库有两种方式:方式1:import math 方式2:from math import 我们使用math库中的pi常数,在方式1中,p
13、i常数前需要写上库名,即“math.”。在方式2中,我们用import直接引用了math中的常数pi,因此在使用pi时,前面不需要再加上库名。数值使用math库引用math库有两种方式:方式1:import math 方式2:from math import 方式2 还有一种写法是:from math import *。如果采用这样的方式引入math库,则库中的所有常数和函数都可以直接使用,前面不需要加上“math.”。数值使用math库( math库中的数学常数)常数数学形式描述pi圆周率,值为3.141592653589793ee自然对数,值为2.718281828459045inf正无穷
14、大,负无穷大为-infnan 非浮点数标记,Not a Number 数值使用math库( math库中的部分数值函数)函数数学形式描述fabs(x)返回x的绝对值fmod(x,y)x % y返回x和y的余数fsum(x,y,)x+y+浮点数精确求和gcd(a,b) 返回x和y的最大公约数,a和b为整数trunc(x) 返回x的整数部分modf(x) 返回x的小数和整数部分ceil(x)向上取整,返回不小于x的最小整数floor(x)向下取整,返回不大于x的最大整数factorial(a)x!返回a的阶乘,a为整数数值math库中的部分数值函数使用示例:数值使用math库( math库中的部分
15、幂对数与三角函数1)函数数学形式描述pow(x,y)xy返回x的y次幂exp(x)ex返回e的x次幂,e为自然对数sqrt(x)返回x的平方根log(x,base)log2(x)返回x的2对数值log10(x)返回x的10对数值degrees(x) x为弧度制,返回x对应的角度值radians(x) x为角度制,返回x对应的弧度值hypot(x,y)返回(x,y)坐标到原点(0,0)的距离数值使用math库( math库中的部分幂对数与三角函数2)函数数学形式描述sin(x)返回x的正弦函数值,x为弧度值cos(x)返回x的余弦函数值,x为弧度值tan(x)返回x的正切函数值,x为弧度值asi
16、n(x)返回x的反正弦函数值,x为弧度值acos(x)返回x的反余弦函数值,x为弧度值atan(x)返回x的反正切弦函数值,x为弧度值数值math库中的部分幂对数与三角函数使用示例:字符串字符串数据类型:使用单引号或双引号括起来的内容,称为字符串类型数据(str),可以使用以下4种方式定义。1) 单引号(),其中可以包含双引号。2) 双引号(”),其中可以包含单引号。3) 三单引号( ),其中可以包含单引号和双引号,可以跨行。4) 三双引号(” ” ),其中可以包含单引号和双引号,可以跨行。字符串字符串数据类型:字符串字符串数据类型:name = input(姓名:)country = inp
17、ut(国家:)s = 世界那么大, + name + 想去 + country + 看看print(s)+实现字符串的拼接字符串字符串的索引与切片Python中字符串包括两种序号体系:正向递增序号和反向递减序号。正向递增序号反向递减序号0123456789101112人生苦短,我学Python-13-12-11-10-9-8-7-6-5-4-3-2-1字符串字符串的索引与切片0123456789HelloMike-10-9-8-7-6-5-4-3-2-1字符串字符串的索引与切片1. Python中字符串也提供区间访问方式,采用头下标:尾下标的方式,这种访问方式称为“切片”。2. 若有字符串s,
18、s头下标:尾下标表示在字符串s中取索引值从头下标到尾下标(不包含尾下标)的子字符串。3. 切片方式中,若头下标缺省,表示从开始取子串;若尾下标缺省,表示取到最后一个字符;若头下标和尾下标均缺省,则取整个字符串。字符串字符串的索引与切片0123456789HelloMike-10-9-8-7-6-5-4-3-2-1字符串字符串的索引与切片1. 字符串切片还可以设置取子串的顺序,只需要再增加一个参数即可,把头下标:尾下标变成头下标:尾下标:步长。2. 当步长值大于0的时候,表示从左向右取字符;当步长值小于0的时候,表示从右向左取字符。3. 步长的绝对值减1,表示每次取字符的间隔是多少。字符串字符串
19、的索引与切片0123456789helloMike-10-9-8-7-6-5-4-3-2-11.s0:5:1 正向取2.s0:6:2 正向取,间隔一个字符取3.s0:6:-1 反向取,但是头下标小于尾下标无法反向取,因此输出为空4.s4:0:-1 反向取,索引值为0的字符无法取到5.s4:-1 反向取,从索引值为4的字符依次取到开头字符6.s:-1 反向取整串7.s:-3 反向取,间隔两个字符取字符串字符串的索引与切片问题:输入一个1-12的整数,输出对应的月份名称缩写。可以利用字符串的切片操作来巧妙的解决这个问题。我们的基本思想是将所有的月份名称缩写存储在一个大的字符串中。months =
20、“JanFebMarAprMayJunJulAugSepOctNovDec”这样可以通过切出适当的子字符串来查找特定的月份,关键是应该在哪里切片呢?字符串字符串的索引与切片问题:输入一个1-12的整数,输出对应的月份名称缩写。由于每个月的名称缩写都由三个字母组成,如果知道一个给定月份在字符串中开始的位置,就可以很容易地提取月份名称缩写。monthAbbrev = monthspos:pos+3这将获得从pos指示位置开始的长度为3的子串。那么如何计算这个pos呢?字符串字符串的索引与切片问题:输入一个1-12的整数,输出对应的月份名称缩写。输入的整数m月份名称缩写切片的起始位置pos1Jan0
21、2Feb33Mar6月份名称缩写与切片起始位置的关系从表中数据可以看出切片的起始位置pos = (m-1)*3,接下来我们就可以开始编码了。字符串字符串的索引与切片问题:输入一个1-12的整数,输出对应的月份名称缩写。m = int(input(输入0-12的整数:)months = JanFebMarAprMayJunJulAugSepOctNovDecpos = ( m - 1 ) * 3print(monthspos:pos+3)字符串内置的字符串运算符运算符描述+字符串拼接,例如“AB”+“123”结果为“AB123”*字符串复制,例如“Tom”*3,结果为“TomTomTom”in判
22、断是否为子串,例如“H” in “Hello”结果为True;“h” in “Hello”结果为False字符串内置的字符串处理函数函数描述len(x)返回字符串x的长度str(x)将任意类型x所转换为字符串类型chr(x)返回Unicode编码为x的字符ord(x)返回字符x的Unicode编码值hex(x)将整数x转换为十六进制数,并返回其小写字符串形式oct(x)将整数x转换为八进制数,并返回其小写字符串形式字符串内置的字符串处理函数函数描述len(x)返回字符串x的长度str(x)将任意类型x所转换为字符串类型chr(x)返回Unicode编码为x的字符ord(x)返回字符x的Unic
23、ode编码值hex(x)将整数x转换为十六进制数,并返回其小写字符串形式oct(x)将整数x转换为八进制数,并返回其小写字符串形式字符串内置的字符串处理函数Python中字符使用的是Unicode编码标准,函数chr()和ord()可以实现编码与字符之间的转换。字符串内置的字符串处理函数观察输出结果:1. 大写字母,小写字母和数字字符的Unicode编码都是顺序排列的,例如a的编码为97,b的编码为98,可以推出d的编码为100。2. 小写字母的Unicode编码整体大于大写字母的Unicode编码,大写字母的Unicode编码整体大于数字字符的Unicode编码。字符串内置的字符串处理方法P
24、ython对字符串对象提供了大量的内置方法用于字符串的检测、替换和排版等操作。使用时需要注意的是,字符串对象是不可变的,所以字符串对象提供的涉及字符串“修改”的方法都是返回修改之后的新字符串,并不对原字符串做任何修改。字符串内置的字符串处理方法1. 字符串查找类方法:find()、rfind()、index()、rindex()、count() find()和rfind()方法分别用来查找一个字符串在另一个字符串指定范围(默认是整个字符串)中首次和最后一次出现的位置,如果不存在则返回-1。 index()和rindex()方法分别用来查找一个字符串在另一个字符串指定范围(默认是整个字符串)中首
25、次和最后一次出现的位置,如果不存在则抛出异常。 count()方法用来返回一个字符串在另一个字符串中出现的次数,如果不存在则返回0。字符串内置的字符串处理方法1. 字符串查找类方法:find()、rfind()、index()、rindex()、count()字符串内置的字符串处理方法2. 字符串分隔类方法:split()、rsplit()、partition()、rpartition()split()和rsplit()方法分别用来以指定字符为分隔符,从原字符串左端和右端开始将其分隔成多个字符串,并返回包含分隔结果的列表(列表将在后续章节中介绍)。默认按空白符号分隔字符串,如空格,换行符,制表
26、符等.字符串内置的字符串处理方法3. 字符串连接方法:join()字符串的join()方法用来将列表中多个字符串进行连接,并在相邻两个字符串之间插入指定字符,返回新字符串。字符串内置的字符串处理方法4. 大小写字符转换方法:lower()、upper()、capitalize()、title()、swapcase()字符串内置的字符串处理方法5. 字符串替换方法:replace()replace()方法用来替换字符串中指定字符或子字符串,每次只能替换一个字符或子串,类似于Word,记事本等文本编辑器的查找和替换功能。该方法不修改原字符串,而是返回一个新字符串。字符串内置的字符串处理方法6. 删
27、除字符串两端,右端或左端连续空白字符和指定字符方法:strip()、rstrip()、lstrip()字符串内置的字符串处理方法7. 判断字符串是否以指定字符开始或结束方法:startswith()、endswith()字符串内置的字符串处理方法8. 判断字符串类型方法: isupper()、islower()字符串内置的字符串处理方法9. 字符串排版方法:center()、ljust()、rjust()、zfill()字符串format格式化方法从Python2.6 开始,新增了一种格式化字符串的方法 str.format(),它增强了字符串格式化的功能,基本语法是通过“”和“:”来代替以前
28、的“%”。format方法可以有多个输出项,位置可以按指定顺序。字符串format格式化方法format方法的默认顺序和指定顺序使用示例字符串format格式化方法设置项可选值“*”,“=”,“-”等,但只能是一个字符,默认为空格。(居中), (右对齐)。一个整数,指格式化后整个字符串的字符个数。当使用format方法格式化字符串的时候,需要在“”中首先输入“:”。“:”称为格式引导符。“:”之后分别设置 。字符串format格式化方法强制转换强制类型转化是将表达式强制转换为所需的数据类型。强制转换强制类型转化是将表达式强制转换为所需的数据类型。在input输入中可以使用int或者float来代替eval