Python语言程序设计 课件 4-语句和控制结构_第1页
Python语言程序设计 课件 4-语句和控制结构_第2页
Python语言程序设计 课件 4-语句和控制结构_第3页
Python语言程序设计 课件 4-语句和控制结构_第4页
Python语言程序设计 课件 4-语句和控制结构_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

Python语言程序设计PythonLanguageProgramming4语句和控制结构引例基本语句及顺序结构语句条件语句while循环for循环转移语句引例【例4-1】计算1-n之内能被3整除的数字之和,通过键盘输入n的值,最后显示输出计算结果。【参考代码】sum=0n=int(input('计算1-n之内能被3整除的数字之和,请输入n的值'))foriinrange(n+1):ifi%3==0:sum=sum+iprint('1-%d之内能被3整除的数字之和是%d'%(n,sum))基本语句及顺序结构语句输入输出语句赋值语句顺序结构语句输入输出语句input输入语句<变量>=input(<提示性文字>)通过input语句输入的值,默认为字符串属性字符串无法进行运算,需要用int()函数转换为整数形式print语句多种形式print语句用来输出字符信息,也可以以字符形式输出变量,支持格式化输出输入输出语句符号描述符号描述%c字符及其ASCII码%s字符串%d整数%u无符号整型%o无符号八进制数%x无符号十六进制%f浮点数%e科学计数法浮点数表4.1python常用字符串格式化符号输入输出语句【例4-2】从键盘中输入两个数,并输出这两个数的平均值。【参考代码】a=float(input('请输入第一个数值'))#float()函数将输入的字符串转换为浮点数b=float(input('请输入第二个数值'))average=(a+b)/2print('输入的两个数的平均值是%f'%average)赋值语句【例4-3】变量a赋值为4,变量b赋值为5,交换变量a和b的值,最后为b的值加1。【参考代码】>>>a=4>>>b=5>>>a,b=b,a>>>print(a)5>>>print(b)4>>>b=b+1>>>print(b)5赋值语句同步赋值语句<变量1>,...,<变量N>=<表达式1>,...,<表达式N>>>>a,b=3,4#多目标赋值>>>a3>>>b4>>>[x,y]=['abc','ECUPL']#列表赋值>>>x'abc'>>>y'ECUPL'>>>x,y=['abc','ECUPL']>>>x'abc'>>>y'ECUPL'顺序结构语句顺序结构按照书写顺序依次执行选择结构根据特定的情况,有选择地执行某些语句循环结构在给定条件下往复执行某些语句条件语句基本的if语句else语句elif语句基本的if语句if语句的语法形式if表达式:语句体基本的if语句【例4-4】用户输入一个整数,如果这个数字大于6,那么就输出一行字符串;否则,直接退出程序。【参考代码】integer=input('请输入一个整数:')#取得一个字符串integer=int(integer)#将字符串转换为整数ifinteger>6:print('%d大于6'%integer)else语句if语句的语法形式if表达式:语句体1else:语句体2else语句【例4-5】用户输入一个整数,如果这个数字大于6,那么就输出一行信息,指出输入的数字大于6;否则,输出另一行字符串,指出输入的数字小于等于6。【参考代码】integer=input('请输入一个整数:')#取得一个字符串integer=int(integer)#将字符串转换为整数ifinteger>6:print('%d大于6'%integer)else:print('%d小于或等于6'%integer)elif语句elif语句的语法形式if表达式1:语句体1elif表达式2:语句体2……elif表达式m:语句体melse:语句体nelif语句【例4-6】用户输入一个整数,如果这个数字大于6,那么就输出一行信息,指出输入的数字大于6;如果这个数字小于6,则输出另一行字符串,指出输入的数字小于6;否则,指出输入的数字等于6。【参考代码】integer=input('请输入一个整数:')#取得一个字符串integer=int(integer)#将字符串转换为整数ifinteger>6:print('%d大于6'%integer)elifinteger<6:print('%d小于6'%integer)else:print('%d等于6'%integer)elif语句【例4-7】按照我国法律及相关解释,盗窃公私财物价值一千元至三千元以上以及盗窃国有馆藏一般文物,处三年以下有期徒刑(本例中仅看有期徒刑刑期);盗窃公私财物价值三万元至十万元以上以及盗窃国有馆藏三级文物,处三年以上十年以下有期徒刑;盗窃公私财物价值三十万元至五十万元以上以及盗窃国有馆藏二级以上文物,处十年以上有期徒刑或者无期徒刑。elif语句【参考代码】theft_of_goods=input("请输入盗窃物:一般文物、三级文物或者二级以上文物")theft_amount=int(input("请输入盗窃金额"))level1=0level2=0level=0iftheft_amount>1000:level1=2eliftheft_amount>30000:level1=3eliftheft_amount>300000:level=4iftheft_of_goods=="一般文物":level2=2eliftheft_of_goods=="三级文物":level2=3eliftheft_of_goods=="二级以上文物":level2=4iflevel1>level2:level=level1else:level=level2iflevel==2:print("三年以下有期徒刑")eliflevel==3:print("三年以上十年以下有期徒刑")eliflevel==4:print("十年以上有期徒刑或者无期徒刑")else:print("予以治安处罚,拘留或罚款")elif语句【例4-8】模拟判断用户登录信息。要求:当登录的用户名和密码全部正确时,显示”欢迎登录!”,否则显示“用户名或密码信息不正确,请重新登录!”。用户名为admin,密码值为password。【参考代码】username=input("请输入用户名:")psword=input("请输入密码:")ifusername=="admin"

