Python基本语法 1. 四种数值类型:整型,长整型(L),浮点数,复数((1 + 3j),j表示虚数部分) 2. 字符串: 单引号,双引号(单双引号等价,无char类型) 三引号(多行) 转义符\(转义,换行) 自然字符串(字符串前加r,转义符失效) Unicode字符串(字符串前加u,以Unicode格式处理) 字符串不可变(同Java) 两个相邻书写的字符串将自动连接 3. 标识符:首字符只允许字母或下划线;其它字符允许字母、下划线、数字;大小写敏感 4. 变量:不需要声明类型,变量名指向存储该对象的内存区域(同C指针) 5. 物理行与逻辑行: python文件中的一行为物理行,每条python指令为逻辑行 一个物理行中可以包含多个逻辑行,逻辑行之间必须通过 ; 分隔 一个物理行中只有一个逻辑行时可省略 ; 多行字符串算做一个逻辑行 6. 缩进:同一层次(代码块)的语句必须用于同样的缩进 7. 运算符优先级: 8. if条件语句: if condition: statements elif condition: statements else: statements 条件语句无需括号(),条件末尾接 : ,代码块注意缩进 9. while循环语句: while condition: statements else: statements 条件语句无需括号(),条件末尾接 : ,代码块注意缩进;else语句只在循环结束时执行一次 10. for…in循环语句 for variable in sequence: statements else: statements in后面只能接序列(列表、元组、字符串);else语句只在循环结束时执行一次 11. break:终止并跳出当前循环,且不执行该循环的else语句 12. continue:跳过循环的剩余语句,直接开始下一轮循环 13. 列表: [item0, item1, item2, …] 可变,有序 列表中的对象可通过[index]访问(同数组) 14. 元组: (item0, item1, item2, …) 不可变(对原有元组的修改将直接生成新的元组,原有元组保持不变),有序 元组中的对象可通过[index]访问 只有一个元素的元组,该元素之后也应加 , 元组可用于格式化字符串,如 '%s is %d years old' % (name, age) 15. 字典: {key0:value0, key1:value1, key2:value2, …} 可变,键值对,无序,是dict类的实例 键必须是不可变对象,且键必须唯一(重复将覆盖原有值) 字典中的值可以通过键作为索引[key]来访问 字典的items()方法将返回一个列表,列表中的每项为键和值组成的元组 16. 序列: 字符串、列表、元组都是序列,其最大特点是有序和可索引 索引操作符为[index] 索引可以拓展为切片,即获取子序列,操作符为[a:b],表示从索引a的元素开始到索引b的元素结束(包含a,不包含b);若a无值([ :b])表示从头开始,若b无值([a: ])表示包含到尾后结束,因此[:]就表示原序列 非负数表示从序列头开始向右扫描,负数表示从序列尾开始向左扫描 17. 函数定义: def function_name(<parameters>): statements 以关键字def开始,: 结束;括号中可填形参(同JavaScript) 18. 局部变量与全局变量: 函数内外都具有的同名变量实际没有任何关系;函数中的变量是局部的,其作用域就是该函数内 在函数内声明为global的变量是全局变量,它与函数外的同名变量指向同一内存区域 19. 形参默认值:函数声明时将形参用=赋值,改值即是该形参的默认值(同JavaScript);有默认值的形参必须在没有默认值的形参的右边 20. 关键参数:调用函数时,直接在括号中按照形参名指定形参值,而无需按照顺序指定 21. return:从当前函数中跳出,并为函数返回一个值(同JavaScript) 22. __doc__:函数、模块、类的第一个逻辑行的字符串是它的文档字符串,保存在命名空间的__doc__变量中,可以通过 <name>.__doc__的方式得到 23. 模块导入:(模块就是若干函数与类的集合文件)www. import module 导入模块内的全部函数和类,但在命名空间中只保存该模块本身,因此实际调用时需要采用module.function的形式 from module import function/class/attribute 导入某模块的指定函数、类或属性,并将它保存到命名空间中,调用时直接采用具体函数名、类名或属性名 另外,from module import *也将导入模块内的所有函数和类及属性,且会在命名空间中保存导入的所有对象 为了代码的清晰,官方推荐使用import module进行导入 24. __name__:每个模块的名称存在命名空间的__name__变量中,通过import导入的模块就会将其__name__的属性值写入当前的命名空间中;当前被运行的模块的__name__变量将自动被赋值为”__main__” 25. 创建类: class className: statements 完成后,类名将会存入该模块的命名空间中 26. 定义类方法: class className: deffunctionName(self, <parameters>): statements 类方法的首形参必须存在(建议命名为self),表示类实例本身(同Java中的this) 27. 构造函数__init__ class className: def __init__(self, <parameters>): statements 为类创建新实例时,__init__方法将自动执行一次 28. 析构函数__del__ class className: def __del__(self): statements 系统检测到类实例不再被使用时自动调用以释放内存;另外也可以通过del语句手动调用,如 del instance 29. 类变量与对象变量: 定义在类中的变量都是类变量,类变量只有一份拷贝,保存在类的命名空间中,任何一个类实例对其进行修改都是改变它在其它实例中的值 对象变量只由某个实例独自拥有,它保存在各个对象的self变量中 一般地,类变量都是公有的(public);只有名称以双下划线为前缀的变量是私有的(private) 30. 继承: class subclass(superClass): statement 允许多重继承 子类不会自动调用父类的构造函数,需手动调用,且调用方式与普通方法不同,如下: class subclass(superClass): def __init__(self, <parameters1>): superClass.__init__(self, <parameters2>) 31. 实例化(类似C++): instance = className(<parameters>) 32. 方法调用: instance.functionName(<parameters>) 调用时无需self
|
|
来自: xf_baby > 《Linux基础教程》