当前位置: 移动技术网 > IT编程>脚本编程>Python > Python基本语法

Python基本语法

2019年04月19日  | 移动技术网IT编程  | 我要评论

tiltomo,电线接法,求魔笔趣阁

1. 四种数值类型:整型,长整型(l),浮点数,复数((1 + 3j),j表示虚数部分)

2. 字符串:

单引号,双引号(单双引号等价,无char类型)

三引号(多行)

转义符\(转义,换行)

自然字符串(字符串前加r,转义符失效)

unicode字符串(字符串前加u,以unicode格式处理)

字符串不可变(同java

两个相邻书写的字符串将自动连接

3. 标识符:首字符只允许字母或下划线;其它字符允许字母、下划线、数字;大小写敏感

4. 变量:不需要声明类型,变量名指向存储该对象的内存区域(同c指针)

5. 物理行与逻辑行:

python文件中的一行为物理行,每条python指令为逻辑行

一个物理行中可以包含多个逻辑行,逻辑行之间必须通过 ; 分隔

一个物理行中只有一个逻辑行时可省略 ;

多行字符串算做一个逻辑行

6. 缩进:同一层次(代码块)的语句必须用于同样的缩进

7. 运算符优先级:/shouce/pythonjc/ch05s03.html

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():
   statements

以关键字def开始,: 结束;括号中可填形参(同javascript

18. 局部变量与全局变量:

函数内外都具有的同名变量实际没有任何关系;函数中的变量是局部的,其作用域就是该函数内

在函数内声明为global的变量是全局变量,它与函数外的同名变量指向同一内存区域

19. 形参默认值:函数声明时将形参用=赋值,改值即是该形参的默认值(同javascript);有默认值的形参必须在没有默认值的形参的右边

20. 关键参数:调用函数时,直接在括号中按照形参名指定形参值,而无需按照顺序指定

21. return:从当前函数中跳出,并为函数返回一个值(同javascript)

22. __doc__:函数、模块、类的第一个逻辑行的字符串是它的文档字符串,保存在命名空间的__doc__变量中,可以通过 .__doc__的方式得到

23. 模块导入:(模块就是若干函数与类的集合文件)

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, ):
        statements

类方法的首形参必须存在(建议命名为self),表示类实例本身(同java中的this)

27. 构造函数__init__

class classname:
   def __init__(self, ):
        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, ):
        superclass.__init__(self, )

31. 实例化(类似c++):

instance = classname()

32. 方法调用:

instance.functionname()

调用时无需self

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网