Python匹马行天下之_循环

一、while循环

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

  while   循环条件:

     循环操作

(1)while循环示例

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

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

(2)嵌套while循环示例

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

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

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

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

1 for i in range(0,5):  #依次把0到4保存在变量i中
2     print ‘Mr.Mangood最酷!‘
3
4 结果:
5 Mr.Mangood最酷!
6 Mr.Mangood最酷!
7 Mr.Mangood最酷!
8 Mr.Mangood最酷!
9 Mr.Mangood最酷!

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

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

(3)嵌套for循环

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

 1 student = (23‘黄晓鸣‘,‘杨影‘)                      #定义学生姓名的元组
 2 subjects=(‘linux系统‘,‘Mysql数据库‘,‘Python语言‘)  #定义课程名字的元组
 3 for j in student:                                #把j依次取两名学生的值进行两次循环
 4     sum=0                                        #初始化成绩的值
 5     print ‘%s同学的考试成绩‘%j                     #打印出标题
 6     for i in subjects:                           #定义课程循环
 7         print ‘请输入%s的考试成绩‘%i               #提示输入其中一名学生的考试成绩
 8         score = input()                          #接收考试成绩赋值给score
 9         if score<0 or score>100:                 #判断分数取值范围,做提醒
10             print ‘注意成绩大小‘
11         sum+=score                               #每次输入成绩后,sum值都累加
12     avg= sum/len(subjects)                       #求出平均成绩
13     print j,‘的平均成绩是%d\n‘%avg                 #打印平均成绩
14 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、具体代码

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

原文地址:https://www.cnblogs.com/adaicary/p/11610895.html

时间: 2024-11-10 01:31:57

Python匹马行天下之_循环的相关文章

Python匹马行天下之运算符

什么事运算符? 本章节主要说明Python的运算符.举个简单的例子 4 +5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. Python语言支持以下类型的运算符: 1.算数运算符 字面意思,算数运算符也就是拿来对操作数进行计算的. 以下假设变量a为10,变量b为21: 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 31 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -11 * 乘 - 两个数相乘或是返回一个被重复若干次的字

Python匹马行天下之面向对象

概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 while True:     if cpu利用率 > 90%:         #发

匹马行天下之逆风翻盘篇——塞翁失马焉知非福

匹马行天下之逆风翻盘篇——塞翁失马焉知非福 在软件学院学了两年编程,敲了两年代码,现在大二快结束了,总想跟自己说点什么,却不知道该说什么,感觉自己一直挺努力的,但是看不到什么实质的成果,感觉满足不了内心深处的那点虚荣心,没有什么代表性的成果说服自己.唯一我觉得能让自己有点安心的就是在博客园我写的博客了吧,此篇非技术分享,Java匹马行天下为技术分享,匹马行天下则为个人分享,有鸡汤,有励志,有学习方法,思维,技巧,我在心中画了一个很大的圆,希望我能坚持,用行动填充心中的大圆.此篇为励志分享,送给不

匹马行天下——没有无缘无故的爱和恨,没有无缘无故的编程

没有无缘无故的爱和恨,没有无缘无故的编程 前言: 想这世间,没有无缘无故的爱,也没有无缘无故的恨,一切都有有原因的,我想编程亦是如此,技术时常更新,程序员时常学习,随着时间的推移,程序员发际线的增高,生活无处不编程,未来必将是编程的天下,大势所趋,人工智能的时代已经到来,程序员还会少吗?敢问路在何方,路在脚下,人人心中的压力都是来自于自己不努力不积极而又不甘于现状,少给自己找借口,多给自己找方法,幸运女神不是人人都能遇到的,还是正确面对现实,我命由我不由天,人生赢在转折处,改变从现在开始. 一览

Java匹马行天下之一顿操作猛如虎,框架作用知多少?

流行框架: 框架就是开发人员定义好的一套模板,程序员只需要往模板中添加响应的代码即可,填完代码,项目就完成了.所以框架存在的意义以及我们学习框架的目的就是想办法能够让程序员快速的完成整个项目的开发.下面我来对各大流行框架做个梗概: Struts 先说第一个框架Struts,它是干嘛的,原来我们写Servlet的时候不停的用Request,Response进行读取数据传输数据这样的操作,那么Struts可以让我们能够快速的完成数据的交互,但Struts也有缺点,它的整个框架的体量是比较大的,所以目

Python匹马天下行之python基本语法

输出 输出皆是在控制台打印出要打印的内容,在python中用print("内容") 在括号中加入要输出的内容就可以打印出来了. 例: print("Hello Python") 也可以在里面插入多个字符,用逗号隔开 例: print("h","e","l","l","o") 可以看到每个字符串中间用空格隔开了,如果你不想用空格来分隔,也可以用sep指定 例:    

黑 马 程 序 员_视频学习总结&lt;c语言&gt;----02 printf和scanf函数、基本语句和运算、流程控制、函数、数组、字符串

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.printf函数 1.在使用peintf函数前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据,其中使用格式是 printf(“字符串”) :或者 printf(“字符串”, 格式符参数): 2.常用的格式符及其含义如图所示 3.格式符还可以添加输出宽度 二.scanf函数 1.在使用scanf函

利用python统计代码行

参加光荣之路测试开发班已三月有余,吴总上课也总问“ 咱们的课上了这么多次了大家实践了多少行代码了?”.这里是一个一脸懵逼的表情.该怎么统计呢?一个个文件数当然不可取,能用代码解决的事咱们坚决不动手.最近在网上刷题时也正好遇到有这么一道题,所以决定撸一撸. 题目:有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列出来. 首先分析一下思路捋一下大象装冰箱的步骤,从一个给定的目录统计该目录下所有的代码行大致需要以下7个步骤: 1. 遍历该目录下所有的文件. 2.

25匹马的角逐

问题是这样的:一共有25匹马,有一个赛场,赛场有5个赛道,就是说最多同时可以有5匹马一起比赛.假设每匹马都跑的很稳定,不用任何其他工具,只通过马与马之间的比赛,试问最少 得比多少场才能知道跑得最快的5匹马. 注意: "假设每匹马都跑的很稳定" 的意思是在上一场比赛中A马比B马快,则下一场比赛中A马依然比B马快. 稍微想一下,可以采用一种 竞标赛排序(Tournament Sort)的思路. 见<选择排序 > (1) 首先将25匹马分成5组,并分别进行5场比赛之后得到的名次排