文件处理
print(abs(-1))
print(abs(1))
print(all([1,2,'1']))
print(all([1,2,'1','']))
print(all(''))
print(any([0,'']))
print(any([0,'',1]))
print(bin(3))
空,None,0的布尔值为False,其余都为True
print(bool(''))
print(bool(None))
print(bool(0))
name='你好'
print(bytes(name,encoding='utf-8'))
print(bytes(name,encoding='utf-8').decode('utf-8'))
print(bytes(name,encoding='gbk'))
print(bytes(name,encoding='gbk').decode('gbk'))
print(bytes(name,encoding='ascii'))#ascii不能编码中文
print(chr(46))
print(dir(dict))
print(divmod(10,3))
dic={'name':'alex'}
dic_str=str(dic)
print(dic_str)
可hash的数据类型即不可变数据类型,不可hash的数据类型即可变数据类型
print(hash('12sdfdsaf3123123sdfasdfasdfasdfasdfasdfasdfasdfasfasfdasdf'))
print(hash('12sdfdsaf31231asdfasdfsadfsadfasdfasdf23'))
name='alex'
print(hash(name))
print(hash(name))
print('--->before',hash(name))
name='sb'
print('=-=>after',hash(name))
print(help(all))
print(bin(10))#10进制->2进制
print(hex(12))#10进制->16进制
print(oct(12))#10进制->8进制
print(isinstance(1,int))
print(isinstance('abc',str))
print(isinstance([],list))
print(isinstance({},dict))
print(isinstance({1,2},set))
name='哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈粥少陈'
print(globals())
print(__file__)
def test():
age='1111111111111111111111111111111111111111111111111111111111111'
# print(globals())
print(locals())
test()
l=[1,3,100,-1,2]
print(max(l))
print(min(l))
print(list(zip(('a','n','c'),(1,2,3))))
print(list(zip(('a','n','c'),(1,2,3,4))))
print(list(zip(('a','n','c','d'),(1,2,3))))
p={'name':'alex','age':18,'gender':'none'}
print(list(zip(p.keys(),p.values())))
# print(list(p.keys()))
# print(list(p.values()))
print(list(zip(['a','b'],'12345')))
l=[1,3,100,-1,2]
print(max(l))
print(min(l))
age_dic={'alex_age':18,'wupei_age':20,'zsc_age':100,'lhf_age':30}
print(max(age_dic.values()))
默认比较的是字典的key
print(max(age_dic))
for item in zip(age_dic.values(),age_dic.keys()): #[(18,'alex_age') (20,'wupeiqi_age') () () ()]
print(item)
print('=======>',list(max(zip(age_dic.values(),age_dic.keys()))))
l=[
(5,'e'),
(1,'b'),
(3,'a'),
(4,'d'),
]
l1=['a10','b12','c10',100] #不同类型之间不能进行比较
l1=['a10','a2','a10'] #不同类型之间不能进行比较
print(list(max(l)))
print('--->',list(max(l1)))
print(zip(('a','b','c'),(1,2,3)))
print(list(zip(('a','b','c'),(1,2,3),('c','e',3)))) #设定列表内一一对应的关系组成元祖,不是一一对应的少的都不要了
print(list(zip(('a','b','c''d'),(1,2,3))))
输出结果
<zip object at 0x00000000028FBFC8>
[('a', 1, 'c'), ('b', 2, 'e'), ('c', 3, 3)]
[('a', 1), ('b', 2), ('cd', 3)] #*******这里完全不一样啊cd一起了呀,和说好的不一样啊
p={'name':'alex','age':18,'gender':'none'} #出现顺序可能不一样,但是一一对应的
print(list(zip(p.keys(),p.values())))
zip方法只要是序列都可以,列表,字符串,元祖
print(list(zip('abcc','1234'))) # 输出[('a', '1'), ('b', '2'), ('c', '3'), ('c', '4')]
age_dic={'age1':18,'age3':20,'age4':32,'age2':45}
print(max(age_dic.values())) # value比较
print(max(age_dic)) #默认为key,所以比较key,一位一位来以ascii码表来比
输出
45
age4
max的高级用法
l=[
(5,'e'),
(1,'b'),
(3,'c'),
(6,'a'),
]
l1=['a10','b33','c1'] #不同类型之间不能比较
print(max(l)) # (6, 'a') 直接是比较第一个元素位置值大小关系
print(list(max(l)))
print('---->',max(l1)) #比较 位置元素依次进行比较
1:max函数处理的是可迭代对象,相当于一个for循环取出每个元素进行比较,注意,不同类型无法比较
2:每个元素间比较是从每个元素第一个位置依次比较,
l=[1,3,100,-1,2]
print(max(l))
dic={'age1':18,'age2':10}
print(max(dic)) #比较的是key
print(max(dic.values())) #比较的是key,但是不知道是那个key对应的
print(list(max(zip(dic.values(),dic.keys())))) # [18, 'age1'] 结合zip使用
终级用法
people=[
{'name':'alex','age':1000},
{'name':'wupei','age':10000},
{'name':'yuanhao','age':9000},
{'name':'linhaifeng','age':18},
]
字典无法直接比较,只有数字,字符串,集合能比较
max(people,key=lambda dic:dic['age'])
等效于
ret=[]
for item in people:
ret.append(item['age'])
print(ret)
max(ret)
print('取出来没有',max(people,key=lambda dic:dic['age']))
其他的内置函数
print(chr(97))
print(ord('a')) #显示ascii表中显示的对应数字
print(pow(3,3)) #3**3
print(pow(3,3,2)) #3**3%2
l=[1,2,3,4]
print(list(reversed(l))) #翻转
print(l)
print(round(3.5)) #四舍五入
print(set('hello')) #变成集合的形式 {'l', 'h', 'e', 'o'}
l='hello'
s1=slice(3,5) #切分
s2=slice(1,4,2) #可以指定步长
# print(l[3:5]) #取3到5 可读性差
print(l[s1])
print(l[s2])
print(s2.start) #开始序号
print(s2.stop)
print(s2.step) #内容多少
l=[3,2,1,5,7]
l1=[3,2,'a',1,5,7]
print(sorted(l)) #从小到大排序
# print(sorted(l1)) #排序本质就是在比较大小,不同类型之间不可以比较大小
people=[
{'name':'alex','age':1000},
{'name':'wupei','age':10000},
{'name':'yuanhao','age':9000},
{'name':'linhaifeng','age':18},
]
print(sorted(people,key=lambda dic:dic['age'])) #其实和比较大小是一个类型
name_dic={
'abyuanhao': 11900,
'alex':1200,
'wupei':300,
}
print(sorted(name_dic)) #按照key排序了 ['abyuanhao', 'alex', 'wupei']
print(sorted(name_dic,key=lambda key:name_dic[key])) #按照value排序,显示key #name_dic.keys()是value?
['wupei', 'alex', 'abyuanhao']
print(sorted(zip(name_dic.values(),name_dic.keys()))) #与zip结合[(300, 'wupei'), (1200, 'alex'), (11900, 'abyuanhao')]
print(str('1'))
print(type(str({'a':1})))
dic_str=str({'a':1}) #这个是字符串形式
print(type(eval(dic_str))) #
l=[1,2,3,4]
print(sum(l)) #求和
print(sum(range(5)))
print(type(1)) #查看数据类型
msg='123'
if type(msg) is str:
msg=int(msg)
res=msg+1
print(res)
def test():
msg='撒旦法阿萨德防撒旦浪费艾丝凡阿斯蒂芬'
print(locals()) #局部
print(vars()) # {'msg': '撒旦法阿萨德防撒旦浪费艾丝凡阿斯蒂芬'}
test()
print(vars(int))
文件引用
import-调用-->sys系统----->__import__()
import test
test.say_hi()
import 'test' #报错import不能导入字符串,_import_可以导入字符串 ,但是要用下面方式导入
module_name='test'
m=__import__(module_name)
m.say_hi()
文件处理
http://www.cnblogs.com/linhaifeng/articles/5984922.html#_label1
f=open('陈粒',encoding='utf-8') #指定这个文件用utf8打开 默认是GBK
data=f.read() #读文件内容,在硬盘上,需要加载到内存中,
# open是内存中的一个程序,想要从硬盘中找到文件,
# 但是应用程序要向操作系统要文件句柄并且赋值f
print(data)
f.close() #句柄回收,关闭文件
f=open('xxx') #存用gbk,打开也用gbk
data=f.read()
print(data)
#r w a 只读,只写,只追加模式
f=open('陈粒','r',encoding='utf-8') #只读模式
# data=f.read() #出现这个意味着文件全读完了,
# 标记到f.close那里了 导致f.readline() 读不出来了 ,要注释掉
# print(data)
print(f.readable()) #判断是否可读
print('第1行',f.readline(),end='') #end=''去掉换行
print('第2行',f.readline()) # 一次读一行
print('第3行',f.readline())
print('第4行',f.readline())
data=f.readlines()
print(data)
# 输出 ['2222222\n', '3333333333\n', '4444444\n', '55555555\n', '66666\n', '7777777\n', '888888']
f.close() #这个一定要写上
文件处理写操作
f=open('陈粒1','w',encoding='utf8') #写模式 ,
# f.read() #报错,不可读
f.write('11111111\n') #文件不存在会新建一个文件,文件存在,则会清空后再操作
f.write('222222222\n') #换行要自己写\n
f.write('333\n4444\n555\n')
# f.writable()
f.writelines(['555\n','6666\n']) #传列表形式
f.writelines(['555\n','6666\n',1]) # 文件内容只能是字符串,
# 只能写字符串 读模式读出来的也只是字符串
f.close()
文件处理追加模式
f=open('陈粒1','a',encoding='utf-8')
f.write('写到文件最后')
文件处理其他模式
# 文件没有修改,都是覆盖 都是从硬盘中取文件然后在内存中更改,然后再将修改后的覆盖到硬盘中
f=open('xxx','r+',encoding='gbk') #'r+' 可读可写
# data=f.read()
# # print(data)
f.write('123sb') #光标在哪就从哪里开始覆盖内容
f.write('sb') #如果没点光标位置,则在第一行开始覆盖
#文件修改
src_f=open('xxx','r',encoding='gbk') #注意查看时候软件编码要和encoding设置的一致才能正确显示
data=src_f.readlines()
src_f.close()
print(data) # ['sb海峰\n', '123456']
dst_f=open('xxx','w',encoding='gbk') #编码可以不同
# dst_f.writelines(data)
dst_f.write(data[0])
dst_f.close()
with open('a.txt','w') as f: #获取句柄f 并且可以不用写close
f.write('1111\n')
src_f=open('xxx','r',encoding='gbk')
dst_f=open('xxx','w',encoding='gbk')
with open('xxx','r',encoding='gbk') as src_f,\ #太长了可以\换行
open('xxx_new','w',encoding='gbk') as dst_f: #记得获取句柄
data=src_f.read() #读然后写
dst_f.write(data)
f=open('a.txt')
print(f.encoding) #查看文件编码