• 《Python 第五章》条件,循环和其他语句


    (print, import, 赋值语句)
          pass, del, exec语句的用法。
     有些自以为已经掌握的知识点,还隐藏着一些让人惊讶的特性。
    * 使用逗号输出 *
    >>> 1, 2, 3
    (1, 2, 3)
    >>> print 1, 2, 3   # print 参数并不能像我们预期那样构成一个元组
    1 2 3
    >>> print (1, 2, 3)
    (1, 2, 3)
    >>> 'age', 42
    ('age', 42)
    >>> name = 'Gumby'
    >>> mr = 'Mr'
    >>> greeting = 'Hello'
    >>> print name, mr, greeting
    Gumby Mr Hello
    >>> import math as abc  #别名
    >>> abc.sqrt(4)
    2.0
    >>> from math import sqrt as bcd # 为函数提供别名
    >>> bcd(4)
    2.0
    # 序列解包
    >>> x, y, z = 1, 2, 3
    >>> print x, y, z
    1 2 3
    >>> x, y = y, x
    >>> print x, y, z
    2 1 3
    >>> 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'

    * 链式赋值 *

    x = y = somefunction()
    * 增量赋值 *
    >>> x = 2
    >>> x += 1
    >>> x *= 2
    >>> x
    6
    >>> fnord = 'foo'
    >>> fnord += 'bar'
    >>> fnord *= 2
    >>> fnord
    'foobarfoobar'
    * 语句块 : 缩排的乐趣 *
    在 Python中,冒号 (:) 用来标识语句块的开始
    * 条件和条件语句 布尔值*
    下面的值在作为布尔表达式的时候,会被解释器看作假 (false)
     False, None, 0, "", (), [], {}
    >>> bool("")
    False
    >>> bool(42)
    True
     if 的使用
    num = input('Enter a number : ')
    if num > 0:
        print 'positive'
    elif num < 0:
        print 'negative'
    else :
        print 'zero'
    更复杂的条件
     *1, 比较运算符 x == y, x <= y, x is y, x is not y, x in y, x not in y
    在Python中比较运算和赋值运算一样是可以连接的。
    a if b else c
    * 断言 *
    >>> age = 10
    >>> assert 0 < age < 100
    >>> assert 0 < age < 10
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AssertionError,
     * while 循环 *
    ---while1.py---
    x = 1
    while x <= 100:
        print x
        x += 1
    ---while2.py ---
    name = ''
    while not name.strip():
        name = raw_input('Please enter your name: ')
    print 'Hello, %s!' % name
     * for 循环 * 比while更简洁,应该尽量多用!
    >>> numbers = range(10)
    >>> for i in numbers : print i
     * 循环遍历字典元素 *
    >>> d = {'x' : 1, 'y' : 2, 'z' : 3}
    >>> for key in d : print key, 'corresponds to', d[key]
    ... 
    y corresponds to 2
    x corresponds to 1
    z corresponds to 3
    >>> for key, value in d.items(): print key, 'corresponds to', value
    ... 
    y corresponds to 2
    x corresponds to 1
    z corresponds to 3
     * 一些迭代工具 *
    (1) 并行迭代
    >>> names = ['anne', 'beth', 'george', 'damon']
    >>> ages = [12, 45, 32, 102]
    >>> for i in range(len(name)): print names[i], ages[i]
    anne 12
    beth 45
    george 32
    damon 102
    >>> zip(names , ages)
    [('anne', 12), ('beth', 45), ('george', 32), ('damon', 102)]
    >>> for name, age in zip(name, ages): print name, age
    anne 12
    beth 45
    george 32
    damon 102
     (2) 编号迭代
    for index, string in enumerate(strings):
    	if 'xxx' in string:
    		strings[index] = '[censored]'
    这个函数可以在提供索引的地方迭代索引-值对
     (3) 翻转和排序迭代
    >>> sorted([4,3, 6, 2, 6, 3, 8])
    [2, 3, 3, 4, 6, 6, 8]
    >>> sorted('Hello, world')
    [' ', ',', 'H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
    >>> list(reversed('Hello,world'))
    ['d', 'l', 'r', 'o', 'w', ',', 'o', 'l', 'l', 'e', 'H']
    >>> ''.join(reversed('Hello,world'))
    'dlrow,olleH'










  • 相关阅读:
    远程安装WinXP OEM版系统的痛苦经历
    许可证服务因许可证不够出现占用CPU的故障
    AvayaP133G2和3Com 3300交换机间的Vlan连接
    从win2000升级到win2003后ISA2000缓存的问题
    大型局域网中用ISA隔离部分计算机
    ORACLE学习第二天
    ORACLE ROWID解析
    ORA32773问题解决
    ORACLE学习第三天
    ORACLE表空间迁移
  • 原文地址:https://www.cnblogs.com/robbychan/p/3787215.html
Copyright © 2020-2023  润新知