一、while循环

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

  while   循环条件:

     循环操作

(1)while循环示例

例:输入王晓明5门课程的考试成绩,计算平均成绩

 i=                                            # 初始化循环计数器i
sum= # 初始化总成绩变量
while i<=: # 从i为1开始到5,重复执行一共5次接受考试成绩、求和的操作
print ('请输入第%d门课程的考试成绩'%i) # 提示用户输入成绩,其中用到了格式化输出,%d的取值随i的值显示,第1门课程,第2门课程……
sum=sum+input() # 把用户输入的成绩赋值给sum,最后保存着5次成绩的和
i=i+ # 每次循环 i 都自增1,直到大于5跳出循环
avg=sum/(i-) # 当第五次执行完i=i+1时,i为6,跳出循环,计算出sum/(i-)的值就是平均值,并赋值给avg
print ('王晓明5门课程的平均成绩是%d'%avg) # 格式化输出avg的值,由于用了%d所以计算出的%avg的数值有小数也会省去,接收整数部分

(2)嵌套while循环示例

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

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

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

二、for循环

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

for letter in 'Python':
  print letter 结果:
P
y
t
h
o
n
fruits=['西瓜','水蜜桃','葡萄']
for fruit in fruits:
print fruit 结果:
西瓜
水蜜桃
葡萄

(2)重复执行相同操作

使用range()函数创建一个数字列表

取值范围:从起始数字开始到结束数字之前

 for i in range(,):  #依次把0到4保存在变量i中
print 'Mr.Mangood最酷!' 结果:
Mr.Mangood最酷!
Mr.Mangood最酷!
Mr.Mangood最酷!
Mr.Mangood最酷!
Mr.Mangood最酷!

输入王晓明的三门考试成绩,并算出平均值

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

(3)嵌套for循环

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

 student = (23'黄晓鸣','杨影')                      #定义学生姓名的元组
subjects=('linux系统','Mysql数据库','Python语言') #定义课程名字的元组
for j in student: #把j依次取两名学生的值进行两次循环
sum=0 #初始化成绩的值
print '%s同学的考试成绩'%j #打印出标题
for i in subjects: #定义课程循环
print '请输入%s的考试成绩'%i #提示输入其中一名学生的考试成绩
score = 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次循环判断

四、循环控制综合案例

1、需求分析

显示菜单

(N)ew User Login

(E)ntering User Login

(Q)uit

Enter choice:

注:输入字母N,接收新的登录名和密码,保存在字典中

  输入字母E,接收登录名、密码、查找、匹配用户输入是否正确

  输入字母Q,退出

2、执行步骤

  (1)编制菜单

  (2)使用while语句实现菜单项选择-外层循环

  (3)使用while语句接收新的登录名-内层循环

  (4)使用if语句判断菜单,执行相关操作

3、代码架构图

4、具体代码

 db={}
prompt='''
(N)ew user login
(E)ntering user login
(Q)uit
Enter choice:'''
while True:
choice = raw_input(prompt).strip()[0].lower() #读取控制台输入的字符串,去除其首尾多余的空格后,将第一个字符串转换为小写字母
print '\n--You picked:[%s]'%choice
if choice not in 'neq':
print '--invaild option:,try again--'
else:
if choice == 'n':
prompt1 = '--login desired:'
while True:
name = raw_input(prompt1)
if db.has_key(name): #判断字典里的键值是否已经有输入的name值,如果有的话触发continue重新执行while循环,因为触发continue前prompt1被重新定义了,所以执行了新的name = raw_input(prompt1)
prompt1 = '--name taken,try another: '
continue
else:
break
pwd = raw_input('password:') #验证字典中的键没有输入的name值后,跳出循环,把用户输入的密码赋值给pwd
db[name] = pwd #把值传给字典db中的name键实现字典数据的完善
elif choice == 'e':
name = raw_input("login:")
pwd = raw_input('password:')
password = db.get(name) #登录时,接收用户输入的登录名和密码后,把字典db中name键的值赋给password
if password == pwd: #比较字典中的密码password和用户输入的密码pwd是否一致
print 'welcome',name
else:
print 'shibai'
else:
print 'quit!'
break

