`
songzhan
  • 浏览: 248862 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Python基础教程笔记——条件,循环和其他语句(转)

阅读更多

原文地址:http://www.cnblogs.com/moomu/archive/2011/11/23/2260766.html

条件,循环和其他语句

Table of Contents

1 print和import的更多信息

 

1.1 使用逗号输出

  1. 说明:使用print时,也可以在语句中添加多个表达式,每个表达式用逗 号分隔;
  2. 注意:在用逗号分隔输出时,print语句会在每个输出项后面自动添加一 个空格;
  3. 例子:
     1:  >>> greeting = 'Hello'
    
     2:  >>> salution = 'Mr.'
    
     3:  >>> name = 'Bill'
    
     4:  #以逗号分隔输出项
    
     5:  >>> print(greeting, salution, name)
    
     6:  Hello Mr. Bill
    
     7:  #在逗号前增加了一个空格符
    
     8:  >>> print(greeting, ',', salution, name)
    
     9:  Hello , Mr. Bill
    
    10:  #为了显示成'Hello, Mr. Bill'这个样式,可以使用连接符‘+’
    
    11:  >>> print(greeting + ',', salution, name)
    
    12:  Hello, Mr. Bill
    
    13:  >>>
    
    14:  
    
    

1.2 把一些东东作为另一些东东导入

  1. 说明:
    1. 将整个模块导入,格式为:import somemodule;
    2. 从某个模块中导入某个函数,格式为:from somemodule import somefunction;
    3. 从某个模块中导入多个函数,格式为:from somemodule import firstfunc, secondfunc, thirdfunc
    4. 将某个模块中的全部函数导入,格式为:from somemodule import *
  2. 注意:如果两个模块中都有相同的函数,则可以使用第一种方法导入模块, 也可以使用关键字 as为相同的函数取个别名,例子:
     1:  #第一种导入方法
    
     2:  #导入模块
    
     3:  import module1
    
     4:  import module2
    
     5:  #调用同名函数的方法
    
     6:  module1.open()
    
     7:  module2.open()
    
     8:  
    
     9:  #第二种导入方法
    
    10:  #导入函数,并给函数取相应的别名
    
    11:  from module1 import open as open1
    
    12:  from module2 import open as open2
    
    13:  
    
    
  3. 例子:
     1:  #从math中导入sqrt
    
     2:  >>> from math import sqrt as msqrt
    
     3:  #从cmath中导入sqrt
    
     4:  >>> from cmath import sqrt as csqrt
    
     5:  >>> msqrt(100)
    
     6:  10.0
    
     7:  >>> csqrt(-1)
    
     8:  1j
    
     9:  >>>
    
    10:  
    
    

2 赋值魔法

 

2.1 序列解包

  1. 说明:多个赋值操作可以同时进行
  2. 例子:
     1:  #一般的同时赋值操作
    
     2:  >>> x, y, z = (1,2,3)
    
     3:  >>> x
    
     4:  1
    
     5:  >>> y
    
     6:  2
    
     7:  >>> z
    
     8:  3
    
     9:  >>>
    
    10:  
    
    11:  #从字典中弹出任意一对儿键值对儿,并赋值给两个变量
    
    12:  >>> people = {'first': 'Andy', 'second':'Bill'}
    
    13:  >>> key, value = people.popitem()
    
    14:  >>> key
    
    15:  'second'
    
    16:  >>> value
    
    17:  'Bill'
    
    18:  >>>
    
    19:  
    
    

2.2 链式赋值

  1. 说明:同时将一个值赋给多个变量;
  2. 例子:
     1:  #链式赋值
    
     2:  >>> x=y=z=1
    
     3:  >>> x
    
     4:  1
    
     5:  >>> y
    
     6:  1
    
     7:  >>> z
    
     8:  1
    
     9:  >>>
    
    10:  
    
    

2.3 增量赋值

  1. 说明:包括以下增量操作:
    1. +=:将右侧的值加到变量上的和,然后再赋值给变量;
    2. -=:将变量减去右侧的值得到的差,再赋值给变量;
    3. /=:用变量除以右侧值得到的商,再赋值给变量;
    4. %=:用变量取右侧值的余数,再赋值给变量;
  2. 注意: +=\*= 还可以应用在字符串上,见下面的示例;
  3. 例子:
     1:  #针对数字的各种操作
    
     2:  >>> x = 123
    
     3:  >>> x += 1
    
     4:  >>> x
    
     5:  124
    
     6:  >>> x -= 4
    
     7:  >>> x
    
     8:  120
    
     9:  >>> x *=2
    
    10:  >>> x
    
    11:  240
    
    12:  >>> x /=3
    
    13:  >>> x
    
    14:  80.0
    
    15:  >>> x %=9
    
    16:  >>> x
    
    17:  8.0
    
    18:  >>>
    
    19:  
    
    20:  #字符串的增量赋值
    
    21:  >>> y = 'Test string'
    
    22:  >>> y += ', haha!'
    
    23:  >>> y
    
    24:  'Test string, haha!'
    
    25:  >>> y *= 2
    
    26:  >>> y
    
    27:  'Test string, haha!Test string, haha!'
    
    28:  >>>
    
    29:  
    
    

3 语句块:缩排的乐趣

  1. 说明:语句块是一组语句,在代码前放置空格来缩进语句即可创建语句 块;

4 条件和条件语句

 

4.1 这就是布尔变量的作用

  1. 说明:布尔值,
    1. 假值:false,None,所有类型的数字0,空序列,空字典;
    2. 真值:所有的非空值;
    3. bool函数可以用来将其他值转换成布尔值;
  2. 注意:尽管假值具有不同的类型,但是不同的假值之前也是 不相等
  3. 例子:
     1:  >>> True
    
     2:  True
    
     3:  >>> False
    
     4:  False
    
     5:  >>> []
    
     6:  []
    
     7:  >>> bool ([])
    
     8:  False
    
     9:  >>> bool ([1,])
    
    10:  True
    
    11:  >>> bool (0)
    
    12:  False
    
    13:  >>> bool (0.0)
    
    14:  False
    
    15:  >>> bool (0.1)
    
    16:  True
    
    17:  #不同的假值之间也是不相同的
    
    18:  >>> [] == {}
    
    19:  False
    
    20:  >>> [] == None
    
    21:  False
    
    22:  >>>
    
    23:  
    
    

4.2 条件执行和if语句

  1. 说明:if 判断其后面的条件语句是否为真,如果为真,执行if后面的语句 块,否则不执行;

4.3 else子句

  1. 说明:之所以称为子句是因为else必须跟在if语句后面,而不能单独使用;

4.4 elif子句

  1. 说明:如果需要更多的判断,可以使用elif,判断更多的条件;
  2. 例子:
     1:  #if, elif, else应用
    
     2:  num = input("Please enter a number:")
    
     3:  num = int(num)
    
     4:  if num > 0:
    
     5:          print ('You input a positive number!')
    
     6:  elif num < 0:
    
     7:          print ('You input a negative number!')
    
     8:  else:
    
     9:      print ('You input a zero!')
    
    10:  
    
    

4.5 嵌套代码块

  1. 说明:在if判断后,还需要进一步进行判断就可以使用嵌套代码的方式。
  2. 例子:
     1:  key = input("Please select type, color(c) or number(n):")
    
     2:  if key == 'c':
    
     3:      color = input ("Please select a color, Red(r), Green(g), Blue(b):")
    
     4:      if color == 'r':
    
     5:          print('You selected red')
    
     6:      elif color == 'g':
    
     7:          print('You selected green')
    
     8:      elif color == 'b':
    
     9:          print('You selected blue')
    
    10:      else:
    
    11:          print("Illegal color type!")
    
    12:  else:
    
    13:      print ("You select number!")
    
    14:  
    
    

4.6 更复杂的条件

 

4.6.1 比较运算符

  1. 说明:
    1. x==y: 等于;
    2. x<y:  小于;
    3. x>y: 大于;
    4. x<=y: 小于等于;
    5. x>=y: 大于等于;
    6. x!=y: 不等于;
    7. x is y:x和y是同一对象;
    8. x is not y:x和y不是同一对象;
    9. x in y: x在y中;
    10. x not in y: x不在y中;
  2. 注意:
    1. 比较运算符是可连接的,例如:14 < age < 26;
    2. 比较运算符不能比较不同类型的数据;

4.6.2 相等运算符

  1. 说明:用来判断两个数据是否相等;

4.6.3 同一性运算符

  1. 说明:用于判断两个变量是否指向同一对象;
  2. 注意:避免把 is 比较运算符应用于比较常量值,如数字,字符串等。 即 避免以下比较:
    1:  if '123' is '123':
    
    

4.6.4 成员资格运算符

  1. 说明:判断元素是否被包含在对象中;

4.6.5 字符串和序列比较

  1. 说明:字符串可以按照字母顺序排列进行比较;

4.6.6 布尔运算符

  1. 说明:包括,and, or, not
  2. 例子:
     1:  #or的特殊用法,如果没有输入,则会返回or后面的值
    
     2:  >>> name = input("Please enter a name:") or '<unknown>'
    
     3:  Please enter a name:
    
     4:  >>> name
    
     5:  '<unknown>'
    
     6:  
    
     7:  >>> a = 'a'
    
     8:  >>> c = 'c'
    
     9:  #如果if后面的判断语句为真,返回a
    
    10:  >>> a if True else c
    
    11:  'a'
    
    12:  #如果if后面的判断语句为假,返回c
    
    13:  >>> a if False else c
    
    14:  'c'
    
    15:  >>>
    
    16:  
    
    

4.7 断言

  1. 说明:关键字为 assert , 如果断言的条件判断为假,则程序直接崩溃
  2. 例子:
     1:  >>> age = 10
    
     2:  >>> assert 1<age<120, "Age must be realistic"
    
     3:  >>> age = -1
    
     4:  >>> assert 1<age<120, "Age must be realistic"
    
     5:  Traceback (most recent call last):
    
     6:    File "<pyshell#26>", line 1, in <module>
    
     7:      assert 1<age<120, "Age must be realistic"
    
     8:  AssertionError: Age must be realistic
    
     9:  >>>
    
    10:  
    
    

5 循环

 

5.1 while循环

  1. 说明:关键字 while ,判断条件为真就一直执行
  2. 例子:
    1:  name = ''
    
    2:  while not name.strip():
    
    3:      name = input("Please input your name:")
    
    4:  print("Hello,", name)
    
    

5.2 for循环

  1. 说明:可以用于迭代集合中的每个元素;
  2. 例子:
     1:  #遍历列表中的各个元素
    
     2:  >>> x = [1,2,3,4,5]
    
     3:  >>> for number in x:
    
     4:          print (number)
    
     5:  1
    
     6:  2
    
     7:  3
    
     8:  4
    
     9:  5
    
    10:  >>> 
    
    11:  
    
    12:  #使用内建函数range
    
    13:  >>> x = range(10)
    
    14:  >>> x
    
    15:  range(0, 10)
    
    16:  >>> for number in x:
    
    17:          print(number)
    
    18:  0
    
    19:  1
    
    20:  2
    
    21:  3
    
    22:  4
    
    23:  5
    
    24:  6
    
    25:  7
    
    26:  8
    
    27:  9
    
    28:  >>> 
    
    29:  
    
    

5.3 循环遍历字典元素

  1. 说明:通过keys遍历字典,或者通过values;
  2. 例子:
    1:  x = {'a':'1', 'b':'2', 'c':'3'}
    
    2:  for key in x.keys():
    
    3:      print (key, x[key])
    
    4:  
    
    5:  for val in x.values():
    
    6:      print(val)
    
    7:  
    
    

5.4 一些迭代工具

 

5.4.1 并行迭代

  1. 说明:zip内置函数可以将多个序列“压缩”成一个元组的序列;
  2. 例子:
     1:  >>> x = list(range(0,5))
    
     2:  >>> y = list(range(5,10))
    
     3:  >>> z = list(range(10, 15))
    
     4:  >>> z
    
     5:  [10, 11, 12, 13, 14]
    
     6:  >>> y
    
     7:  [5, 6, 7, 8, 9]
    
     8:  >>> x
    
     9:  [0, 1, 2, 3, 4]
    
    10:  
    
    11:  >>> zipped = zip(x, y, z)
    
    12:  >>> list(zipped)
    
    13:  [(0, 5, 10), (1, 6, 11), (2, 7, 12), (3, 8, 13), (4, 9, 14)]
    
    14:  >>> 
    
    15:  
    
    

5.4.2 编号迭代

  1. 说明:使用内建函数enumerate来进行迭代操作;
  2. 例子:
     1:  >>> mylist = ['12312', '12ab', '123sa', '1231s']
    
     2:  >>> for index, string in enumerate(mylist):
    
     3:          print(index, string)
    
     4:  
    
     5:  
    
     6:  0 12312
    
     7:  1 12ab
    
     8:  2 123sa
    
     9:  3 1231s
    
    10:  >>> 
    
    11:  
    
    

5.4.3 翻转和排序迭代

  1. 说明:内建函数reversed用于翻转序列,内建函数sorted用于对序列排 序,他们都是返回操作后的序列,不对原序列进行修改;
  2. 例子:
    1:  >>> data = [1,67,1,13,14,61,2]
    
    2:  >>> sorted(data)
    
    3:  [1, 1, 2, 13, 14, 61, 67]
    
    4:  >>> list(reversed(data))
    
    5:  [2, 61, 14, 13, 1, 67, 1]
    
    6:  >>> 
    
    7:  
    
    

5.5 跳出循环

 

5.5.1 break

  1. 说明:符合条件时直接中断循环;
  2. 例子:
    1:  >>> import math
    
    2:  >>>for x in range(99, 0, -1):
    
    3:  >>>    root = math.sqrt(x)
    
    4:  >>>    if root == int(root):
    
    5:  >>>        print ('Max number is:', x)
    
    6:  >>>        break
    
    7:  
    
    8:  Max number is 81
    
    9:  
    
    

5.5.2 continue

  1. 说明:结束当前循环,并跳到下一轮循环开始;
  2. 例子:
     1:  #一个打印偶数的例子,不加else 语句,程序也能正确执行
    
     2:  >>> for x in range(10):
    
     3:          if x%2 == 0:
    
     4:                  print(x)
    
     5:          else:
    
     6:                  continue
    
     7:  
    
     8:  
    
     9:  0
    
    10:  2
    
    11:  4
    
    12:  6
    
    13:  8
    
    14:  >>> 
    
    15:  
    
    

5.5.3 while True/break

  1. 说明:while True部分实现了一个永不停止的循环,由内部的if判断语 句控制跳出循环;
  2. 例子:
     1:  while True:
    
     2:          word = input("Please enter a word:")
    
     3:          if not word:
    
     4:                  break
    
     5:          print("You input:" , word)
    
     6:  
    
     7:  Please enter a word:TEst
    
     8:  You input: TEst
    
     9:  Please enter a word:ls
    
    10:  You input: ls
    
    11:  Please enter a word:
    
    12:  >>> 
    
    13:  
    
    

5.5.4 循环中的else子句

  1. 说明:else子句可以用于判断循环操作是否始终没有执行break操作。
  2. 例子:
     1:   #设置一个奇数序列,判断里面是不是有偶数(一个蛋疼的程序,哈哈)
    
     2:  x = list(range(1,100,2))
    
     3:  for val in x:
    
     4:      if val%2 == 0:
    
     5:          print (x)
    
     6:          break;
    
     7:  else:
    
     8:      print("Did not break!")
    
     9:  #执行结果
    
    10:  Did not break!
    
    11:  
    
    

6 列表推导式

  1. 说明:利用其他列表创建列表,利用for循环遍历序列,将元素执行相应的 操作;
  2. 例子:
    1:  #得到10以内数字的平方的列表
    
    2:  import math
    
    3:  mylist = [math.pow(x, 2) for x in list(range(0,10))]
    
    4:  print (mylist)
    
    5:  
    
    6:  #得到10以内偶数的平方的列表
    
    7:  mylist = [math.pow(x, 2) for x in list(range(0,10)) if x % 2 == 0]
    
    8:  print (mylist)
    
    9:  
    
    

7 三人行

 

7.1 pass

  1. 说明:pass关键字用于占位,当函数或者代码块还没有添加时,可以用 pass来占位,以免语法错误
  2. 例子
    1:  >>> a = 10
    
    2:  #if的语句块中并没有其他语句需要执行,先用pass占位,执行的时候,如果if判断为真直接跳过。
    
    3:  >>> if a>0:
    
    4:          pass
    
    5:  >>> 
    
    

7.2 del

  1. 说明:用于删除对象;
  2. 注意:del仅能删除变量或者对象中的项,不能直接删除变量指向的对象, 当对象没有被任何变量引用时,python会将变量回收;
  3. 例子:
     1:  >>> x = {'a':'1', 'b':'2', 'c':'3'}
    
     2:  >>> y = x
    
     3:  >>> y
    
     4:  {'a': '1', 'c': '3', 'b': '2'}
    
     5:  #删除变量x,再调用会报“未定义”的错误
    
     6:  >>> del x
    
     7:  >>> x
    
     8:  Traceback (most recent call last):
    
     9:    File "<pyshell#15>", line 1, in <module>
    
    10:      x
    
    11:  NameError: name 'x' is not defined
    
    12:  >>> y
    
    13:  {'a': '1', 'c': '3', 'b': '2'}
    
    14:  #删除字典中的项
    
    15:  >>> del y['a']
    
    16:  >>> y
    
    17:  {'c': '3', 'b': '2'}
    
    18:  >>> 
    
    19:  
    
    

7.3 exec和eval

  1. 说明:
    1. exec用于执行一个字符串的语句;
    2. eval用于执行字符串语句,并返回语句执行的结果;
  2. 注意:通过增加字典,起到命名空间的作用,以防止由字符串的语句导致 的安全问题;
  3. 例子
     1:  #exec直接执行语句
    
     2:  >>> exec('print("Hello, world!")')
    
     3:  Hello, world!
    
     4:  #exec执行后不返回执行结果
    
     5:  >>> exec("2*2")
    
     6:  >>>
    
     7:  #exec在命名空间中执行语句
    
     8:  >>> exec("""
    
     9:  x=2
    
    10:  y=3
    
    11:  z=4
    
    12:  """, scope)
    
    13:  >>> scope.keys()
    
    14:  dict_keys(['__builtins__', 'x', 'z', 'y'])
    
    15:  >>> scope['x']
    
    16:  2
    
    17:  >>> 
    
    18:  
    
    19:  #eval直接执行语句
    
    20:  >>> eval('print("Hello, world!")')
    
    21:  Hello, world!
    
    22:  #eval在执行后将执行结果返回
    
    23:  >>> eval('2*2')
    
    24:  4
    
    25:  >>> 
    
    26:  #eval操作字典中的数据
    
    27:  >>> scope.keys()
    
    28:  dict_keys(['__builtins__', 'x', 'z', 'y'])
    
    29:  >>> eval('x+y+z', scope)
    
    30:  9
    
    31:  >>> 
    
    32:  
    
    

Date: 2011-11-23 20:40:47

Author:

Org version 7.7 with Emacs version 23

 
分享到:
评论

相关推荐

    知识笔记:python循环语句(三)

    内容概要:本文详细解析了Python中的两种基本循环语句 —— while循环和for循环的使用方法。具体介绍了它们各自的定义格式、用例、以及range函数的使用来创建数值序列的方法,还讲解了循环中的continue和break关键字...

    python基础教程-学习笔记.zip

    这份“Python基础教程——学习笔记”涵盖了Python编程的基础知识,旨在帮助初学者快速入门。 1. **变量与数据类型** Python中的变量无需预先声明,可以直接赋值。支持的数据类型包括整型(int)、浮点型(float)...

    Python进阶必备——HiKari为了拿捏Python整理的技术笔记

    本技术笔记专为有一定Python研发经验的开发者设计,旨在通过源码分析揭示Python的基础库和CPython的运行原理。 在第一章“数据对象与语言特性”中,我们将探讨以下关键知识点: 1. **列表(List)与元组(Tuple)...

    Python学习笔记.pdf

    **标题与描述解析:** "Python学习笔记.pdf" 的标题直接指出了文档的主题——Python的学习资料,而描述的重复表明该文档的主要内容即为Python的学习笔记。标签 "Python" 进一步强调了主题。 **知识点:** 1. **...

    python入门笔记-李金(强烈推荐).zip

    初学者应首先掌握Python的基本语法,包括变量定义、数据类型(如整型、浮点型、字符串、布尔型和NoneType)、操作符(算术、比较和逻辑操作符)以及流程控制(条件语句、循环语句如for和while)。 **2. Python的...

    《全国计算机等级考试二级教程——Python语言》(年版)学习笔记.zip

    此外,学习流程控制结构,如条件语句(if-else)和循环(for、while),以及函数的定义与调用,是进阶Python编程的基础。 【Python语法特性】 Python的语法简洁明了,使用缩进来表示代码块。这要求程序员有良好的...

    全套百度云教程:python基础+进阶+项目篇 (含Django和Tornado)

    ### 知识点详解 #### 一、Python基础 Python是一种高级编程语言,以...以上就是“全套百度云教程:python基础+进阶+项目篇 (含Django和Tornado)”的主要知识点概述。希望对您学习Python及相关的Web开发技术有所帮助。

    Python 综合练习-教程与笔记习题

    在提供的压缩包文件"Python 综合练习.pdf"中,可能会包含更多类似的练习题和详细的解答,帮助你巩固这些概念,并扩展到其他Python编程知识,如条件语句、循环、函数、模块等。通过不断练习,你的Python编程技能将...

    Administrator_lianxi_machinelearning_

    Python.ipynb可能包含了Python语法、控制流(条件语句、循环)、函数定义、类和对象等概念的复习。掌握这些将有助于你理解和编写机器学习模型的代码。 4. **gensim**: gensim是一个用于处理文本数据的库,尤其擅长...

    publication_procedures:适用于ECRL出版物的Python脚本笔记本

    1. **Python基础**:Python的基本语法,如变量、数据类型、控制流语句(条件、循环)、函数定义以及模块导入。 2. **数据处理**:使用Pandas库进行数据清洗、转换、合并和筛选,处理常见的数据格式如CSV、Excel或...

    spwlaunisc_PyAppliedOG:Python源代码和笔记本,以便将此编程语言引入国立工程大学的石油和天然气工程

    1. Python基础知识:变量、数据类型、控制流(条件语句、循环)、函数和模块的使用。 2. 数据处理:使用Pandas库进行数据读取、清洗、合并、切片和统计分析。 3. 数学和科学计算:NumPy库的使用,包括矩阵运算、线性...

    curso-python:curso初始python和django

    1. **基础语法**:Python的基础包括变量赋值、数据类型(整型、浮点型、字符串、布尔型、列表、元组、字典、集合)、流程控制(条件语句、循环语句、异常处理)。 2. **函数与模块**:函数是组织代码的基本单位,...

    scrimba-python:带有Scrimba的Python 101 https:scrimba.comlearnpython

    2. **控制流**:包括条件语句(if-else)、循环(for、while)、以及异常处理(try-except)。 3. **函数**:如何定义和调用函数,理解参数传递机制,以及使用*args和**kwargs来处理可变数量的参数。 4. **模块...

    Python_06

    3. **控制流**:包括条件语句(if-else)、循环(for、while)。 4. **函数(Functions)**:自定义函数使用`def`关键字,如`def add(a, b): return a + b`。 5. **模块(Modules)**:Python有丰富的标准库,如`...

    CS50-Homeork:CS50 1st Scratch家庭作业

    这些作业通常会涉及条件语句(如if-else)、循环(如forever和repeat)、事件处理、变量、函数以及对象的概念。 在【CS50-Homeork-master】这个压缩包中,可能包含以下内容: 1. 项目文件:每个作业可能都有一个或...

Global site tag (gtag.js) - Google Analytics