美文网首页python
python if 语句

python if 语句

作者: hiekay | 来源:发表于2018-12-04 15:49 被阅读0次

    if语句

    基本语句结构

    if 判断条件1:
        执行语句1……
    elif 判断条件2:
        执行语句2……
    elif 判断条件3:
        执行语句3……
    else:
        执行语句4……
    

    只有当“判断条件”的值是True的时候,才执行下面的执行语句。

    那么,在python中,怎么知道一个判断条件是不是真呢?可以通过一个内置函数bool()来判断一个条件的结果True还是False。看看下面的例子

    >>> bool("")
    False
    >>> bool(0)
    False
    >>> bool('none')
    True
    >>> bool(False)
    False
    >>> bool("False")
    True
    >>> bool(True)
    True
    >>> bool("True")
    True
    >>> bool(3>4)
    False
    >>> bool("b">"a")
    True
    >>> bool(not "")
    True
    >>> bool(not True)
    False
    
    

    在执行语句中,其实不一定非要把bool()写上的。如同这样:

    >>> x = 9
    
    >>> if bool(x>7):       #条件为True则执行下面的
    ...     print "%d more than 7"%x
    ... else:
    ...     print "%d not more than 7"%x
    ... 
    9 more than 7
    
    >>> if x>7:
    ...     print "%d more than 7"%x
    ... else:
    ...     print "%d not more than 7"%x
    ... 
    9 more than 7
    
    

    以上两个写法是等效的,但是,在实际的编程中,我们不用if bool(x>7)的格式,而是使用if x>7的样式,还要特别提醒,如果写成if (x>7),用一个括号把条件表达式括起来,是不是可以呢?可以,但也不是python提倡的。

    >>> if (x>7):       #不提倡这么写,这不是python风格
    ...     print "%d more than 7"%x
    ... 
    9 more than 7
    
    

    练习

    下面就做一个练习,要求是:

    1. 接收任何字符和数字的输入
    2. 判断输入的内容,如果不是整数是字符,就告诉给用户;如果是小数,也告诉用户
    3. 如果输入的是整数,判断这个整数是奇数还是偶数,并且告诉给用户

    在这个练习中,显然要对输入的内容进行判断,以下几点需要看官注意:

    • 通过raw_input()得到的输入内容,都是str类型
    • 要判断一个字符串是否是由纯粹数字组成,可以使用str.isdigit()(建议看官查看该内置函数官方文档)

    下面的代码是一个参考:

    #! /usr/bin/env python
    #coding:utf-8
    
    print "请输入字符串,然后按下回车键:"
    
    user_input = raw_input()
    
    result = user_input.isdigit()
    
    if not result:
        print "您输入的不完全是数字"
    
    elif int(user_input)%2==0:
        print "您输入的是一个偶数"
    elif int(user_input)%2!=0:
        print "您输入的是一个奇数"
    else:
        print "您没有输入什么呢吧"
    
    

    特别提醒列为,这个代码不是非常完善的,还有能够修改的地方,看官能否完善之?

    再来一个如何?

    已知一个由整数构成的list,从中跳出奇数和偶数,并且各放在一个list中。

    请看官在看下面的参考代码之前,自己写一写。

    #!/usr/bin/env python
    #coding:utf-8
    
    import random
    
    numbers = [random.randint(1,100) for i in range(20)] #以list解析的方式得到随机的list
    
    odd = []
    even = []
    
    for x in numbers:
        if x%2==0:
            even.append(x)
        else:
            odd.append(x)
    
    print numbers
    print "odd:",odd
    print "even:",even
    
    

    用这个例子演示一下if在list解析中的应用。看能不能继续改进一些呢?

    可以将循环的那部分用下面的list解析代替

    #!/usr/bin/env python
    #coding:utf-8
    
    import random
    
    numbers = [random.randint(1,100) for i in range(20)] #以list解析的方式得到随机的list
    
    odd = [x for x in numbers if x%2!=0]
    even = [x for x in numbers if x%2==0]
    
    print numbers
    print "odd:",odd
    print "even:",even
    
    

    一个有趣的赋值--三元操作符

    这里说的有趣赋值是什么样子的呢?请看:

    >>> name = "hiekay" if "hi" else "github"
    >>> name
    'hiekay'
    >>> name = 'hiekay' if "" else "python"
    >>> name
    'python'
    >>> name = "hiekay" if "github" else ""
    >>> name
    'hiekay'
    
    

    总结一下:A = Y if X else Z

    什么意思,结合前面的例子,可以看出:

    • 如果X为真,那么就执行A=Y

    • 如果X为假,就执行A=Z

     x = 2 y = 8 a = "python" if x>y else "hiekay" a 'hu' b = "python" if x<y else "hiekay" b 'python'
    

    相关文章

      网友评论

        本文标题:python if 语句

        本文链接:https://www.haomeiwen.com/subject/fqnmfqtx.html