PHP前端开发

python基础循环的学习记录

百变鹏仔 3小时前 #Python
文章标签 基础

一、while循环

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

while   循环条件:

 循环操作

(1)while循环示例

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

立即学习“Python免费学习笔记(深入)”;

i=1                                            # 初始化循环计数器isum=0                                          # 初始化总成绩变量while i<p>(2)嵌套while循环示例</p><p>外部循环满足条件后,执行代码开始执行内部循环,等内部循环全部执行完毕,如果还满足外部循环条件,则外部循环再次执行,依次类推,直到跳出外层循环。</p><p>例:分别输入两个学生的5门成绩,并分别计算平均成绩</p><pre class="brush:python;toolbar:false">j=1                                         # 定义外部循环计数器初始值prompt='请输入学生姓名'                       # 定义字符串变量,在用户输入时调用此变量可以减少敲汉字的麻烦while j<h3> 二、<a href="http://www.php.cn/code/5913.html" target="_blank">for循环</a></h3><p>(1)使用<a href="http://www.php.cn/code/47.html" target="_blank">for语句</a>可以遍历全部元素,例如逐个输出字符串中的字符,逐个输出列表中的元素,元组中的元素,集合中的元素(注意赋值时各元素的顺序),字典中的键……</p><pre class="brush:python;toolbar:false;">for letter in 'Python':print letter结果:Python
fruits=['西瓜','水蜜桃','葡萄']for fruit in fruits:    print fruit结果:西瓜水蜜桃葡萄

(2)重复执行相同操作

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

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

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

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

subjects=('linux系统','Mysql数据库','Python语言')  # 定义一个元组,三个元素代表三门课程sum=0                                            # 定义变量num为初始化成绩分数for i in subjects:                               # 把元组里的每一个元素依次赋值给i,一共有三次    print '请输入%s的考试成绩'%i                   # 提示输入成绩,运用了格式化字符串功能,用i每次取得的元素名表达出成绩名字,%s的意思是字符串    score = input()                              # 接收用户输入的成绩赋值给score    sum += score                                 # 把成绩赋给sum,相当于sum = sum + scoreavg= sum / len(subjects)                         # 跳出for循环后,计算平均值,这里用函数len()来计算变量subjects的长度,因为subjects定义为一个元组,因此长度即为元素个数3print '王晓明的平均成绩为%d'%avg                    # 输出平均成绩结果:请输入linux系统的考试成绩87请输入Mysql数据库的考试成绩78请输入Python语言的考试成绩90王晓明的平均成绩为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 score100:                 #判断分数取值范围,做提醒            print '注意成绩大小'            sum+=score                               #每次输入成绩后,sum值都累加    avg= sum/len(subjects)                       #求出平均成绩    print j,'的平均成绩是%d'%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)uitEnter choice:'''while True:             choice = raw_input(prompt).strip()[0].lower()       #读取控制台输入的字符串,去除其首尾多余的空格后,将第一个字符串转换为小写字母    print '--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