内置函数、函数即变量、json

引入第三方变量的方式交换两个变量的值:

a=1

b=2

c=0

c=a 把a的值给c,c=1

a=b 把a的值给b,b=1

b=c 把c的值给b,b=1

print(a,b),运行结果:a=2 b=1

交换两个变量的值,只有python可以这样写

a=1

b=2

a,b=b,a交换变量的值

print(a,b) 运行结果 :a=2 b=1

不引入第三方变量的方式 交换两个值

a=1
b=2
a=a+b #a3
b=a-b #b1
a=a-b #a2
print(a,b),#运行结果:a=2 b=1
内置函数:
len int type str dict等都是内置函数
a=bin(1) 十进制转二进制,运行结果:0b1   存在b所以是字符串类型str
print(a.replce('0b','')) 用空格替换多余的字符 显示为正确的二进制数值
print(chr(65))#打印数字对应的ascii       运行结果:A
print(ord('A'))#打印字符串对应的ascii码 运行结果:65
print(dir(1))#打印传入对象的可调用方法 ,不看'_xx_'的
a=[]
print(dir(a))
同时循环两个list,用zip,以个数最小的那个list取值
id=[1,2,3,0,4]
name=['aa','bb','cc','gg']
name1=['张三','李四']
for i,k,s in zip(id,name,name1):
print(i,k,s) 运行结果:1 aa 张三
2 bb 李四
print(sorted(id,reverse=True))#默认排序升序
print(sorted('422435435',reverse=True))

eval 执行python代码,简单的运算,定义数据类型和运算

a='1+1'
print(eval(a)) 运行结果:2

复杂的代码不能执行,如下所示
a='def func(a):pass'
print(eval(a)) 运行报错

exec执行复杂的代码,某些自动执行代码的网站用的就是exec
s='''def a():print('sa')'''
exec(s) 运行复杂的代码
a() 运行结果: sa
map和filter
map循环调用函数,把每次函数处理的结果,放到一个list
def a(s):
if s%2==0:
return s
else:
return 'ok'
xa=[x for x in range(11)]
res1=map(a,xa) 前一个值是函数名,后一个是循环的list 循环xa 调用函数a(xa循环的值)
print(list(res1)) 不写list的话,打印的是一个map的对象
运行结果:[0,ok,2,ok,4,ok,6,ok,8,ok,10]
filter过滤返回Fal
def a(s) if s%2==0:
       return s  如果输入0 返回值为0 ,非0即真,0的话是假 所以是False;return True 则判断0是偶数 为真 也会返回到list--[0,2,4,6,8,10]
else:
return False
xa=[x for x in range(11)]
res1=filter(a,xa)
print(list(res1)) 运行结果:[2,4,6,8,10]

函数即变量
def say(name):
print(name)
lyj=say 把say这个函数定义给lyj这个变量lyj()等于say()
lyj('lyj') 调用函数 运行结果:lyj
----------------------------------------------------------------
def add():
print('增加商品')
def view():
print('查看商品')
def delete():
print('删除商品')
choice=input('请输入选择:1,2,3,').stript()
zd={
'1':add,
'2':view,
'3':delete}
zd[choice]() zd[chice]相当于定义的变量add,view,delete
------------------------------------------------------------------
处理json:通用的数据类型,json串就是字符串 写进文件的都是字符串,读取出来的也是字符串
import json
d={'sa':'ad',
'asd':'dasdas'}
res=json.dumps(d,indent=4,ensure_ascii=False) 把字典、list转成json串,indent多少缩进,ensure_ascii可以显示中文
f=open('sa','w',encoding='utf-8')
f.write(res)
f.close()

--------------------------------------------------------------------------
把json串转换成list 或者字典 用loads 如果json是list样式,则转成list类型 ,若是字典样式,则转成字典类型
f=open('sa','r',encoding='utf-8')
r=f.read()
dict_r=json.loads(r)
print(type(dict_r)) 类型是字典
------------------------------------------------------------------------------
针对文件操作,dump 写入文件
f=open('sa','w',encoding='utf-8')
json.dump(d,f,ensure_ascii=False,indent=4)
load 读文件
f=open('sa','r',encoding='utf-8')
json.load(f)

 



posted @ 2018-01-25 21:05  liyajing  阅读(115)  评论(0编辑  收藏  举报