zoukankan      html  css  js  c++  java
  • 第四章 Python外壳:代码结构

    Python的独特语法:

    • 不使用分号结束语句,而是回车;
    • 通过代码缩进来区分代码块;
    • if、while、for等,都不用括号,但不能没有冒号(:)。

    如何将一行命令分为多行?

    >>> myNameIs = "Li
    Zhi
    Xin.
    "
    >>> myNameIs
    'LiZhiXin.'

    4.1 条件语句和循环语句

    如何使用if、elif和else进行比较?

    >>> a = 1
    >>> if a < 2:
        print ("yes")
    elif a > 2:
        print ("no")
    else:
        print ("chaos")
    
        
    yes

    如何连接条件表达式?

    python中没有!、&& 和 || 运算符,分别用 not、and 和 or代替。

    >>> not 1
    False
    >>> 5 < 6 and 1 < 2
    True
    >>> 5 < 6 or 1 > 2
    True

    python中有哪些假值?

    >>> False
    False
    >>> None
    >>> 0
    0
    >>> 0.0
    0.0
    >>> ''
    ''
    >>> []
    []
    >>> ()
    ()
    >>> {}
    {}
    >>> set()
    set()

    如何使用while进行循环?

    >>> count = 1
    >>> while count <= 5:
        print(count)
        count += 1
    
        
    1
    2
    3
    4
    5

    如何跳出循环?

    >>> while True:
        stuff = input("string to calpitalize [type q to quit]:")
        if stuff == 'q':
            break
        print(stuff.capitalize())
    
        
    string to calpitalize [type q to quit]:li zhi xin
    Li zhi xin
    string to calpitalize [type q to quit]:q
    >>>

    如何跳到循环开始(用于跳过特定条件的循环)?

    >>> while True:
        value = input("Interger, please [q to quit]: ")
        if value == 'q':
            break
        number = int(value)
        if number % 2 == 0:
            continue
        print(number, "squared is ", number*number)
    
        
    Interger, please [q to quit]: 1
    1 squared is  1
    Interger, please [q to quit]: 2
    Interger, please [q to quit]: 3
    3 squared is  9
    Interger, please [q to quit]: 4
    Interger, please [q to quit]: q

    循环外的else是如何使用的?

    >>> numbers = [1,3,5]
    >>> position = 0
    >>> while position < len(numbers):
        number = numbers[position]
        if number % 2 == 0:
            print('Found even number', number)
            break
        position += 1
    else:
        print("No even number found.")
    
        
    No even number found.

    *如何使用for进行迭代(很独特)?

    python中的for很牛逼,可以在数据结构和具体实现未知的情况下,遍历整个数据结构:

    >>> rabbits = ['a', 'b', 'c', 'd']
    >>> current = 0
    >>> while current < len(rabbits):
        print(rabbits[current])
        current += 1
    
        
    a
    b
    c
    d
    >>> for rabbit in rabbits:
        print(rabbit)
    
        
    a
    b
    c
    d
    >>> word = 'cat'
    >>> for letter in word:
        print(letter)
    
        
    c
    a
    t
    >>> a = {'a':'b', 'c':'d', 'e':'f'}
    >>> for key in a:
        print(key)
    
        
    a
    c
    e
    >>> for value in a.values():
        print(value)
    
        
    b
    d
    f
    >>> for item in a.items():
        print(item)
    
        
    ('a', 'b')
    ('c', 'd')
    ('e', 'f')
    >>> for key, value in a.items():
        print(key, value)
    
        
    a b
    c d
    e f

    如何用zip()函数进行迭代?

    对多个序列使用并行迭代,就是一起迭代,等价于将多个序列有序合并了。

    >>> c = 0.1, 0.2, 0.3
    >>> a = (1, 2, 3)
    >>> b = ['a', 'b', 'c', 'd']
    >>> c = 0.1, 0.2, 0.3, 0.4, 0.5,
    >>> for e, f, g in zip(a, b, c):
        print(e, ' ', f, ' ', g)
    
        
    1   a   0.1
    2   b   0.2
    3   c   0.3

    list()、zip()和 dict()可以灵活运用。

    如何生成特定区间的自然数序列?

    range()的使用方法类似切片,但是却是使用‘,’分隔,而不是‘:’。

    >>> for x in range(0,3):
        print(x)
    
        
    0
    1
    2
    >>> list(range(0,3))
    [0, 1, 2]

     

    4.2 推导式(python特有)

    从一个或多个迭代器创建数据结构,可以将循环和条件结合。

    列表推导式

    >>> number_list = [number for number in range(1,6)]
    >>> number_list
    [1, 2, 3, 4, 5]
    >>> a_list = [number for number in range(1,6) if number % 2 ==1]
    >>> a_list
    [1, 3, 5]
    >>> rows = range(1,4)
    >>> cols = range(1,3)
    >>> cells = [(row, col) for row in rows for col in cols]
    >>> for cell in cells:
        print(cell)
    
        
    (1, 1)
    (1, 2)
    (2, 1)
    (2, 2)
    (3, 1)
    (3, 2)

    字典推导式

    >>> word = 'letters'
    >>> letter_counts = {letter:word.count(letter) for letter in word}
    >>> letter_counts
    {'l': 1, 't': 2, 'r': 1, 's': 1, 'e': 2}

     

    函数

    python中参数有哪几种使用方法?

    >>> def func(a, b, c):
        print('a is ', a, 'b is ', b, 'c is ', c)
    
        
    >>> func(1, 2, 3)
    a is  1 b is  2 c is  3
    >>> func(c = 1, b = 2, a = 3)
    a is  3 b is  2 c is  1
    >>> d = [1, 2, 3]
    >>> func(*d)
    a is  1 b is  2 c is  3
    >>> e = {'c':1, 'b':2, 'a':3}
    >>> func(**e)
    a is  3 b is  2 c is  1

    生成器

     

    装饰器

     

    命名空间和作用域

     

    异常

  • 相关阅读:
    当苹果因为UIDevice、udid、uniqueIdentifier而把我们的应用拒之门外invalid binary的时候,呕心沥血解决方法啊
    IOS 7 自定义的UIAlertView不能在iOS7上正常显示
    IOS7 新特性(针对同样讨厌更新后IOS7的开发者)
    CFBundleVersion与CFBundleShortVersionString
    iOS 7 SDK: 如何使用后台获取(Background Fetch)
    IOS开发经验总结(二)
    iOS开发经验总结(一)
    让iOS应用支持不同版本的系统与设备
    控制iOS 7中的状态栏
    Implement CGLIB in ABAP
  • 原文地址:https://www.cnblogs.com/leezx/p/5596262.html
Copyright © 2011-2022 走看看