• 读书笔记--Python基础教程 001


    name = raw_input('please enter your name: ') or '<unknown>'

    换句话说,如果raw_input语句的返回值为真(不是空字符串),那么他的值就会赋给name,否则将默认的‘<unknown>’赋值给name。

    这类短路逻辑可以用来实现C和Java中所谓的‘三元运算符’(或条件运算符)。

    a if b else c

    如果b为真,返回a,否则,返回c。(注意,这个运算符不用引入临时变量,就可以直接使用,从而得到与raw_input例子中同样的结果。)

    while 循环

    name = ''

    while not name:  #改为while not name.strip(): 是不是更合理呢?!

      name = raw_input('please enter your name: ')

    print 'Hello, %s!' %name

    这个简单的while循环,让输入name,但是没有考虑到name 是空格的情况,是空格了虽然不报错,你也不知道名字啊啊啊啊,嘿嘿

    for 循环

    words = ['this', 'is', 'an', 'ex', 'parrot']

    for word in words:

      print word

    因为迭代(循环的另外一种说法)某范围的数字是常见的,所以有个内建的范围函数供使用:

    >>> range(0,10)  #话说此函数又下限(即0),但不包含上限()

    [0,1,2,3,4,5,6,7,8,9]

    _____________________________________________________

    提示:如果能使用for循环,就尽量不要使用while 循环。

    当然还有个xrange 函数,当迭代一个巨大的序列时 xrange函数 会更高效,不过一般就算了。

    一些迭代工具:

    并行迭代

    names = ['anne', 'beth', 'george', 'damon']

    ages = [12, 34,23,103]

    如果想打印名字和对应的年龄,可以向下面这样做:

    for i in range(len(names)):

      print names[i], 'is', ages[i], 'years old'

    而内建的 zip 函数就可以用来进行并行迭代,可以把两个序列‘压缩’在一起,然后返回一个元组的列表:

    >>>zip(names, ages)

    [('anne', 12), ('beth', 34), ('george', 23), ('damon', 103)]

    现在我可以在循环中解包元组:

    for name, age in zip(names, ages):

      print name , 'is', age, 'years old'

    zip 函数也可以作用于任意多的序列。 关于它很重要的一点是zip可以处理不等长的序列,当最短的序列 “用完” 的时候就会停止。

    for example #(容我卖弄风骚一下,呵呵)

    >>>zip(range(5), xrange(10000000))

    [(0,0), (1,1), (2,2), (3,3), (4,4)]

    在上面的代码中,不推荐使用range 替换xrange ——尽管只需要前5个数字, 但是range会计算所有的数字,这要花费很长的时间。

    而使用xrange就没有这个问题了,它只计算前5个数字。

    for index, string in enumerate(strings):

      if 'xxx' in string:

        string[index] = '[censored]'

    enumerate这个函数可以在提供索引的地方迭代 “索引-值” 对。

    循环中的else子句

    from math import sqrt

    for n in range(99,81, -1):

      root = sqrt(n)

      if root == int(root):

        print n

        break

    else:

      print 'Didnt find it !'

    列表推导式——轻量级循环

    列表推导式(list comprehension)是利用其它列表创建新列表(类似数学术语中的集合推导式)的一种方法。

    >>>[x*x for x in range(10)]

    [0,1,4,9,16,25,36,49,64,81]

    >>>[x*x for x in range(10) if x%3 == 0 ]

    [0,9,36,81]

    也可以增加更多for 语句的部分:

    >>>[(x,y) for x in range(3) for y in range(3)]

    [(0,0), (0,1), (0,2), (1,0), (1,1), ……]

    作为对比,下面的代码使用两个for 语句创建了相同的列表:

    result = []

    for x in range(3):

      for y in range(3):

        result.append((x,y))

    pass、del、exec

  • 相关阅读:
    学习笔记(5)——实验室集群LVS监控Web界面配置
    学习笔记(4)——实验室集群管理结点IP配置
    Java中List集合去除重复数据的方法
    Android App内部自动更新Library的使用(转载)
    AppBarLayout+TabLayout+RecyclerView+ViewPager+Fragment(布局悬浮)
    126、android html唤醒APP(转载)
    第三方免费加固横向对比(转载)
    124、@JavascriptInterface
    123、 android Retrofit 介绍和使用(转载)
    win10专业版激活步骤
  • 原文地址:https://www.cnblogs.com/yes5144/p/6883053.html
Copyright © 2020-2023  润新知