zoukankan      html  css  js  c++  java
  • day05-while循环和for循环的使用

    本周内容

    day01:流程控制

    流程控制之while循环
    流程控制之for循环
    

    day02:基本数据类型常用操作及内置方法

    int
    float
    str
    list
    

    day03:基本数据类型常用操作及内置方法

    list
    tuple
    dict
    set
    

    day04:文件处理--->存取硬盘

     字符编码
    
    ​    基本操作及底层原理
    
    ​    with上下文管理
    
    ​    文件操作的模式
    ​        rt
    ​        wt
    ​        at
    
    ​        rb
    ​        wb
    ​        ab
    
    ​        +
    

    day05 文件处理高级

    文件操作的读写方法
    控制文件内指针的移动
    修改文件的两种方法
    

    今日内容:

    1.什么是循环

    循环就是重复做某件事

    2.为何要有循环

    为了控制计算机能够像人一样去重复做某件事

    3.如何用while循环和 for 循环

    while 循环

    3.1 基本语法

    # 基本语法:	
    while 判断条件(condition):
        执行语句(statements)……
    

    执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。

    当判断条件假 false 时,循环结束。

    3.2 while 循环的执行流程图

    img

    3.3 案例:打印1-5,用while循环

    # 方法1:
    i = 0
    while i < 5:
        i += 1
        print(i)
    
    # 方法二:
    j = 0
    tag = True
    while tag:  # 条件控制while的子代码的运行,tag为条件
        j += 1
        print(j)
        if j == 5:
            tag = Falsej = 0
    

    3.4 死循环:条件永远为True

    while True:  # 只需要满足条件为True,不管是隐式的还是显式的都是
        print(1)
        1 + 1
    

    3.5 了解: 软件分为俩种类型

    I/O密集型
    	大多数都是在进行I/O操作的,也有计算.例如:qq,微信...,王者荣耀
    计算型
        基本都是在计算的,少部分进行了I/O.例如:mp4的文件转换成jpg的...,金融计算的程序
    

    3.6 死循环的俩种类型例子

    # I/O密集型 例子:
    while True:
        x = input(">>>>:").strip()
        y = input(">>>>:").strip()
    
    # 计算型 例子:
    while True:
        1 + 1
        1 + 3
        ...
    

    3.7 结束while循环的俩次条件

    3.7.1 方式一:把条件改为False

    特点:等到本次循环代码运行完毕后,下一次循环判断条件时才会生效

    # 例如:
    j = 0
    tag = True
    while tag:  # 条件控制while的子代码的运行,tag为条件
        j += 1
        print(j)
        if j == 5:
            tag = False
    

    3.7.2 方式二:break代表结束本层循环

    特点: 执行到break时,会立即结束本层循环

    j = 0
    tag = True
    while tag:  # 条件控制while的子代码的运行,tag为条件
        if j == 5:
            break
            j += 1
            print(j)
    

    3.8 嵌套多层的while循环

    # 方式1:
    tag = True
    while tag:
        while tag:
            while tag:
                tag = False
    # 方式2:
    while True:
        while True:
            while True:
                break
            break
        break
    

    3.8.1 案例1:验证用户账户密码,登入成功后退出登录功能

    tag = True
    while tag:
        inp_user = input('请输入用户名>>:').strip()
        inp_pwd = input('请输入密码>>:').strip()
        if inp_pwd == 'jkey' and inp_pwd == '123':
            print('logging successful')
            tag = False
            # break
        else:
            print('用户名或者密码错误')
    

    3.8.2 案例2:拓展,用户登入成功后,再让用户进行取款,存款和转账功能

    while tag:
        inp_user = input('请输入用户名>>:').strip()
        inp_pwd = input('请输入密码>>:').strip()
        if inp_pwd == 'jkey' and inp_pwd == '123':
            print('logging successful')
            while True:
                print("""
                    0 : 退出
                    1 : 存款
                    2 : 取款
                    3 : 转账
                """)
                chios = input('请输入您要进行的操作').strip()
                if chios == '0':
                    print('退出成功')
                    break
                elif chios == '1':
                    print('存款成功')
                elif chios == '2':
                    print('取款成功')
                elif chios == '3':
                    print('转账成功')
                else:
                    print('输入不合法')
            break
        else:
            print('用户名或者密码错误')
    

    注意:代码的执行中最后一步不一定是最后一行代码,即一段主代码会有一堆子代码,你的最后一步可能是成立的子代码中,而不整个代码的最后一行

    例如:

    while True:
        print("""
                        0 : 退出
                        1 : 存款
                        2 : 取款
                        3 : 转账
                    """)
        chios = input('请输入您要进行的操作').strip()
        if chios == '0':
            print('退出成功')
            break
            elif chios == '1':
                print('存款成功')
            elif chios == '2':
                print('取款成功')
            elif chios == '3':
                print('转账成功')  # 这一步是上面条件成立时,该代码的最后一步
            else:
                print('输入不合法')
    

    3.9 while循环,退出本次循环之continue,退出本次循环,重新判断,直接进入下一次

    x = 0
    while x < 6:
        if x == 2 or x == 4:
            x += 1
            continue  # continue同级别之后千万别写代码,写了也不会运行
        else:
            print(x)
            x += 1
    

    案例:

    while tag:
        inp_user = input('请输入用户名>>:').strip()
        inp_pwd = input('请输入密码>>:').strip()
        if inp_pwd == 'jkey' and inp_pwd == '123':
            print('logging successful')
            break
        else:
            print('用户名或者密码错误')
            # continue  # 没有意义,因为之后没有代码的运行,它会自动退出本次循环,去进行下一次的循环
    

    3.10 while+else : else的子代码块会在while循环正常死亡时运行(即没有被break干掉的就叫正常死亡)

    while tag:
        inp_user = input('请输入用户名>>:').strip()
        inp_pwd = input('请输入密码>>:').strip()
        if inp_pwd == 'jkey' and inp_pwd == '123':
            print('logging successful')
            break
        else:
            print('用户名或者密码错误')
    else:
        print('没有被break结束的本层循环都会执行')
    

    for循环

    for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

    for循环的语法格式

    for iterating_var in sequence:
    	statements(s)
    

    for循环执行时的 流程图

    img

    示例1 : for 循环遍历 字符串

    for letter in 'Python':  # 第一个实例
        print('当前被遍历的字母 :', letter)
    

    示例2:for循环遍历 列表

    fruits = ['banana', 'apple', 'mango']
    for fruit in fruits:  # 第二个实例
        print('当前被遍历的水果 :', fruit)
    

    示例3:用for 和 while 俩种循环来对列表进行取值操作

    names = ['jkey', 'liu', 'song', 'xxx', 'xue']
    # while 循环取值
    l = 0
    while l < len(names):
        print(names[l])
        l += 1
    # for 循环取值
    for name in names:
        print(name)
    

    示例4: for 循环遍历 字典 取值

    students_dict = {
        'name': 'jkey',
        'sex': 'male',
        'age': 18,
        'hobbies': ['play', 'music', 'eat']
    }
    for student_info in students_dict:  # 其中student_info为字典的key
        student_info_value = students_dict[student_info]  # student_info_value 为字典的key对应的值
        print('key:%s
    value:%s' % (student_info, student_info_value))
    

    压缩赋值和for循环的搭配使用

    name_list_info = [['jkey', '18'], ['liu', '20']]
    for x, y in name_list_info:
        print(x, y)
    

    前言: range()方法的介绍

    python range() 函数在python2中是直接创建一个整数列表,这会非常耽误空间,而python3中将次功能完善是建立了一个生产列表的对象,一般用在 for 循环中。

    函数语法: range(start, stop[, step])

    参数说明:

    • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
    • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
    • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

    for 循环搭配break和continue

    for i in range(10):
        if i == 3:
            break  # for循环看到break会立刻退出本层for循环
        print(i)
    
    for i in range(11):
        if i == 3:
            continue  # for 循环 看到continue不会往下执行 会讲值取出后往后遍历
        print(i)
    

    for 循环搭配 else 语句

    for … else 语句, for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,和while … else 是一样的。

    for num in range(10, 20):  # 迭代 10 到 20 之间的数字
        for i in range(2, num):  # 根据因子迭代
            if num % i == 0:  # 确定第一个因子
                j = num / i  # 计算第二个因子
                print('%d 等于 %d * %d' % (num, i, j))
                break  # 跳出当前循环
        else:  # 循环的 else 部分
            print(num, '是一个质数')
    
  • 相关阅读:
    windwos8.1英文版安装SQL2008 R2中断停止的解决方案
    indwows8.1 英文版64位安装数据库时出现The ENU localization is not supported by this SQL Server media
    Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
    SQL数据附加问题
    eclipse,myeclipse中集合svn的方法
    JAVA SSH 框架介绍
    SSH框架-相关知识点
    SuperMapRealSpace Heading Tilt Roll的理解
    SuperMap iserver manage不能访问本地目的(IE9)
    Myeclipse中js文件中的乱码处理
  • 原文地址:https://www.cnblogs.com/jkeykey/p/14168562.html
Copyright © 2011-2022 走看看