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
    

      

  • 相关阅读:
    Asp.NET 4.0 ajax实例DataView 模板编程1
    ASP.NET 4.0 Ajax 实例DataView模板编程 DEMO 下载
    部分东北话、北京话
    .NET 培训课程解析(一)
    ASP.NET 4.0 Ajax 实例DataView模板编程2
    ASP.NET Web Game 架构设计1服务器基本结构
    ASP.NET Web Game 构架设计2数据库设计
    TFS2008 基本安装
    Linux上Oracle 11g安装步骤图解
    plsql developer远程连接oracle数据库
  • 原文地址:https://www.cnblogs.com/jpld/p/4510743.html
Copyright © 2011-2022 走看看