Python基础 - 循环

一、while循环

如果条件成立(true),重复执行相同操作,条件不符合,跳出循环

 格式:    while   循环条件:

     循环操作

(1)while循环示例

  猜数字 1-100之间,有7次机会,猜对游戏结束,猜错提示大还是小

import random
number = random.randint(1, 100)
count = 7
while count > 0:
guess = int(input("请输入数字:"))
count -= 1
if guess == number:
print("恭喜你猜对了%s" % number)
break
elif guess < number:
print("猜小了,还剩%s次"%count)
continue
elif guess > number:
print("猜大了还剩%s次"%count)
continue
else:
print("次数已达到上限")

(2)嵌套while循环示例

外部循环满足条件后,执行代码开始执行内部循环,等内部循环全部执行完毕,如果还满足外部循环条件,则外部循环再次执行,依次类推,直到跳出外层循环。

例:分别输入两个学生的5门成绩,并分别计算平均成绩

j=1                                         # 定义外部循环计数器初始值
prompt='请输入学生姓名:' # 定义字符串变量,在用户输入时调用此变量可以减少敲汉字的麻烦
while j<=2: # 定义外部循环为执行两次
sum=0 # 定义成绩初始值,之所以定义在这里,是为了当第二个学生输入成绩时可以让sum初始化为0,重新接收新学生的成绩和
i=1 # 定义内部循环计数器初始值
name = input(prompt)       # 接收用户输入的学生姓名,赋值给name变量
while i<=5: # 定义内部函数循环5次,就是接收5门课程的成绩
print ('请输入第%d门的考试成绩: '%i) #提示用户输入成绩,其中用到了格式化输出,%d的取值随i的值显示,第1门课程,第2门课程……
sum= sum + int(input()) # 接收用户输入的成绩,赋值给sum
i+=1 # i变量自增1,i变为2,继续执行循环,直到i等于6时,跳出循环
avg=sum/(i-1) # 计算第一个学生的平均成绩 sum/(6-1),赋值给avg
print(name,'的平均成绩是%d\n'%avg) # 输出学生成绩平均值
j=j+1 # 内部循环执行完毕后,外部循环计数器j自增1,变为2,再进行外部循环
print('学生成绩输入完成!') # 外部循环结束,提示输入完成!

 二、for循环

(1)使用for语句可以遍历全部元素,例如逐个输出字符串中的字符,逐个输出列表中的元素,元组中的元素,集合中的元素(注意赋值时各元素的顺序),字典中的键等……

fruits=['西瓜','水蜜桃','葡萄']
for fruit in fruits:
    print(fruit) 

结果: 西瓜 水蜜桃 葡萄

输入小明的3门考试成绩,并算出平均值

subjects = ('linux系统', 'Mysql数据库', 'Python语言')  # 定义一个元组,三个元素代表三门课程
sum = 0                           # 定义变量num为初始化成绩分数
for i in subjects:                     # 把元组里的每一个元素依次赋值给i,一共有三次
print('请输入%s的考试成绩' % i)             # 提示输入成绩,运用了格式化字符串功能,用i每次取得的元素名表达出成绩名字,%s的意思是字符串
score = int(input())                 # 接收用户输入的成绩赋值给score
sum += score                       # 把成绩赋给sum,相当于sum = sum + score
avg = sum / len(subjects)                 # 跳出for循环后,计算平均值,这里用函数len()来计算变量subjects的长度,因为subjects定义为一个元组,因此长度即为元素个数3
print('王晓明的平均成绩为%d'%avg)               # 输出平均成绩

(2)嵌套for循环

输入黄晓鸣、杨影2位同学,每人三门课程的考试成绩,计算平均成绩

student = ('Peter','Adam')                      #定义学生姓名的元组
subjects=('linux系统','Mysql数据库','Python语言') #定义课程名字的元组
for j in student: #把j依次取两名学生的值进行两次循环
sum=0 #初始化成绩的值
print('%s同学的考试成绩'%j) #打印出标题
for i in subjects: #定义课程循环
print('请输入%s的考试成绩'%i) #提示输入其中一名学生的考试成绩
score = int(input()) #接收考试成绩赋值给score
if score<0 or score>100: #判断分数取值范围,做提醒
print('注意成绩大小')
sum+=score #每次输入成绩后,sum值都累加
avg= sum/len(subjects) #求出平均成绩
print(j,'的平均成绩是%d\n'%avg) #打印平均成绩
print('完成学生成绩录入工作') #提示完成工作

 

三、循环控制

循环控制语句可以改变循环正常的执行顺序

循环控制语句

break语句:跳出本次循环(嵌套循环中只跳出一层循环)

continue语句:跳过当前一轮循环体的剩余语句,重新测试循环状态,进入下一轮循环,比如循环的次数一共有5次,第四次遇到continue了,那么不继续执行了,直接进行第5次循环判断

 

posted @ 2021-04-21 15:12  Simon150117  阅读(171)  评论(0)    收藏  举报