python s13 day04
1.1 all() 和 any( )
all()
any()
0,None,"", [], (),{} #布尔值为0的 列举,None ,空列表,空元祖,空。
print(bool(()))
所有为真,才为真
n = all([1,2,3,None])
print(n)
只要有真,就为真
n = any([[],0,"",None])
print(n)
ascii() # 自动执行对象的 __repr__
class Foo:
def __repr__(self):
return "444"
n = ascii(Foo())
print(n)
bin()
oct()
hex()
print(bin(5))
print(oct(9))
print(hex(15))
1.2、callable( )
li=[11,22,33,44,]
def f1(arg):
arg.append(55)
#li = f1(li) ##从新复制的,函数默认返回None
f1(li)
print(li)
def f1():
pass
f2=123
f2()
print(callable(f1)) #验证函数是否可执行
print(callable(f2))
==========================================================================
#char() #内置函 把一个数字转化为字母
#ord() #内置函数 把一个字母转化为数字
>>> ord("存")
23384
>>> chr(23384)
'存'
>>>
r=chr(55)
print(r)
n=ord("a")
print(n)
'''
'''
import random #生成随机验证码
li= []
for i in range(6):
temp=random.randrange(65,90)
c=chr(temp)
li.append(c)
result="".join(li)
print(result)
import random #生成随机验证码
li= []
for i in range(6):
r=random.randrange(0,5) #这个本来就是不确定法的,所以当指定的数值出现时,机会生成个 str()字符串形式,增加到列表中。
if r==2 or r ==4:
num=random.randrange(0,10)
li.append(str(num)) # 注意此处的
else:
temp=random.randrange(65,90)
c=chr(temp)
li.append(c)
result=''.join(li)
print(result)
#生成随机验证码方法三
import random
li= []
code=[]
for i in range(6):
if i ==random.randint(1,5):
code.append(random.randint(1,5))
else:
temp=random.randint(65,90)
code.append(chr(temp))
print(code)
####################################################
'''
compile() #专门用来编译,将字符串编译成 python 代码
s='print (123)'
r
两都执行 python代码的,不同的是结果有无返回。。。。
#exec() #函数显更niubi ,接收代码或者字符串。无返回值
#eval() #执行专门 接收处理 表达式. 返回一个结果有返回值。【用~的多】
需求实现,给你一个excel,利用eval处理;
'''
'''
ret=exec('8*8') #exec无返回值,得不到64的值
print()
ret=eval('7+9+9')
print(ret)
ret=eval('print (123)') #eval执行表达式,就像是 字符串。
print (ret)
执行结果:
None
25
123
None
'''
print (dir(list)) #内部函数
help (list) #功能显示
'''
'''
#需求实现:分页的实现。
#共有97页,每页显示10条,需要多少页。
r=divmod(199,10) #a 除以b 得到的商和余数。
print(r[0])
print(r[1])
n,m=r[0],r[1]
执行结果:
19
9
==================================================================
#对象和类区别?
#s='alex' #对象【str】 'alex'===> str , list
#对象是类的实例
#用于判断某个对象-->是否为某个类的实例。
s='alex'
r=isinstance(s,dict)
print (r)
#字典才是字典的实例,
s=[11,11,11]
b=isinstance(s,list)
print(b)
'''
################################################
'''
#字典和列表,元祖都是可迭代的对象。
#Python内建的filter()函数用于过滤序列。
#和map()类似,filter()也接收一个函数和一个序列 。
#和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
#filter(函数,可迭代对象)
def f2(a):
if a>22:
return True
li=[11,22,33,44,55]
ret=filter(f2,li)
print(ret) #因为ret 是个元素,是个filter 类型。
print(list(ret))
print(tuple(ret))
#filter内部,循环第二个参数,
#根据True 或者 false
执行结果:
<filter object at 0x0000010B5E6E2048>
[33, 44, 55]
()
#方法二:【三元运算】
lst = [11,22,33,44,55]
y = [a for a in lst if a > 22]
print(y)
#lambda 自动return True false
f1=lambda a:a>30
ret=f1(90)
print(ret) #返回的是True.可用在此处~~~~
##比较的是:lambda也是函数。通过他也能实现出来。
llit=[32,32,13,78,79]
result=filter(lambda a: a>32,llit)
print(list(result))
'''
##########################################################
'''
#map()函数
#此函数类加+100
list1=[11,22,33,44,55]
def f1(args):
result=[]
for i in args:
result.append(100+i)
return result
f1(list1)
print(f1(list1))
#进行更简单的方法,引出map()
#map(函数,可迭代的对象(PS:可以for 循环的东西,如list,tuple.....))
list1=[11,22,33,44,55]
def f2(a):
return a+100
result=map(f2,list1)
print (result)
print(list(result))
执行结果:
<map object at 0x00000223B5EA8588>
[111, 122, 133, 144, 155]
对比的是:
list1=[11,22,33,44,55]
def f2(a):
return a+100
result=map(f2,list1)
print (result) #打印出类型
print(tuple(result)) #此处使用的tuple可迭代的对象。。
执行结果:
<map object at 0x000002E5DC3F8588>
(111, 122, 133, 144, 155)
print('=======================')
#NEXT....也可简单的用lambda函数。
result=map(lambda a:a+100,list1)
print(result)
print(list(result))
#总结:
#filter #函数返回True,将元素添加到结果中
#map #将函数返回值添加到结果中。。。。
#学生附加题
li = [11,22,33,44,55]
result = map(lambda a:a+100,list(filter(lambda a:a>33,li)))
print (list(result))
'''
##############################################################
'''
# locals() #局部变量
# globals() #全局变量
#
# id() #内存地址
# isinstance()
# issubclass()
byte( )内置函数使用。
#len() #使用字典啊,列表啊
s='李姐'
print(len(s)) #说6或者2都对,
# python3更进步了【默认显示是字符】。。
#python2 显示的是【显示是字节】。
s='李姐'
b=bytes(s,encoding='utf-8') #byte 是字符串转换为 字节。【从硬盘到内存】
print(len(b)) #python3用这种方式显示的字节。。【重要呢~~~】
执行结果:
"C:\Program Files\Python35\python.exe" "C:/Users/ju do it/PycharmProjects/untitled1/day04/笔记部分/s2.py"
2
6
========================================================================================================================
'''
提示:
#将一个字符串转换为一个字典和列表等,字符串内部的必须是双引号。
import json
s='[1,2,3,"ew",2]' ##此处的里的元素是双引号,不能是单引号。注意
#s='["k1":"v1"]'
n=json.loads(s)
print(type(n),n)
执行结果:
<class 'list'> [1, 2, 3, 'ew', 2]
#NEXT
r=input("input:") #定义个字符串,因为默认的输入的为字符串。
#dic=json.loads(r)
dic='server 10.10 122.32,ip:192.168.1.1 weight:23,maxconn:30'
bk=dic['backend:']
rb="server %s %s weight %d maxconn %d" % (dic['record'])['server'],\
dic['record']['server'],\
dic['record']['weight'],\
dic['record']['maxcon'])
'''
########################################################
'''
#map() 对比filter()
#@property 和 __repr__(self):
#repr()
#staticmethod()
#reversed() #反转
#round() 四舍五入
#slice() #
l1=["alex",11,22,]
l2=['is',12,23,]
l3=['sb',13,14]
r=zip(l1,l2,l3)
#print(list(r))
temp=list(r)[0]
ret=' '.join(temp)
print(temp)
print(ret)
'''
###########################################
###########################################
'''
def login(func):
#print ('登录成功!')
def iner():
print ('登录成功!')
func() #这里也是第一次执行f1()
#return func() #这里是第二次执行f1()
#注意的是遇到了 return 就会终止~执行。
print ('退出登录')
#return iner() #正规写法
return iner #返回函数体等同于和那个执行函数 inner( )= f1( )函数。
# 执行函数
@login
def f1():
print('F1')
f1()
#@+函数名
#功能: 1. 自动执行outer()函数并将下面的函数当f1当做参数传递
# 2. 将login() 函数返回值,重新赋值给 f1 .
'''
def login(func):
#print ('登录成功!')
def iner():
print ('登录成功!')
r=func() #这里是第一次执行f1()
print ('退出登录')
return r #返回f1()函数执行的return值。。
#return iner() #错误写法,返回的是None.就说为空。
return iner #返回函数体
@login
def f1():
print('F1')
return 'f1操作成功'
###main code####
ret=f1()
print ("返回值",ret)
执行结果:
登录成功!
F1
退出登录
返回值 f1操作成功
'''
#########万能参数##########;
'''
def login(func):
#print ('登录成功!')
def iner(*args,**kwargs):
print ('登录成功!')
r=func(*args,**kwargs) #这里是第一次执行f1()
print ('退出登录')
#return r #返回f1()函数执行的return值。。
#对比,这里才是真正执行 下面函数的地方。
return r
#return iner() #错误写法
return iner #返回函数体
@login
def f1(arg):
print('F1',arg)
return 'f1操作成功'
@login
def f2(a1,a2):
print('F2',a1,a2)
return 'f2操作成功'
@login
def f3():
print('F3')
return 'f3操作成功'
#main code 执行函数;
ret=f1('砍他')
print ("返回值",ret)
执行结果:
登录成功!
F1 砍他
退出登录
返回值 f1操作成功
##################################################
GitHub:https://github.com/ju-do-it
个人博客:https://zhangju.lookdoc.cn
博客园:https://www.cnblogs.com/zhangju
Copyright ©2020 Ju-do-it
【转载文章务必保留出处和署名,谢谢!】
个人博客:https://zhangju.lookdoc.cn
博客园:https://www.cnblogs.com/zhangju
Copyright ©2020 Ju-do-it
【转载文章务必保留出处和署名,谢谢!】