• Python 3 学习笔记(1)


    Python 3.6

    运算符

    • + - * / 四则运算 % 求余 **乘方
    • // 用于整除

    字符串

    • 字符串用单引号或双引号括起来。
    • 三引号(单引号或双引号均可)表示多行字符串,行末加反斜杠表示换行不算在字符串之内。
    • 字符串加上前缀 r 表示原生字符串。
    • + 用于连接字符串。
    • * 用于重复字符串。
    • 相邻的字符串字面量会自动连接。
    • 字符串存在片段(slice)语法(使用下标获取子串),但字符串本身不可变。
    • 片段语法中下标 0 指向第一个元素,下标 -1 指向最后一个元素。
    >>> 'a' * 3
    'aaa'
    >>> 'b' 'a'
    'ba'
    >>> 'b' + "a"
    'ba'
    >>> print(r'C:some
    ame')
    C:some
    ame
    >>> print("""
    a
    b
    c
    """)
    a
    b
    c
    >>> "abcde"[1:]
    'bcde'
    >>> "abcde"[:4]
    'abcd'
    >>> "abcde"[:]
    'abcde'
    >>> "abcde"[-3:]
    'cde'
    

    列表(Lists)

    • 列表:一种成员的类型相同但个数不限的数据结构。
    • 列表采用中括号加逗号的特殊语法。
    • + 连接两个列表。
    • 列表存在片段(slice)语法(使用下标获取子列表),列表片段可变(可以通过赋值被替换)。
    • 片段语法中下标 0 指向第一个元素,下标 -1 指向最后一个元素。
    >>> [1,2,3][1:]
    [2, 3]
    >>> [1,2,3][-2:]
    [2, 3]
    >>> a = [1,2,3,4]
    >>> a[2:] = [4,5,6]
    >>> a
    [1, 2, 4, 5, 6]
    >>> a[2:] = []
    >>> a
    [1, 2]
    
    • append 方法添加元素。
    • extend 方法连接另一个列表。
    • insert 方法插入元素。
    • remove 方法移除指定元素。
    • pop 方法弹出最后面的元素。
    • clear 方法清空列表。
    • index 方法查找指定元素的下标。
    • count 方法返回列表的长度。
    • reverse 方法翻转列表。
    • copy 方法复制列表。
    >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
    >>> fruits.count('tangerine')
    0
    >>> fruits.index('banana')
    3
    >>> fruits.reverse()
    >>> fruits
    ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']
    >>> fruits.sort()
    >>> fruits
    ['apple', 'apple', 'banana', 'banana', 'kiwi', 'orange', 'pear']
    
    • 列表解析(List Comprehensions)
    >>> [x**2 for x in range(10)]
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    >>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
    [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
    

    元组(Tuples)

    • 元组:一种成员数量和次序固定但种类不尽相同的数据结构。
    • 元组采用小括号加逗号的特殊语法。(最外层元组的小括号可省略)
    • 元组是不可变的。
    • 元组存在下标语法。
    • 存在没有任何成员的元组 () 以及只有一个成员的元组 a, (元素后跟一个逗号表示元组)
    >>> t = 123,"123"
    >>> t[0]
    123
    >>> t[1]
    '123'
    >>> u = t, 456
    >>> u
    ((123, '123'), 456)
    >>> v = 1,
    >>> v
    (1,)
    

    解构语法

    >>> a,b = [1,2]
    >>> a,b
    (1, 2)
    >>> a,b = (1,2)
    >>> a,b
    (1, 2)
    >>> a,b = b,a
    >>> a,b
    (2, 1)
    

    集合(Sets)

    • 集合:一种不存在重复元素的哈希表数据结构。
    • 集合采用大括号加逗号的特殊语法。
    • 常用操作包括求差集,并集,交集,对称差集。
    • 存在集合的解析表达式。(set comprehensions)
    >>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
    >>> basket
    {'pear', 'orange', 'banana', 'apple'}
    >>> a = set('abracadabra')
    >>> b = set('alacazam')
    >>> a
    {'c', 'a', 'r', 'd', 'b'}
    >>> b
    {'l', 'c', 'a', 'm', 'z'}
    >>> a - b # 差集
    {'b', 'd', 'r'}
    >>> a | b # 并集
    {'m', 'l', 'c', 'a', 'r', 'd', 'b', 'z'}
    >>> a & b # 交集
    {'c', 'a'}
    >>> a ^ b # 对称差集
    {'d', 'b', 'l', 'm', 'z', 'r'}
    >>> {x for x in 'abracadabra' if x not in 'abc'}
    {'d', 'r'}
    

    字典(Dictionaries)

    • 字典:一种存放键值对的哈希表数据结构。
    • 字典采用大括号加冒号和逗号的特殊语法。
    • 存在字典的解析表达式。(dictionary comprehensions)
    >>> tel = {'jack': 4098, 'sape': 4139}
    >>> tel
    {'jack': 4098, 'sape': 4139}
    >>> tel['jack']
    4098
    >>> tel['guido'] = 4127
    >>> tel
    {'jack': 4098, 'sape': 4139, 'guido': 4127}
    >>> {x: x**2 for x in (2, 4, 6)}
    {2: 4, 4: 16, 6: 36}
    

    range 函数

    >>> list(range(5,10))
    [5, 6, 7, 8, 9]
    >>> list(range(0,10,3))
    [0, 3, 6, 9]
    >>> list(range(-10,-100,-30))
    [-10, -40, -70]
    

    语句

    • while 语句
    • for 语句(实质上是 foreach)
    • if ... elif ... else 语句
    • 代码块采用冒号加缩进来表示
    • pass 语句(空语句)
    • break continue 语句
    • 循环 + else语句(表示循环正常结束,没有被 break)
    >>> for n in range(2, 10):
    	for x in range(2, n):
    		if n % x == 0:
    			print(n, 'equals', x, '*', n//x)
    			break
    	else:
    		print(n, 'is a prime number')
    
    		
    2 is a prime number
    3 is a prime number
    4 equals 2 * 2
    5 is a prime number
    6 equals 2 * 3
    7 is a prime number
    8 equals 2 * 4
    9 equals 3 * 3
    

    函数

    • 定义函数使用 def。
    • 形参的特殊形式有:带缺省值的形参 arg=value,元组形参 *args,字典形参 **args。
    • 实参的特殊形式有:带关键字的实参 kwarg=value,列表/元组实参 *args,字典实参 **args。
    • 函数可以嵌套。
    • 函数名本身是一个对象。
    >>> def f(a, b=2): # 带缺省值的形参
    	print(a,b)
    	
    >>> f(3)
    3 2
    >>> f(a=4) # 带关键字的实参
    4 2
    >>> d = {"a":3,"b":5}
    >>> f(**d) # 字典实参,调用时展开
    3 5
    >>> def f(k, *args, **kws): # 元组形参,字典形参
    	print(k)
    	for arg in args:
    		print(arg)
    	for kw in kws:
    		print(kw, ":", kws[kw])
    
    >>> f("a", 1,2,3, c=4,d="abc") # 调用时 1,2,3 打包成元组,c=4,d="abc" 打包成字典
    a
    1
    2
    3
    c : 4
    d : abc
    >>> args = [3,6]
    >>> list(range(*args)) # 列表实参,调用时展开
    [3, 4, 5]
    >>> args = (3,6)
    >>> list(range(*args)) # 元组实参,调用时展开
    [3, 4, 5]
    

    lambda 表达式

    >>> def make_incrementor(n):
        return lambda x: x + n
    
    >>> f = make_incrementor(42)
    >>> f(0)
    42
    >>> f(1)
    43
    >>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
    >>> pairs.sort(key=lambda pair: pair[1])
    >>> pairs
    [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
    
  • 相关阅读:
    Delphi 使用字符串时,一个注意地方
    Delphi 字符串 详解
    Delphi SEH研究
    Delphi 新语法之Helper
    Delphi 判断一个二进制数中有多少个1
    Delphi 数据的理解
    Delphi 对象构造浅析后续
    Delphi 关于错误E2154 Type '%s' needs finalization not allowed in variant record
    Delphi 新语法介绍之For In
    Delphi 关于错误E1038 Unit identifier '%s' does not match file name
  • 原文地址:https://www.cnblogs.com/zwvista/p/7965931.html
Copyright © 2020-2023  润新知