zoukankan      html  css  js  c++  java
  • 《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'










  • 相关阅读:
    iOS 苹果开发证书失效的解决方案(Failed to locate or generate matching signing assets)
    iOS NSArray数组过滤
    App Store2016年最新审核规则
    iOS 根据字符串数目,自定义Label等控件的高度
    iOS 证书Bug The identity used to sign the executable is no longer valid 解决方案
    Entity FrameWork 增删查改的本质
    EF容器---代理类对象
    Entity FrameWork 延迟加载本质(二)
    Entity FrameWork 延迟加载的本质(一)
    Entity FrameWork 增删查改
  • 原文地址:https://www.cnblogs.com/robbychan/p/3787215.html
Copyright © 2011-2022 走看看