备份下笔记,反正也不需要除了我自己之外别人能看懂.
1.Python 解决中文编码问题
在 编写代码的第一行加 [#coding=utf-8] 注意,中间不能有任何空格或者 [#-*- coding=utf-8 -*-] 加这一句代码
Python3 不会出现此问题.Python2 会出现.
2. 注释 ''' ''' 批量注释 和# 号 注释一行
3 input 输入
Python2 里面会当代码执行,
Python3 里面会当字符串处理
raw_input() 在Python2里面和Python3里面是一样的处理.
4.if else 这个和java里面最大的区别就是 没有括号 和大括号,改成了冒号 .
而且貌似是靠缩进来判断是否是在这个if里面 是看是否有缩进,而且中间不能有空格.多一个空格都会报错
5.在Python中,所有的变量在定义的时候不需要确定类型,赋值的时候自动确认类型 ,可以强转. 如: [ (int) age ]
6.运算符有部分和java里面不一致 如 // 取商 在java中这是注释
7.print()输入多个,可这样 print("%d%s"%(a,b)) 一一对应!
8.在Python中,有and or 和not ,在Python不能使用 !取反的操作
9.在Python中没有if else if 在Python中是 if elif else这样..
10.字符串切片[类似java中的截图] 语法 a[1:3] 取第一个到第二个字符 ,可写负数,为倒数第几个
a[1:3:2]隔着两个去取字符
11.定义列表 num=[] 可以.出对应的方法
12.字典 相当于java中的map 定义 num={key:value,key2:value}
13.元组: 只能查看,不能修改删除, 定义 num=(1,2,31)
14. *agrs 在函数最后一个参数前面加 * 号,表示不定长参数. 如: def mm(a,b ,*args):
15. **kwargs 在函数最后一个参数前面加 ** 号,表示不定长参数. 如: def mm(a,b ,*args,**kwargs): 调用: mm(1,2,a=1,b=2)
16. lambda 定义匿名函数,和js中差不多... python 会自动返回. 只能写表达式 不能写if之类的,只使用于特别简单的函数
17.私有方法, 在定义好的方法名前面 加 __ 即可
18.继承 在定义类的后面 加个 (父类,父类1) 可以多继承 .
19.类属性定义 num=0 直接写类里面即可..貌似要给默认值,这点和java不同.(难怪当初我就写个变量名,然后报错了.)
20.类方法 定义 在普通方法上面加 @classmethod [相当于java中的注解] 类方法第一个参数也必须要 cls ...
21[静态方法] 在类上面加 @staticmethod 和类方法的 区别, 静态方法可以没有任何参数 ,类方法必须有一个参数 调用java中一样..
22. __init__ 方法,默认在__new__方法调用,在父类里面默认调用,一般重写这个,不建议重写__new__
23. __del__ 方法,类的销毁时执行.
24. __str__ 相当于java中的toString 方法
25. __new__ 方法 默认是在 __new__ 里面调用init方法,严格来说, 创建一个新对象的时候是默认调用__new__方法.相当于java中的 实列化方法. 父类有创建的能力,
如果重写,不调用父类的此方法,将无法创建对象
26.单列模式,可采用重写__new__方法.
27. 异常 写个 try: 代码 except 异常的名字: 异常后的处理代码
28.raise 抛出一个异常
29.自定义异常,和java中差不多. 继续一个异常父类即可.
30. if 中给的 条件 "" 0 None ,空的 都会判断为假 不空为真.. 数字0表示假,非0表示真
31.模块中的__main__ , 每个py文件里面执行的文件都不一样
32. __all__ 使用了这个之后,如果不在里面定义,别的地方就用不了这个模块里面的东西
33.__init__.py 在文件夹下面 也就是包下面 建立则个文件,Python就会认为是包.就可以导入包成功
但是依旧不能在文件夹外卖导包成功,要想在其他文件夹中导包成功,需在这个文件里面写 __all__=["其他的py文件名称"]
34. 模块打包发布[随便一个地方都可以调用],建立setup.py ....太复杂了,用的时候百度吧..
35.给程序传递参数: 1.导入sys包 在sys.argv 列表[list]中会保存有传递给程序的参数
[传递参数 : 打个比方 ping 192.168.1.1 这个ip就是给程序传递]
36.列表生成式 : a=[i for i in range(1,18)] 这样a就会是一个1-17的列表数据
可以使用if a=[i for i in range(1,18) if i%2==0] 要满足条件才返回
也可以嵌套循环 a=[(i,j) for i in range(1,18) for j in range(1,18)]