【纯文本教程】大学专科的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.")

 

【例题2】输入0到6的整数,作为星期

  • 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小节课。

 

posted on 2020-05-26 11:17  机器人DX3906  阅读(261)  评论(0)    收藏  举报

导航