python 基础
编译型 解释性
重置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__ 必须返回字符串
继承 单继承 多继承(默认使用第一个父类同名属性和方法)
浙公网安备 33010602011771号