新工作第100天,外包到国内某大型互联网企业.工作很累,上班时间很长,学习只能靠偷偷摸摸的挤点时间;
学习也是为了自己以后能生活的更好.
对python的推崇并不是因为这份语言多牛逼,只是这是一个趋势,python,GO都是一个趋势吧!
开始学习
-
python注释使用 # python中没有花括号{}
-
变量和类型:
Python 中的变量赋值不需要类型声明。
但Python中又数据类型,
常用的数据类型是: 整型,浮点型,字符串,布尔等(复数)
常用的数据结构: 列表、元组、集合和字典
(1)列表 list1 = [1, 3, 5, 7, 100]
(2)元组 t = (‘骆昊’, 38, True, ‘四川成都’)
(3)元组的元素不能修改
(4)比较特殊的运算符:
in , not in 成员运算符
not, or ,and 逻辑运算符
== , != 等于,不等于 -
if elif else:
#例如: score = float(input('请输入成绩: ')) if score >= 90: grade = 'A' elif score >= 80: grade = 'B' elif score >= 70: grade = 'C' elif score >= 60: grade = 'D' else: grade = 'E' print('对应的等级是:', grade)
-
while循环
while 1> 2: print(11)
-
for in
可用于元组 列表等例如: num = int(input('请输入循环次数: ')) for i in range(0, num): print(i)
python中没有i++,可以用 i+=1
range(10) 构造出[0,10)的范围(不包含10)
range(5,10) 构造出[5,10)的范围
range(5, 10, 2) 构造出5,7,9 -
break && continue
和java中的用法一样 -
函数:
使用def定义函数,不用定义返回值#例如 def add(a, b): return a + b if __name__ == '__main__': add1 = add(5, 6) print(add1)
-
模块
为了避免同名函数,可以使用不同的模块来区分
如在 module1.py 中定义def foo:
在 module2.py 也定义def foo:
调用时
from module1 import foo
这时调用的是module1.py中的foo函数
如果写成
from module1 import foo
from module2 import foo
module2中的函数将会覆盖module1中的函数
可以使用
import module1 as m1
import module2 as m2
m1.foo()
m2.foo()
这种方法(注意利用这种方法调用函数时,模块中写在函数外的程序会被执行) -
面向对象:
私有属性: 使用两个下划线开头 如: __name
使用一个下滑线 ,为protect属性 在继承类中可以访问@property装饰器
想访问属性可以通过属性的getter(访问器)和setter(修改器)方法进行对应的操作class Student(object): def __init__(self, name, age): self.__name = name self.__age = age @property def name(self): return self.__name # 访问器 - getter方法 @property def age(self): return self.__age # 修改器 - setter方法 @age.setter def age(self, age): self.__age = age # 修改器 - setter方法 @name.setter def name(self, name): self.__name = name def play(self): if self.__age <= 16: print('%s正在玩飞行棋.' % self.__name) else: print('%s正在玩斗地主.' % self.__name) def instance_method(self): print("是类{}的实例方法,只能被实例对象调用".format(self.__class__)) @staticmethod def static_method(): print("是静态方法,可以直接使用类名调用") @classmethod def class_method(cls): print("是类方法,可以使用类名.和实例调用") #------------------------------------------------ from Student import Student def main(): s = Student('张三', 18) print("名字:", s.name, '年纪', s.age) s.name = '李四' s.age = 90 s.play() print("名字:", s.name, '年纪', s.age) s.instance_method() # Student.instance_method() Student.static_method() Student.class_method() s.class_method() if __name__ == '__main__': main()
-
异常:
def test(num): n = 0.1 try: n = 100 / num except ZeroDivisionError as e: print('除数为0', e) return n if __name__ == '__main__': f = test(10) print(f) f = test(0) print(f)
python中的标准异常: https://www.runoob.com/python/python-exceptions.html
-
内置函数:
python中一些内置函数
https://www.runoob.com/python/python-built-in-functions.html
len() 函数计算长度 对象等类型 没有长度
int() 函数用于将一个字符串或数字转换为整型。
long() 函数将数字或字符串转换为一个长整型。
str() 函数将对象转化为适于人阅读的形式。
type()函数:判断类型
python range() 函数可创建一个整数列表,一般用在 for 循环中。
setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。