Python 入门基础笔记.

来源:互联网 发布:阿里云沙发管家 编辑:程序博客网 时间:2024/06/07 03:44

备份下笔记,反正也不需要除了我自己之外别人能看懂.


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)]









 
原创粉丝点击