• 0基础入门学习Python(第4章)


    第四章,了不起的分支和循环

    4.1 分支和循环

    Python主要依靠缩进来区分代码块

    4.2 快速上手

    成绩按照分数来划分等级,90分以上为A,80~90 为B,60~80 为C,60以下为D

    p4_1.py

    score = int(input("请输入一个分数:"))
    
    if 100 >= score >= 90:
        print("A")
    if 90 > score >= 80:
        print("B")
    if 80 > score >= 60:
        print("C")
    if 60 > score >= 0:
        print("D")
    if score < 0 or score > 100:
        print("输入错误!")

    p4_2.py

    score = int(input("请输入您的分数:"))
    
    if 100 >= score >= 90:
        print("A")
    else:
        if 90 > score >= 80:
            print("B")
        else:
            if 80 > score >= 60:
                print("C")
            else:
                if 60 > score >= 0:
                    print("D")
                else:
                    print("输入错误!")

    p4_3.py

    score = int(input("请输入您的分数:"))
    
    if 100 >= score >= 90:
        print("A")
    elif 90 > score >= 80:
        print("B")
    elif 80 > score >= 60:
        print("C")
    elif 60 > score >= 0:
        print("D")
    else:
        print("输入错误!")

    分析:

    p4_1.py中,假设输入的是98,程序第一次成立,打印A,不过程序还为结束,需要继续对后面的四个条件进行判断,直到所有的条件不符合,最后才退出程序。

    虽然简单的例子,但就输入的测试数据来说,假设每一次判断都会消耗一个CPU时间,那么程序p4_1.py 的代码要比其余的程序多耗费400%的CPU资源。

    4.3 避免悬挂else问题

    使用Python开发没有这方面的考虑

    age = 20
    score = "A"
    
    if age < 18:
        if score == "A":
            print("恭喜你,获得青少年一等奖!")
    else:
        print("抱歉,本活动只限于小于18周岁的青少年参与。")

    4.4 条件表达的三元素

    >>> x = 5
    >>> y = 4
    >>> if x < y:
    ... small = x
    ... else:
    ... small = y
    ...
    >>> small
    4
    >>>

    三元操作符

    a = x 条件 else y

    表示当条件为true的时候,a被赋值为x,否则被赋值为y

    >>> x = 5
    >>> y = 4
    >>> small = x if x < y else y
    >>> small
    4
    >>>

    score = int(input("请您输入一个数字:"))
    
    level = 0
    if 100 >= score >= 90:
        level = 'A'
    elif 90 > score >= 80:
        level = 'B'
    elif 80 > score >= 60:
        level = 'C'
    elif 60 > score >= 0:
        level = 'D'
    else:
        print("输入错误!")
    
    print(level)

    如果使用三元操作符实现

    score = int(input("请您输入一个数字:"))
    
    level = 0
    
    level = 'A' if 100 >= score >= 90 else 'B' if 90 > score >= 80 else 'C' if 80 > score >= 60 else 'D' if 60 > score >=0 else print("输入错误!")
    
    print(level)

     4.5 断言

    断言的语法语法其实有点像if条件的分支语句,一般在程序调试的时候,使用

    >>> assert 3 < 4
    >>> assert 3 > 4
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    AssertionError
    >>>

    4.6 while循环语句

    语法:

    while 条件:

      循环体

    i = 1
    sum = 0
    
    while i <= 100:
        sum += i
        i += 1
    print(sum)

    4.7 for 循环语句

    语法:

    for 变量 in 可迭代对象:

      循环体

    sum = 0
    for i in range(101):
        sum += i;
        i += 1
    print(sum)

    range() 是一个BIF,它可以为指定的整数生成一个数字序列,语法如下:

    range(stop)

    range(start,stop)

    range(start,stop,step)

    >>> list(range(10))
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> list(range(5,10))
    [5, 6, 7, 8, 9]
    >>> list(range(0,10,2))
    [0, 2, 4, 6, 8]
    >>> list(range(0,-10,-2))
    [0, -2, -4, -6, -8]

    4.8 break 语句

    break语句终止当前循环,跳出循环体

    bingo = "清蒸"
    answer = input("小甲鱼是清蒸好吃还是炖了好吃?")
    
    while True:
        if answer == bingo:
            break
        answer = input("抱歉,请重新输入。")
    print("对吗,只有清蒸才原汁原味。")

    打印2018年之后出现的第一个闰年

    (当年月份可以被4整除,且不能被100整除,或者可以被400整除,该年为闰年)

    for year in range(2018,2100):
        if (year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
            break
    print("2018年之后出现的第一个润年是", year)

    4.9 continue 语句

    跳出本轮循环,进行下一轮循环

    如果要打印2018年到2100年之间的年份

    for year in range(2018,2050):
        if (year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
            print(year)
            continue

    2020
    2024
    2028
    2032
    2036
    2040
    2044
    2048

    4.10 else语句

    while 条件:

      循环体

    else:

      条件不成立时执行的内容

    for 变量 in 可迭代对象:

      循环体

    else:

      条件不成立可执行的内容

  • 相关阅读:
    你的代码又导致资金损失了?活该!
    rabbitmq实现指定消费者才能消费
    没有绝对,没有百分百
    jenkins构建触发器之Build whenever a snapshot dependency is built
    豁然明白的囧事 之 执行mvn:clean deploy提示401 Unauthorized
    (8/8)RPC方法的参数,能用枚举就请考虑枚举
    abstract 关键字
    练习题------代码块
    代码块
    static 关键字
  • 原文地址:https://www.cnblogs.com/hack404/p/11391703.html
Copyright © 2020-2023  润新知