python基础之循环的更多相关文章

  1. 第五篇:python基础之循环结构以及列表

    python基础之循环结构以及列表   python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.pyth ...

  2. Python 基础 while 循环

    Python 基础 while 循环 while 循环 在生活中,我们遇到过循环的事情吧?比如循环听歌.在程序中,也是存才的,这就是流程控制语句 while 基本循环 while 条件: # 循环体 ...

  3. python基础之循环结构以及列表

    python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...

  4. python基础(六)循环

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 循环用于重复执行一些程序块.从上一讲的选择结构,我们已经看到了如何用缩进来表示程序 ...

  5. python基础之循环语句

    一.if条件语句: 语法: 1.if单分支(单重条件判断) if expression: expr_true_suite 注释:expession为真执行代码expr_true_suite if单分支 ...

  6. python基础之循环与迭代器

    循环 python 循环语句有for循环和while循环. while循环while循环语法 while 判断条件: 语句 #while循环示例 i = 0 while i < 10: i += ...

  7. Python基础->for循环、字符串以及元组

    python流程控制>for循环.字符串以及元组 学习有关序列的思想.序列:一组有顺序的东西.所有的序列都是由元素组成的,序列中的元素位置是从0开始编号的,最后一个元素的位置是它长度减一. fo ...

  8. Python 基础06 循环

    循环用于重复执行一些程序块.从上一讲的选择结构,我们已经看到了如何用缩进来表示程序块的隶属关系. 循环也会用到类似的写法. for 循环 for 循环需要预先设定好循环的次数(n) 然后执行隶属于fo ...

  9. Python基础 | 关于“循环”那些事

    目录 for 循环 list range enumerate zip while 循环 while相当于if时 while充当for和if的混合体 泛循环 列表解析 map 迭代器 生成器 循环的跳出 ...

随机推荐

  1. Python dict() 函数

    Python dict() 函数  Python 内置函数 描述 dict() 函数用于创建一个字典. 语法 dict 语法: class dict(**kwarg) class dict(mappi ...

  2. 282 expression and operations添加运算符

    [抄题]: 给定一个仅包含数字 0 - 9 的字符串和一个目标值,返回在数字之间添加了 二元 运算符(不是一元)+, - 或 * 之后所有能得到目标值的情况. "123", 6 - ...

  3. 命令: go build

    命令: go build 参考: https://studygolang.com/articles/9463 go help build 构建编译由导入路径命名的包,以及它们的依赖关系,但它不会安装结 ...

  4. python 命令行工具 fire

    简介 A library for automatically generating command line interfaces. Python Fire is a library for auto ...

  5. Rhino 使 JavaScript 应用程序更灵动(转载)

    脚本语言有良好的快速开发,高效率的执行,解释而非编译执行等优点,并且具有与其他语言编写的组件之间强大的通信功能.JavaScript 一直是脚本语言中的领头羊,它是一门具有非常丰富特性的语言.除了浏览 ...

  6. win32多线程-异步(asynchronous) I/O

    I/O设备是个慢速设备,无论打印机.调制解调器,甚至硬盘,与CPU相比都奇慢无比,坐下来干等I/O的完成是一件不甚明智事情. 异步(asynchronous) I/O在win32多线程程序设计中被称为 ...

  7. java中创建对象的方法

    有4种显式地创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式. 2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor ...

  8. Delphi 文件拷贝

    function DoCopyDir(sDirName:String;sToDirName:String):Boolean;var hFindFile:Cardinal; t,tfile:String ...

  9. 9.使用GetData,Children实现对ZNode的监控

    一. zookeeper中的watcher 1. exists :监控的是[znode]的CUD 的操作   2. getdata 的时候注册的watcher[U,D 监控]update delete ...

  10. SqlerMonitor-复制

    在复制系统中因为一些配置上失误和人为的失误操作导致复制堵塞,Sqler Monitor 新增加了分析复制延迟邮件,配合复制错误监控邮件和延迟邮件,和复制元数据采集 可以在第一时间准确定位到问题,适合大 ...