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, '是一个质数')
    
  • 相关阅读:
    J2EE13个规范--【J2EE】
    事件监听、持有对方的引用--【J2SE】
    TCP协议:服务端和客户端demo--【J2SE】
    线程:Interrupt、Sleep、Join、线程同步--【J2SE】
    1. Visual C++ 6.0 安装和使用
    无法连接虚拟设备sata0:1,因为主机上没有相应的设备
    Linux文件夹文件创建、删除
    服务器
    linux 下 apache启动、停止、重启命令
    Apache部署静态html
  • 原文地址:https://www.cnblogs.com/jkeykey/p/14168562.html
Copyright © 2011-2022 走看看