andpsword=="password":print("欢迎登录!")else:

print("用户名或密码信息不正确,请重新登录!")while循环while循环语句的一般语法计算循环无限循环引例【例4-9】修改例4-8,修改要求:在原有功能基础上,增加验证次数的功能。当用户名或者密码输入错误时,无限次重新输入而无需重新运行程序。【参考代码】whileTrue:#条件表达式判断一直为真username=input("请输入用户名:")psword=input("请输入密码:")ifusername=="admin"andpsword=="password":print("欢迎登陆!")else:print("用户名或密码输入错误,请重试!")while循环语句的一般语法while语句的语法形式while表达式:循环体注缩进避免无限循环循环体不能为空while小写while循环语句的一般语法【例4-10】打印输出1到100之间的奇数,并计算它们的和。【参考代码】integer=1sum=0whileinteger<=100:ifinteger%2==1:print(integer,end='')sum=sum+integerinteger=integer+1print('')print("1到100之间所有奇数的和为:%d"%sum)计算循环【例4-11】修改例4-8,要求:若用户输入用户名和密码错误的次数超过3次,则显示“该账户已锁定,请联系客服人员!”【参考代码】count=0#计数器初始化whilecount<3:#计数器,设置循环执行的最大次数username=input("请输入用户名:")psword=input("请输入密码:")ifusername=="admin"andpsword=="password":print("欢迎登陆!")break#当用户名和密码输入正确时,退出循环else:print("用户名或密码输入错误,请重试!")count=count+1print('该账户已锁定,请联系客服人员')计算循环【例4-12】要求从键盘输入10个整数,输入完毕后,打印输出十个数的平均值。【参考代码】total=0#定义并初始化变量counter=1#初始化计数器whilecounter<=10:#让用户输入10个整数,并将其累加total=total+int(input('请输入一个整数:'))#该语句执行了三个动作counter=counter+1#计算并输出平均数print("您输入的十个整数的平均值是:",float(total)/10)无限循环如果条件判断语句永远为True,循环将会无限的执行下去。无限循环也称为死循环。如:i=1whilei<10:print(i)可通过Ctrl+C组合键中断循环或强制退出程序。一般要避免程序出现无限循环的情况。for循环一般语法range()函数一般语法for语句的语法形式for<控制变量>in<序列对象>: 循环体注for循环可以用来遍历任何序列对象,如字符串、列表、字典、元组和集合等一般语法【例4-13】计算1-100中100个自然数的和,并打印输出。【参考代码】sum=0#初始化变量forxinrange(101):#range生产一个序列对象,默认从0开始print(x,end='')#end=''保证了数字不换行输出sum=sum+x#每次循环,将数字累加到sum中print('')print('1-100个自然数的和是:%d'%sum)一般语法【例4-14】计算1-1000中所有偶数的和与平均值,并打印输出。【参考代码】sum1=0#初始化counter=1average=0forxinrange(1,1001):#生成1至1000的序列ifx%2==0:#判断x是否为偶数sum1=sum1+x#条件成立时,将x累加至sum中print(x,end='')#不换行输出x,查看符合条件的数字xcounter=counter+1#x符合偶数条件时,计数器加1,统计偶数的个数print('1-1000中所有偶数的和是:%d'%sum1)average=sum1/counterprint('1-1000中所有偶数的平均值是:%f'%average)一般语法【例4-15】有学生计算机成绩数据存放在列表score中,统计其平均值average。【参考代码】>>>#方法一>>>score=[90,100,30,48,69,78,87,80,85,92,75]#列表中的元素为成绩值>>>average=sum(score)/len(score)>>>average75.81818181818181>>>#方法二>>>sum1=0>>>forxinscore: sum1=sum1+x >>>average=sum1/len(score)>>>average75.81818181818181一般语法【例4-16】鸡兔同笼问题。大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数有35个头,从下面数有94只脚。求笼中各有几只鸡和几只兔?【参考代码】a=35b=94forxinrange(1,a):if2*x+4*(35-x)==b:print('鸡有'+str(x)+'只','兔有'+str(35-x)+'只')一般语法【例4-17】“要、做、好、事”每一个文字都代表一个数字,试编写代码计算出符合如图所示数学式子的“要、做、好、事”的值分别是多少。【参考代码】list1=[0,1,2,3,4,5,6,7,8,9]list2=[1,2,3,4,5,6,7,8,9]forhinlist2:forsinlist1:forzinlist1:foryinlist2:if(h*100+s*10+h)+(y*100+z*10+h)==(y*1000+z*100+h*10+s):print(h,s,y,z)range()函数range()函数的语法形式range(start,stop[,step])其中,start指的是计数起始值,默认是0;stop指的是计数结束值,但不包括stop;step是步长,默认为1,不可以为0。range()函数生成一段左闭右开的整数范围。range()函数range()函数的四点注意表示左闭右开的区间接收的参数必须是整数,可以是负数,但不能是浮点数等其它类型是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但不能修改元素是可迭代对象,却不是迭代器range()函数常见使用方法表示范围是左闭右开区间,区间内可以定义范围内数的间隔,当括号内只有一个数时表示从0开始>>>list(range(1,8,2))#步长为2,从1开始,等差为2的数列[1,3,5,7]>>>list(range(2,8))#默认步长为1[2,3,4,5,6,7]>>>list(range(8))#默认起始数字为0[0,1,2,3,4,5,6,7]range()函数常见使用方法表示负数步长可以为负,可以从小往大排>>>list(range(-8,-1))#可以表示负数,从小往大排列[-8,-7,-6,-5,-4,-3,-2]>>>list(range(-1,-8))#默认步长为1,此时起始值要小于结束值[]>>>list(range(-8,-1,2))#设置步长值[-8,-6,-4,-2]>>>list(range(-1,-8,-2))#步长可以为负,负数从大到小排列[-1,-3,-5,-7]>>>list(range(8,1,-2))#步长可以为负,正数从大到小排列[8,6,4,2]>>>list(range(8,1,2))#设置步长为2,起始值要小于结束值[]range()函数常见使用方法循环出字符串或数组的每个单元>>>x='IloveECUPL'>>>foriinrange(len(x)):#输出字符串中的每一个字符 print(x[i],end='/')

I//l/o/v/e//E/C/U/P/L/#运行结果>>>x=['I','love','ECUPL']#输出列表中的每一个元素>>>foriinrange(len(x)): print(x[i],end='/')

I/love/ECUPL/#运行结果>>>foriinx:#输出列表中的每一个元素 print(i,end='/')I/love/ECUPL/#运行结果一般语法【例4-18】国际国际乒联将每局21分改成11分,是否会影响输赢结果【参考代码】importrandomcount=0probA=0.52forxinrange(1000):pointA=pointB=0whilepointA!=21andpointB!=21:ifrandom.random()<probA:pointA=pointA+1else:pointB=pointB+1

温馨提示

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

评论

0/150

提交评论