编译型 解释性
重置pycharm 家目录 ls -a rm -rf .pycharm****
命名规则:字母数字下划线组成 不能数字开头,不能与关键字重名
函数 def 定义好函数之后,之表示这个函数封装了一段代码,如果不主动调用函数,函数不会主动执行
round() 四舍五入 map() 相当于for
def sum_num(a, b, f): return f(a) + f(b) result1 = sum_num(-1, 5, abs) print(result1) result2 = sum_num(1.1, 1.3, round) print(result2)
str 切片 方法:capitalize() center(num,*) upper() lower() swapcase() strip() l/rstrip() split() ','.join(可迭代对象) startwith() erndwith() find()(没有返回-1) index()(没有报错) replace() isalpha(字母) isalnum(数字及字母) isdigit(数字) 格式化输出 3种 s='{1},{2},{0}'//'{}{}{}'//{age}{name}{sex} s.fomat(' abc ' , ' cde ', ' gfk' ) name='',age= , sex='' f ' i am {name} {age} {sex}' 'i am %s%s%s'%(name,age,sex)
列表:切片 append() extend() insert(num,content) pop()(有返回值) remove(迭代对象中的任意一个 只能删除一个) clear() del l1[索引] (按索引删除) 改: l1[索引] = 查: for i in l1: print(i) len(l1) count("元素") 查看元素出现多少次 index('' ) 找到第一个就返回 找不到就报错 排序sort l1.sort() 从小到大 l1.sort(reverse = True) 从大到小 l1.reverse() 反转
元组:只能查看不能修改 count( ) index() 切片 del t1 整体删除
range: for i in range(len(迭代对象)) for i in range(迭代对象) for i in (1,10,2) 可以跨度排序
直接增加 setdefault pop clear del popitem (删除最后一个) 直接改 dic2.update(dic) get('','次处不写为none
写则替换none') dict() dict(zip(a,b)) for key in dic dic.values dic.items(列表可以【key,value】)
dic = { 'name': 'alex', 'name': '太白金星', 'age': 18 } # 键唯一 print(dic) -----》{'name': '太白金星', 'age': 18} # dic = { # 'name_list': ['博哥', '菊哥', 'b哥'], # 'barry': { # 'name': '太白金星', # 'age': 18, # 'hobby': 'wife', # } # } # 增删改查 # dic = { # 'name': '太白金星', # 'age': 18, # 'hobby': 'wife', # } # 增: # 1,有则修改,无则添加 # dic['hight'] = 176 # dic['age'] = 23 # print(dic) # 2,有责不变,无责添加 # dic.setdefault('weight') # {'name': '太白金星', 'age': 18, 'hobby': 'wife', 'weight': None} # dic.setdefault('weight',160) # {'name': '太白金星', 'age': 18, 'hobby': 'wife', 'weight': 160} # dic.setdefault('name','barry') # {'name': '太白金星', 'age': 18, 'hobby': 'wife'} # print(dic) # 删: # pop 按照键删除 # ret = dic.pop('age') # 按照键删除掉键值对 # print(ret) # dic.pop('age1') # 没有报错 # ret = dic.pop('age1', '没有此键') # 设置两个参数,第二个参数是提示语 一般设置成None # print(ret) # print(dic) # clear 清空 dic.clear() # print(dic) # popitem 3.6版本之后就是删除最后一个键值对 # ret = dic.popitem() # print(ret) # print(dic) # del # del dic['name'] # 按照键删除 # del dic['name1'] # del dic # 删除字典 # print(dic) # 改 # dic['age'] = 30 # print(dic) # update # dic.update(car='逍客', money=1300) # dic = {"name": "jin", "age": 18, "sex": "male"} # dic2 = {"name": "alex", "weight": 75} # dic2.update(dic)把dic2加到dic中 有则不变无则增加 # 查 # 1,不好 # print(dic['age']) # print(dic['age1']) # 2,get # print(dic.get('age')) # 没有此键默认返回None # print(dic.get('age1')) # 可以设置返回值 # print(dic.get('age1', '没有此键'))
dic = { 'name': '太白金星', 'age': 18, 'hobby': 'wife', } for i in dic: print(i) # # #dic.keys() 类似于list的容器类类型 ret = dic.keys() print(ret, type(ret)) for key in ret: print(key) # print(ret[0]) # #可以转化成list # print(list(ret)) # dic.values() # print(dic.values()) # 转化成list # print(list(dic.values())) # for v in dic.values(): # print(v) print(dic.items()) print(list(dic.items())) for i in dic.items(): i=list(i) print(i) # 分别赋值 # a, b = (1, 2) # print(a,b) # a, b, c = (1, 2, 3) # print(a,b,c) # a, b = 100, 1000 # a, b = [100, 1000] a, b = {'name':'alex', 'age': 73} print(a,b) # a, b = {'name':'alex', 'age': 73}.values() # print(a,b) #'alex' 7 3 a, b = {'name':'alex', 'age': 73}.items() print(a,b) #会返回两个元组('name', 'alex') ('age', 73) #a, b = ('alex', 73, 25, 36) print(a, b) #会报错可以# a, b = ('alex', 73, 25, 36)[:2] print(a, b) # 面试题: ''' a = 18 b = 32 通过一行代码 将a,b的值互换。 ''' # a = 18 # b = 32 # a, b = b, a # print(a,b) # print(dic.items()) # for k,v in dic.items(): # ''' # k,v = ('name', '太白金星') # k,v = ('age', 18) # k,v = ('hobby', 'wife') # ''' # print('这是键:', k) # print('这是值:', v)
result = {}
result['key1'] = result.get('key1', [])
print(result)
>>>a = [1,2,3] >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) # 打包为元组的列表 [(1, 4), (2, 5), (3, 6)] >>> zip(a,c) # 元素个数与最短的列表一致 [(1, 4), (2, 5), (3, 6)] >>> zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式 [(1, 2, 3), (4, 5, 6)] a = ['a','b','c','d'] b = [1,2,3] mydict = dict(zip(a,b)) print mydict
is 判断两个变量内存地址是否相同 # 同一个代码块驻留机制的目的: ''' 1,节省内存空间. 2,提升性能. ''' # 驻留机制针对的对象: int bool str ()空元组. # int: 范围 任意数字 i1 = 1212312312312312312312312 i2 = 1212312312312312312312312 print(i1 is i2) # bool True Fasle # str:几乎所有的字符串都会符合缓存机制, s1 = 'fdsfdsjklffdsafdsadsjfkldsfldsfdsjlkfdsl@#$' s2 = 'fdsfdsjklffdsafdsadsjfkldsfldsfdsjlkfdsl@#$' print(s1 is s2) # 通过相乘的形式构建的字符串长度不能超过20满足同一代码块的驻留机制. # s1 = 'old_' * 5 # s2 = 'old_' * 5 # print(s1 is s2) # True
pycharm debug F8(step over)执行一行代码 F7(step into)进入函数内部执行
函数注释:在 def 下面 缩进4个空格 3个“ 调用函数处ctrl+q可查看函数注释
形参(定义时) 实参(调用时)
面向对象 初始化方法 def __init__(self,name,age)
__del__方法 对象被内存销毁前自动调用
__str__ 必须返回字符串
继承 单继承 多继承(默认使用第一个父类同名属性和方法)