【纯文本教程】大学专科的Python基础开发课?p=6
“Python基础开发”课程_课堂笔记(HTML版_006)
Class notes of "Python basic development",this webPage is sixth Page.
本页面的“代码demo索引”:(2.5 while循环的退出)
2.4 while循环语句
(注意:在Python中没有do...while语句。)
While循环与其他语言的while基本类似——当不知道循环次数,但知道循环条件时,一般使用while语句。与for循环类似,可在循环体中使用break和continue语句,else部分可以省略,其语法结构如下:
while 循环条件:
循环体(语句块1)
else:
语句块2
在“循环体”中,包含了“循环变量”的变化,需要缩进。
#这里本来有一个使用双重while循环打印出一个倒三角形图案的demo,老师跳过了,改为讲循环变量的变化的demo
while i<4:#循环条件
print(i)#循环体,可以包含很多条语句
i = i + 1#循环变量的变化
print("Finish")#循环退出后,就执行下一条语句
while循环的规则是,当循环条件成立时,就一直执行循环体中的代码块,在不满足循环条件后,就自动结束循环。
退出循环后,程序继续执行后面的代码。
2.5 while循环的退出
while和for语句都有else部分!如果循环没有被break语句终止,则循环结束时执行else语句。
“break语句”是大多数编程语言通用的,表示退出循环。
在while语句中,有不止一种退出方式:
- 第一种退出方法,是在“循环变量”不满足条件时,正常退出;
- 第二种退出方法,是用“break语句”,中途退出
while i<4:
print(i)#循环体
if i%2==1:
break#退出循环后,后面的语句就不再执行了
i = i + 1#循环变量的变化
print("Finish")
【例题1】百分制转换为五级制
#输入一个学生的整数成绩m,按照[0,59]、[60,69]、[70,79]、[80,89]、[90,100]的范围,分别给出E、D、C、B、A的等级。
m = float(input("请输入一个不超过一百的正整数:\n"))#输入数字,直接转换为浮点数,保存在变量里面
if m100:
print("无效数据!需要一个不超过一百的正整数!")
elif m>=90:
print("A")#运行到这里,就说明数据不会超过一百了
elif m>=80:
print("B")
elif m>=70:
print("C")
elif m>=60:
print("D")
else:
print("E\n\nmission failed.")
- 1是星期一Monday
- 2是星期二Tuesday
- 3是星期三Wednesday, April 22, 2020
- 4是星期四Thursday
- 5是星期五Friday
- 6是星期六Saturday
- 0是星期日Sunday
m = int(input("请输入一个不超过六的自然数:\n"))
if m==0:
s = "Sunday"
elif m==1:
s = "Monday"
elif m==2:
s = "Tuesday"
elif m==3:
s = "Wednesday"
elif m==4:
s = "Thursday"
elif m==5:
s = "Wednesday"
elif m==6:
s = "Thursday"
else:
s = "需要一个不超过六的自然数"
print(s)
用Python内置模块直接获取当前星期数:
>>> import time
>>> time.strftime("%w",time.localtime())
>>> m = int(time.strftime("%w",time.localtime()))#“time”模块使用前面题干中的对应关系
还有一个“datetime”模块,也有获取当前星期数这个功能
>>> import datetime
>>> print(datetime.datetime.now().weekday())
【例题3】输入一元二次方程的系数a、b、c,求它的根——注意,这个例题只是逻辑,具体代码不完整!需要补充输入语句
#b平方减4ac大于等于0的时候,才有两个根。
import math
a = float(input("a="))
b = float(input("b="))
c = float(input("c="))#先输入三个系数
if a != 0:
d = b*b - 4*a*c
if d>0:
d=math.sqrt(d)
x1 = (d-b)/2/a
x2 = (d+b)/2/a
print()
elif d=0:
print()#输出两个相同的解
else:
print()#输出没有实数解
else:
print()#不是一元二次方程
【例题4】(while循环例题)计算1+2+3+…+n的和,n由键盘输入
#s=1+2+3+…+n
n = int(input("n:\n"))
s=0
m=1
while m<=n:
s = s + m
m = m+1
print("1+2+3+…+"+str(n)+"="+str(s))
while语句的退出——最经典的例题是,输入一个正整数,判断是否是“素数”(质数,不解释)
【经典】质数判断程序
#2是最小的质数,要单独提出来
while m<n:
if n%m == 0:#可以整除的意思是余数为零
break#可以整除,就说明至少有一个因数,不满足质数的定义,后面的就不看了
m = m + 1
if m=n:
print(str(n)+"是素数")
else:
print(str(n)+"不是素数")
第6堂课,内容为while循环语句及其退出。
本页面(?p=6)的实际上课时间为2020年4月22日第2小节课。
浙公网安备 33010602011771号