python学习_14
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习_14相关的知识,希望对你有一定的参考价值。
exec(str)
可以执行多行语句,语句块,没有返回值
>> command = """
... a= [1,2,3]
... for i in a:
... print(i)
... """
>> exec(command)
1
2
3>> a = [1,2,3]
>> for i in a:
... exec("print(" + str(i) + ")")
...
1
2
3
eval(str)
只能执行单行语句,有返回值
>> a = eval("2*4")
>> a
8>> s = "print(" + str(10) + ")"
>> eval(s)
10
函数引用
函数名可以赋值给其他的变量引用,用引用加括号可以直接调用原函数
>> a = abs
>> a(-10)
10>> def func(f):
... print(f(-1))
...
>> func(abs)
1
函数解包传递参数
解包元组传参
>> def func(args):
... print(args)
...
>> t = (2,3,4)
>> func(t) #可以利用星号加上元组名传递参数
(2, 3, 4)>>?def?add(a,b):return?a+b
...
>>?add(*(1,2))
3
解包字典传参
>> def func(kwargs):
... for k,v in kwargs.items():
... print(k,v)
...
>> d = {"name":"huhongqiang","age":18,"sex":"m"}
>> func(d)
name huhongqiang
age 18
sex m>> def sub(a,b):
... return a - b
...
>> sub(**{"a":3,"b":2})
1
习题8:[1,2,3,4,5] 变成 [2,3,4,5,1]
方法1:
a=[1,2,3,4,5]
result = []
result.append(a[-1])
result.extend(a[0:4])
print(result)
方法2:
result = []
result.append(a[-1])
for v in a[0:4]:
result.append(v)
print(result)
方法3:
a=[1,2,3,4,5]
result = []
for v in a[0:4]:
result.append(v)
result.insert(0,a[-1])
print(result)
习题9:统计字符串的个数
l = [1,2,"s",[1,23],{1:2},(1,2),set([1,2]),"b"]
str_number = 0
for v in l:
if isinstance(v,str):
str_number += 1
print(str_number)
习题10:统计列表中所有类型数据的个数
l = [1,2,"s",[1,23],{1:2},(1,2),set([1,2]),"b"]
d = {"str":0,"list":0,"tuple":0,"int":0,"set":0}
for v in l:
if isinstance(v,str):
d["str"] += 1
elif isinstance(v,list):
d["list"] += 1
elif isinstance(v,tuple):
d["tuple"] += 1
elif isinstance(v,set):
d["set"] += 1
#elif isinstance(v,int):
#d["int"] += 1
print(d)
习题11:求列表中所有数字的和,包括数字字符串
a = [1,2,3,[4,5,6],{1:6,2:8,"a":"12",3:4}]
result = 0
for value in a:
if isinstance(value,int):
result += value
elif isinstance(value,list):
for v in value:
if isinstance(v,int):
result += v
elif isinstance(value,dict):
for key in value.keys():
if isinstance(key,int):
result += key
for v in value.values():
if isinstance(v,int):
result += v
elif v.isdigit():
result += int(v)
print(result)
a = [1,2,3,[4,5,6],{1:6,2:8,"a":"12",3:4}]
这个地方有个小坑,判断字典value值是否是数字的时候,要先把判断int的放在前面,否则会报错;
result = 0
for value in a:
if isinstance(value,int):
result += value
elif isinstance(value,list):
for v in value:
if isinstance(v,int):
result += v
elif isinstance(value,dict):
for key in value.keys():
if isinstance(key,int):
result += key
for v in value.values():
#这个先判断了是否是数字字符串,因为整数没有isdigit()方法
if v.isdigit():
result += v
elif isinstance(v,int):
result += int(v)
print(result)
以上是关于python学习_14的主要内容,如果未能解决你的问题,请参考以下文章