zoukankan      html  css  js  c++  java
  • 《Python基础教程》 读书笔记 第五章(上)条件语句

    5.1 print和import的更多信息

    5.1.1使用逗号输出

    打印多个表达式也是可行的,只要将它们用逗号隔开就好:

    >>>print'age:',42
    age: 42
    

      

    要同时输出文本和变量值,却又不希望使用字符串格式化:

    >>> name='Gumby'
    
    >>> salutation='Mr.'
    
    >>> greeting='Hello.'
    
    >>>print greeting,salutation,name
    
    Hello. Mr. Gumby
    

      

    如果在结尾处加上逗号,那么接下来的语句会与前一条语句在同一行打印:

    print 'Hello,',
    print 'world!'

    Hello, world!

    5.1.2 把某件事作为另一件事导入

    从模块导入函数:

    import somemodule

    from somemodule import somefunctian

    from somemodule import somefunction,anotherfunction,yetanotherfunction

    from somemodule import*

    可以在语句末尾增加一个as子句,在该子句后给出名字,或为整个模块提供别名:


    >>> import math as foobar
    
    >>> foobar.sqrt(4)
    
    2.0
    

      

    也可以为函数提供别名:

    >>> from math import sqrt as foobar
    
    >>> foobar(4)
    
    2.0
    

      

      

    5.2赋值

    5.2.1序列解包

    多个赋值操作可以同时进行:

    >>> x,y,z=1,2,3
    
    >>> print x,y,z
    
    1 2 3
    
    >>> x,y=y,x
    
    >>> print x,y,z
    
    2 1 3
    

      

    序列解包(sequence unpacking)或可选代解包--将多个值的序列解开,然后放到变量的序列中:

    >>> values=1,2,3
    
    >>> values
    
    (1, 2, 3)
    
    >>> x,y,z=values
    
    >>> x
    
    1
    

      

    当函数或者方法返回元组(或者其他序列或可迭代对象)时,这个特性尤其有用。假设需要获取(和删除)字典中任意的键-值对,可以使用popitem方法,这个方法将键-值作为元组返回。那么这个元组就可以直接赋值到两个变量中:


    >>> scoundrel={'name':'robin','girlfriend':'marion'}
    
    >>> key,value=scoundrel.popitem()
    
    >>> key
    
    'girlfriend'
    
    >>> value
    
    'marion'
    

      

    它允许函数返回一个以上的值并且打包成元组,然后通过一个赋值语句很容易进行访问。所解包的序列中的元素数量必须和放置在赋值符号=左边的变量数量完全一致,否则Python会在赋值时引发异常:


    >>> x,y,z=1,2
    
    Traceback (most recent call last):
    
    File "<input>", line 1, in <module>
    
    ValueError: need more than 2 values to unpack
    

      

    5.2.2链式赋值

    链式赋值(chained assignment)是将同一个值赋给多个变量的捷径。

    x=y=somefunction()

    和下面语句的效果是一样的:

    y=somefunction()

    x=y

    注意上面的语句和下面的语句不一定等价:

    x=somefunction()

    y=somefunction()

    5.2.3增量赋值

    这里没有将赋值表达式写为x=x+1,而是将表达式运算符放置在赋值运算符的左边,写成x+=1。这种写法叫做增量赋值(augmented assignment),对于*、/、%等标准运算符都适用.

    >>> x=2
    
    >>> x+=1
    
    >>> x*=2
    
    >>> x
    
    6
    

      

    5.3语句块:缩排的乐趣

    语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句。在代码前放置空格来缩进语句即可创建语句块。使用tab字符也可以缩进语句块。Python将一个tab字符解释为到下一个tab字符位置的移动,而一个tab字符位置为8个空格,但是标准且推荐的方式是只用空格,尤其是在每个缩进需要4个空格的时候。

    5.4条件和条件语句

    5.4.1这就是布尔变量的作用

    下面的值在作为布尔表达式的时候,会被解释器看作假(false}:

    False None 0 ”” () [] {}

    换句话说,也就是标准值False和None、所有类型的数字0(包括浮点型、长整型和其他类型)、空序列(比如空字符串、元组和列表)以及空的字典都为假。其他的一切都被解释为真,包括特殊值True.

    5.4.2 条件执行和if语句

    if语句,它可以实现条件执行。即如果条件 (在if和冒号之间的表达式)判定为真,那么后面的语句块就会被执行。如果条件为假,语句块就不会被执行.

    name=raw_input('what is your name?:')
    if name.endswith('jack'):
    print 'hello, Mr.jack'
    

      

    5.4.3 else子句


    name=raw_input('what is your name?:')
    if name.endswith('jack'):
    print 'hello, Mr.jack'
    else:
    print 'hello, stranger'
    

      

    5.4.4 elif子句

    如果需要检查多个条件,就可以使用elif,它是“else if的简写,也是if和else子句的联合使用----也就是具有条件的else子句。


    num=input('enter a number:')
    if num>0:
    print 'the number is positive'
    elif num<0:
    print 'the number is negtive'
    else:
    print 'the number is zero'
    

      

    5.4.5更复杂的条件

    1.比较运算符

    2.相等运算符

    如果想要知道两个东西是否相等,应该使用相等运算符,即两个等号==

    3. is:同一性运算符

    >>> x=y=[1,2,3]
    
    >>> z=[1,2,3]
    
    >>> x==y
    
    True
    
    >>> x==z
    
    True
    
    >>> x is y
    
    True
    
    >>> x is z
    
    False
    

      

    x和z相等却不等同,为什么呢?因为is运算符是判定同一性而不是相等性的。变量x和y都被绑定到同一个列表上,而变量z被绑定在另外一个具有相同数值和顺序的列表上。它们的值可能相等,但是却不是同一个对象。

    4.in:成员资格运算符

    5.字符串和序列比较

    6.布尔运算符

    5.4.7断言

    如果需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert语句就有用了,它可以在程序中置入检查点。

    >>> age=10
    
    >>> assert 0<age<100
    
    >>> age=-1
    
    >>> assert 0<age<100
    
    Traceback (most recent call last):
    
    File "<input>", line 1, in <module>
    
    AssertionError
    

      

  • 相关阅读:
    029- 位运算符
    028- 三目运算符
    027- 字符串链接运算符
    026- 布尔运算符
    lucene 结合数据库做搜索
    JDK 1.8判断集合种的元素是否存在相同
    Springboot 集成jpa使用
    json 的使用 Java对象转json
    Java 短信发送
    1 eclipse 离线安装activiti插件
  • 原文地址:https://www.cnblogs.com/jpld/p/4510743.html
Copyright © 2011-2022 走看看