day17

print(zip(('a','b','c'),(1,2,3)))
print(list(zip(('a','b','c'),(1,2,3))))
#结果
<zip object at 0x00EBB0F8>
[('a', 1), ('b', 2), ('c', 3)]

p={'name':'alex','age':18,'gender':'no'}
zip(p.keys(),p.values())
print(list(zip(p.keys(),p.values())))

print(list(zip('hello','12345'))) #zip(序列,序列)

l=[1,3,100,-1,2]
print(max(l))
print(min(l))

people=[
{'name':'alex','age':1000},
{'name':'wupeiqi','age':10000},
{'name':'yuanhao','age':9000},
{'name':'linhaifeng','age':18}
]

age_dic={'age1':18,'age4':20,'age3':100,'age2':30}
print(max(age_dic.values()))

#默认比较的是字典的key
print(max(age_dic)

for item in zip(age_dic.values(),age_dic.keys()): #(18,'age1') (20,'age4') (100,'age3') (30,'age2')
  print(item)

print(list(max(zip(age_dic.values(),age_dic.keys())))) #[100, 'age3']

l=[
  (5,'e'),
  (1,'b'),
  (3,'a'),
  (4,'d')
]

print(list(max(l)))

l1=['a10','b12','c10'] #不同类型之间不能比较
print(list(max(l1))) #['c', '1', '0']

people=[
  {'name':'alex','age':1000},
  {'name':'wupeiqi','age':10000},
  {'name':'yuanhao','age':9000},
  {'name':'linhaifeng','age':18}
]
print(max(people,key=lambda p:p['age']))

1、max函数处理的是可迭代对象,相当于一个for循环取出每个元素进行比较,
注意,不同类型之间不能进行比较
2、每个元素间进行比较,是从每个元素 的第一个位置依次进行比较,
如果这一个位置分出大小,后面的不需要比较,直接得出两元素的大小
min()同理

print(chr(97)) #a
print(ord('a')) #97

print(pow(2,3)) #2**3
print(pow(3,3,2)) #3**3%2

l=[1,2,3,4]
print(list(reverse(l)))
print(l)

print(round(3.5)) #四舍五入

l='hello'
s1=slice(3,5) #切片
s2=slice(1,4,2) #指定步长
print(l[s1])
print(l[s2])
print(s2.start)
print(s2.stop)
print(s2.step)
print(l[3:5])


l=[3,2,1,5,7]
print(sorted(l)) #排序本质就是比较大小,不同类型之间不能比较


people=[
  {'name':'alex','age':1000},
  {'name':'wupeiqi','age':10000},
  {'name':'yuanhao','age':9000},
  {'name':'linhaifeng','age':18}
]
print(sorted(people,key=lambda p:p['age']))


name={
  'alex':200,
  'wupeiqi':300,
  'yuanhao':900
}
print(sorted(name,key=lambda key:name[key]))

print(sorted(zip(name.values(),name.keys())))

l=[1,2,3,4]
print(sum(l))
print(sum(range(5)))


vars()两种用法,一种不加参数,一种加参数

def test():
  msg='asdf'
  print(locals())
test()
#与上相同
def test():
  msg='asdf'
  print(vars())
test()

print(vars(int))

#模块就是py文件

#在test.py 中定义一个函数say_hi
def say_hi():
  print('你好蒋先森')
say_hi()

#然后在另一个py文件中调用这个函数

import test
test.say_hi()

#import不能导入字符串 _import_导入的是字符串类型

modul_name='test'
import modul_name #出错
m=_import_(modul_name)
m.say_hi()


#文件处理
文件处理流程
1、打开文件,得到文件句柄并赋值给一个变量
2、通过句柄对文件进行操作
3、关闭文件

#建一个文件:陈粒
打开文件
f=open('陈粒',encoding='utf-8') #open(绝对路径或者相对路径) 默认只读
data=f.read()
print(data)
f.close()

#建一个文件(以gbk形式保存):xxx
f=open('xxx') #调操作系统
data=f.read()
print(data)

#只读:r 只写:w 只追加:a

f=open('陈粒','r',encoding='utf-8')

data=f.read() #读取文件全部
print(f.readable()) #True
print(f.readline(),end='') #读第一行 去掉换行
print(f.readline()) #读第二行
print(f.readline()) #读第三行
data=f.readlines() #
print(data)
f.close()

#往文件里写东西
f=open('陈粒','w',encoding='utf-8') #先清空,在写,或者文件不存在,先新建文件
f.write('111111 ')
f.write('222222')
f.write('33333 44444 555555 ')
#f.writable()
f.writelines(['666666 ','77777 ']) #文件内容必须是字符串类型
f.close()

#文件追加
f=open('陈粒','a',encoding='utf-8')
f.write('88888 ')
f.close()


#文件处理其他模式
f=open('xxx','r+',encoding='gbk')
print(f.read())
f.write(' 蒋俊峰 ')
f.close()

#改文件
src_f=open('xxx','r',encoding='gbk')
data=src_f.readlines()
print(data)
src_f.close()

for i in data:
  print(i)

print(data)

dst_f=open('xxx_new','w',encoding='gbk')
#dst_f.write(str(data))
dst_f.write(data[0])
dst_f.close()

#自动关闭文件,不用手动关闭

with open('a.txt','w',) as f:
f.write('1111 ')

with open('xxx','r',encoding='gbk') as src_f,
open('xxx_new','w',encoding='gbk') as dst_f:

 2018-08-19

原文地址:https://www.cnblogs.com/jiangjunfeng/p/9502288.html