zoukankan      html  css  js  c++  java
  • 零基础入门学习Python(8)--了不起的分支和循环2

    前言

    上节课小甲鱼教大家如何正确的打飞机,其要点是判断和循环,判断就是该不该做某事,循环就是持续做某事

    知识点

    写一个程序

    按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下为D,写一个程序,当用户输入分数,自动转换为ABCD的形式打印。

    temp = input('请输入成绩:')
    a = int(float(temp))
    if 90< a <= 100:
        print('A')
    else:
        if 80< a <=90:
            print('B')
        else:
            if 60 < a <=80:
                print('C')
            else:
                if 0<= a <=60:
                    print('D')
                else:
                    print('输入错误')
    

    利用elif对上述代码进行改进. elif相当于C语言中的else if

    temp = input('请输入成绩:')
    a = int(float(temp))
    if 90< a <= 100:
        print('A')
    elif 80< a <=90:
        print('B')
    elif 60 < a <=80:
        print('C')
    elif 0<= a <=60:
        print('D')
    else:
        print('输入错误')            

    Python 可以有效避免“悬挂else”

    什么叫悬挂else
    举个例子,初学C语言的朋友可能很容易被一下代码欺骗:

    if ( hi > 2 )
        if ( hi > 7 )
            printf( "好棒!好棒!" );
    else
        printf( "切~" );

    在这个例子中,else是想和外层的if相匹配,但事实上按照C语言就近原则,else是与第二个if相匹配。由于初学者的一个不小心,就导致一个bug的出现。这就是著名的悬挂else事件。

    而在Python中,Python的缩进使用了强制的规定,使得代码必须正确的对齐,否则程序无法运行。所以Python是让程序员来决定else是属于哪一个if,通过限制你的选择,从而减少了不确定性。

    条件表达式(三元操作符)

    例子:

    x, y = 4, 5
    if x < y:
        small = x
    else:
        small = y

    我们说多少元操作符的意思是指这个操作符有多少个操作数。

    例如说 赋值操作,small = x,它有两个操作数,分别是左边的small右边的x,我们就叫它二元操作符或者说是二目操作符

    当我们的减号- 当作负号-来使用时,就代表一元操作符.

    三元操作符,也就是说也有三个操作数
    利用三元操作符进行改进:

    small = x if x < y else y
    
    语法: x if 条件 else y
    
    当 if条件问True时,把x值给small。当if条件为False时,把y值给small
    

    断言(assert)

    assert关键字我们称之为“断言”,当这个关键字后边的条件为假时,程序自动崩溃并抛出AssertionError的异常。
    举个例子:

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

    那在什么情况下我们需要使用到assert呢?

    当我们在测试程序时候,因为与其让错误的条件导致程序后面出现莫名其妙的bug或者崩溃的话,不如在错误条件出现的那一瞬间我们实现自爆。这就是我们assert存在的理由。

    一般来说 我们可以用它在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。

    课后习题

    请将以下代码 以三元操作符形式进行修改:

    x,y,z = 6,5,4
    if x < y:
        small = x
        if z < small:
            small = z
    elif y < z:
        small = y
    else:
        small = z

    small = x if (x < y and x < z) else (y if y < z else z)

  • 相关阅读:
    ssi服务器端指令
    json格式的转换为json字符串函数
    接口测试基础和jmeter
    【JZOJ6274】梦境
    【JZOJ6275】小L的数列
    【luoguP4721】分治 FFT
    【luoguP3868】猜数字
    中国剩余定理与扩展中国剩余定理
    【JZOJ6277】矩阵游戏
    【JZOJ6271】锻造 (forging)
  • 原文地址:https://www.cnblogs.com/wanbin/p/9514703.html
Copyright © 2011-2022 走看看