码迷,mamicode.com
首页 > 编程语言 > 详细

python基础教程总结4—语句

时间:2015-07-14 19:47:56      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

一、print 和 import 的更多信息

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

  1. >>> print(‘Age:‘ , 42)  
  2. Age: 42  

   可以看到,每个参数之间都插入了一个空格符。如果想要同时输出文本和变量值,却又不希望使用字符串格式化的话,那这个特性就非常有用了。

   从模块导入函数的时候,可以使用

  1. import  somemodule  

        或者

  1. from  somemodule import  somefunction  

        或者

  1. from somemodule import somefunction, anotherfunction, yetanotherfunction 

        或者

  1. from somemodule import *  

 

        只有确定自己想要从给定的模块导入所有功能时,才应该使用最后一个版本。但是如果两个模块都有 open 函数,那又该怎么办?只需使用第一种方式导入,然后像下面这样使用函数:

  1. module1.open(...)  
  2. module2.open(...)  

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

  1. >>> import math as foobar  
  2. >>> foobar.sqrt(4)  
  3. 2.0  

         也可以为函数提供别名:

  1. >>> from math import sqrt as foobar  
  2. >>> foobar(4)  
  3. 2.0   

         对于open函数,可以像下面这样使用:

  1. from module1 import open as open1  
  2. from module2 import open as open2  

 

二、赋值

        1. 序列解包

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

 
  1. >>> x, y, z = 1, 2, 3  
  2. >>> print(x, y, z)  
  3. 3  

        用它交换两个(或更多个)变量:

  1. >>> x, y = y, x  
  2. >>> print(x, y, z)  
  3. 3  

        事实上,这里所做的事情叫做序列解包(sequence unpacking)或可选代解包——将多个值的序列解开,然后放到变量的序列中。当函数或者方法返回元组(或者其他序列或可选迭代对象)时,这个特性尤其有用。它允许函数返回一个以上的值并且打包成元组,然后通过一个赋值语句很容易进行访问。

 
  1. >>> scoundrel = {‘name‘:‘Robin‘, ‘girlfriend‘:‘Marion‘}  
  2. >>> key, value = scoundrel.popitem()  
  3. >>> key  
  4. ‘name‘  
  5. >>> value  
  6. ‘Robin‘  

        所解包的序列中元素数量必须和放置在赋值符号 = 左边的变量数量完全一致,否则 Python 会在赋值时引发异常:

 
  1. >>> x, y, z = 1, 2  
  2. Traceback (most recent call last):  
  3.   File "<stdin>", line 1, in <module>  
  4. ValueError: need more than 2 values to unpack  
  5. >>> x, y, z = 1, 2, 3, 4  
  6. Traceback (most recent call last):  
  7.   File "<stdin>", line 1, in <module>  
  8. ValueError: too many values to unpack (expected 3)  

        Python 3.0中有另外一个解包的特性:可以像在函数的参数列表中一样使用星号运算符。例如,a, b, *rest = [1, 2, 3, 4]最终会在 a 和 b 都被赋值之后将所有其他的参数都是收集到 rest 中。

 

2. 链式赋值

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

 

3. 增量赋值

        将表达式运算符(本例中是 + -) 放置在赋值运算符 = 的左边,写成 x +=1。这种写法叫做增量赋值。

 
  1. >>> x = 2  
  2. >>> x += 1  
  3. >>> x *= 2  
  4. >>> x  
  5. 6  

        对于其他数据类型也适用:

  1. >>> fnord = ‘foo‘  
  2. >>> fnord += ‘bar‘  
  3. >>> fnord *= 2  
  4. >>> fnord  
  5. ‘foobarfoobar‘  

 

三、语句块

        语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句。在代码前放置空格来缩进语句即可创建语句块。

        在Python中,冒号(:)用来标识语句块的开始,块中的每一个语句都是缩进的(缩进量相同)。当回退到和已经闭合的块一样的缩进量时,就表示当前块已经结束了。

 

四、条件和条件语句

        1. 布尔变量

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

                 False     None     0     “”     ()      []     {}

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

        布尔值True 和 False 属于布尔类型,bool函数可以用来(和list、str以及tuple一样)转换其他值。 

  1. >>> bool(‘I think, therefore I am‘)  
  2. True  
  3. >>> bool(42)  
  4. True  
  5. >>> bool(‘‘)  
  6. False  
  7. >>> bool(0)  
  8. False  

        因为所有值都可以用作布尔值,所以几乎不需要对他们进行显示转换(可以说Python会自动转换这些值)。

 

        2. 条件执行(if / else / elif)

 
  1. num = input(‘Enter a number: ‘)  
  2. if num > 0:  
  3.     print(‘The number is positive‘)  
  4. elif num < 0:  
  5.     print(‘The number is negative‘)  
  6. else:  
  7.     print(‘The number is zero‘)  


       3. 嵌套代码块

  1. name = raw_input(‘What is your name? ‘)  
  2. if name.endswith(‘Gumby‘):  
  3.     if name.startswith(‘Mr. ‘):  
  4.         print(‘Hello, Mr. Gumby‘)  
  5.     elif name.startswith(‘Mrs. ‘):  
  6.         print(‘Hello, Mrs. Gumby‘)  
  7.     else:  
  8.         print(‘Hello, Gumby‘)  
  9. else:  
  10.     print(‘Hello, stranger‘)  

 

       4. 更复杂的条

           4.1 比较运算符

 

表达式描述
x==y x 等于 y
x < y x 小于 y
x > y x 大于 y
x >= y x 大于等于 y
x <= y x 小于等于 y
x != y x 不等于 y
x is y x 和 y 是同一个对象
x is not y x 和 y 是不同的对象
x in y x 是 y 容器的成员
x not in y     x 不是 y 容器的成员

           在Python 3.0中,比较不兼容类型的对象已经不再可行。

 

           在Python中比较运算和赋值运算一样是可以连接的——几个运算符可以连在一起使用,比如:0 < age < 100。

           4.2 相等运算符

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

 

[python] view plaincopy技术分享技术分享
 
  1. >>> "foo"=="foo"  
  2. True  
  3. >>> "foo"=="bar"  
  4. False  

 

           4.3 is:同一性运算符

            is 运算符是判定同一性而不是相等性的。

 

[python] view plaincopy技术分享技术分享
 
  1. >>> x = y = [1, 2, 3]  
  2. >>> z = [1, 2, 3]  
  3. >>> x == y  
  4. True  
  5. >>> x == z  
  6. True  
  7. >>> x is y  
  8. True  
  9. >>> x is z  
  10. False  

           使用 == 运算符来判定两个对象是否相等,使用 is 判定两者是否等同(同一个对象)。

 

           4.4 in:成员资格运算符

           4.5 字符串和序列比较

           字符串可以按照字母顺序排列进行比较。

 

[python] view plaincopy技术分享技术分享
 
  1. >>> "alpha" < "beta"  
  2. True  

 

           其他的序列也可以用同样的方式进行比较,不过比较的不是字符而是元素的其他类型。

 

[python] view plaincopy技术分享技术分享
 
  1. >>> [1, 2] < [2, 1]  
  2. True  

 

           4.6 布尔运算符

           and , or 和 not 运算符就是所谓的布尔运算符。

       5. 断言

python基础教程总结4—语句

标签:

原文地址:http://www.cnblogs.com/zxqstrong/p/4646285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!