• python 学习笔记


    1.操作符

    与Java和C中十分类似, +(加), -(减), *(乘), /(除), %(求余), **(指数运算), = (赋值).以及减便运算,如 +=, -=, *=和/= 等.
    赋值运算与其他语言一致.
    逻辑操作
    > < <= >= != ==与其他语言一样.
    不一样的有not逻辑非,and逻辑与和or逻辑或.

    2.注释与文档

    一行当中,从#开始地方就是注释.不会影响下一行.
    ""引号放在文件的开头,函数的开头或者一个类的开头,就是文档注释,与Java中的/** ... */作用和目的是一样的.

    3.折行

    如果一行太长了,写不下了,就需要在下一行接着写,这时可以使用来告诉Python,下一行继续.

    4.一行写多个语句

    Python是一个语句放在一行,行尾可以选择性的加上;但如果想在一行放多个语句,就需要用;来分隔语句:
    a = 1; b = 2; c = 3;
    虽然这在语法上可行,但不是一个好习惯,绝大多数的编程规范都是要一行写一个语句.

    5.List和Tuple

    这就是Java或C中的数组.它是一个容器,能用来顺序的,以整数索引方式检索, 存储一组对象.List用[]来表示,如[1, 2, 3]就是一个List;而Tuple用()来表示,如(3, 4, 5)就是一个Tuple.它们的区别在于List是可变的;而Tuple是不可变的.也就是说不可以增,删和改.
    索引方式除了与Java一样的以一个整数下标方式外,还可以指定开始,结束和步长,和使用负索引来分割List:
    通用语法格式是:list[start:end:step]

    • list[index] --- 返回第(index+1)个元素,受C语言影响,下标亦是从0开始
    • list[start:end] --- 返回从start开始,到end-1,也就是list[start], list[start+1].....list[end-1]
    • list[start:end:step] --- 与上面类似,只不过每隔step取一个
    • list[:end]  ---- 缺省的开端是0
    • list[start:] ---- 缺省的结尾是len(list),或者-1

    负数索引更是方便,它与正数的对应关系为:

    正数索引   0    1      2      3
    数组元素  [1]   [3]    [5]    [7]
    负数索引  -4    -3      -2    -1
    >>> a = [1, 3, 5, 7];  
    >>> a[0]  
    1  
    >>> a[3]  
    7  
    >>> a[-1]  
    7  
    >>> a[-2]  
    5  
    >>> a[0:3]  
    [1, 3, 5]  
    >>> a[1:3:2]  
    [3]  
    >>> a[0:3:2]  
    [1, 5]  
    >>> a[0:-1:2]  
    [1, 5]  
    >>>

    List是一个对象,它有一此内置的方法,如:

    • in 和 not in
    >>> 3 in a  
    True  
    >>> 8 in a  
    False  
    >>> 8 not in a  
    True  
    >>>
    • 符号+
      >>> a + [9, 11]  
      [1, 3, 5, 7, 9, 11]
    • 重复*
      >>> a * 2  
      [1, 3, 5, 7, 1, 3, 5, 7]  
      >>>

    5.字符串

    字符串就是一个字符的数组,List的操作都可以对String直接使用.也就是符合以上的操作方式:

    >>> str = 'hello, world'  
    >>> str[0:3]  
    'hel'  
    >>> str[0:3:2]  
    'hl'  
    >>> str[-1]  
    'd'

    6.字串格式化符%

    这是一个类似C语言printf,

    语句是:formats % (var1, var2,....)

    >>> "Int %d, Float %d, String '%s'" % (5, 2.3, 'hello')  
    "Int 5, Float 2, String 'hello'"  
    >>>

    7.字典

    用于以Key/Value方式存储的容器.更改方式为dict[key] = new_value;索引方式为dict[key].

    dict.keys()方法以List形式返回容器中所有的Key;dict.values()以List方式返回容器中的所有的Value:

    >>> box = {'fruits': ['apple','orange'], 'money': 1993, 'name': 'obama'}  
    >>> box['fruits']  
    ['apple', 'orange']  
    >>> box['money']  
    1993  
    >>> box['money'] = 29393  
    >>> box['money']  
    29393  
    >>> box['nation'] = 'USA'  
    >>> box  
    {'money': 29393, 'nation': 'USA', 'name': 'obama', 'fruits': ['apple', 'orange']}  
    >>> box.keys()  
    ['money', 'nation', 'name', 'fruits']  
    >>> box.values()  
    [29393, 'USA', 'obama', ['apple', 'orange']]  
    >>>

    ps:box.keys()和 box.values() 输出的结果并不是按照逻辑顺序的。

    8. if语句

    >>> a = 3; b = 4; c = 5;  
    >>> if a == b and a != c:  
    ... print "Are you sure"  
    ... elif (a == c and b == c):  
    ... print "All equal"  
    ... else:  
    ... print "I am not sure"  
    ...   
    I am not sure  
    >>>

    大笑

    9.while

    >>> int i=0
    SyntaxError: invalid syntax哭泣的脸
    >>> i=0
    >>> while i<3:
        print 'ydd!'
        i=i+1
    
    ydd!
    ydd!
    ydd!

    10.for

    >>> a='abcdef'
    >>> for i in a:
        print i
    
    a
    b
    c
    d
    e
    f

    11.数组运算

    格式为:

    list = [expression for var in list condition]

    >>> s=[1,2,3,4,5]
    >>> s
    [1, 2, 3, 4, 5]
    >>> [x*3 for x in s if x%2==0]
    [6, 12]

    12.函数

    如何定义函数

    def function_name(args):
          function_body;

    调用函数的方式function_name(formal_args):

    13.设置为当前路径

    >>> import os
    >>> os.getcwd()
    'D:\Python27'
    >>> os.chdir('e:\')
    >>> os.getcwd()
    'e:\'
    >>>

    14.lambda函数

    它没有名字,只有参数和表达式,

    >>> d= lambda x: x*x;
    >>> d(2)
    4

    lambda最大的用处是用作实参:

    >>> def iter(func, list):  
    ... ret = [];  
    ... for var in list:  
    ... ret.append(func(var));   #func 在这里就是x*x
    ... return ret;  
    ...   
    >>> iter(lambda x: x*x, a)  
    [0, 1, 4, 9]  
    >>>
    >>> d(2)
    4
    >>> d
    <function <lambda> at 0x01F33030># 因为是作为实参,很明显地址是随机分配的
    >>> d= lambda x:x*x
    >>> d(2)
    4
    >>> d
    <function <lambda> at 0x01F2FC70>
    >>>

    15.print

    print与%结合更为强大:

    print formats % (var1, var2, ...):

    >>> print "today is %d, welcome %s" % (2013, 'alex');  
    today is 2013, welcome alex  
    >>>

    16.range

      • range([start], stop, [step]) --- 生成一个整数列表,从,start开始,到stop结束,以step为步长

    参考:http://blog.csdn.net/hitlion2008/article/details/9285785

    >>> range(4)  
    [0, 1, 2, 3]  
    >>> range(1,4)  
    [1, 2, 3]  
    >>> range(1,4,2)  
    [1, 3]  
    >>>
  • 相关阅读:
    ES6学习之装饰器
    ES6学习之Class
    ES6学习之Async函数
    ES6学习之Generator函数
    for循环及break和continue的区别
    ES6学习之Iterator和For...of循环
    js检测对象属性
    ES6学习之Promise
    ES6学习之Reflect
    Visual Studio references中的package找不到
  • 原文地址:https://www.cnblogs.com/menghuizuotian/p/3761864.html
Copyright © 2020-2023  润新知