前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python学习_14

python学习_14

作者头像
py3study
发布2020-01-14 11:37:10
2140
发布2020-01-14 11:37:10
举报
文章被收录于专栏:python3

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:

代码语言:javascript
复制
a=[1,2,3,4,5]

result = []
result.append(a[-1])
result.extend(a[0:4])
print(result)

方法2:

代码语言:javascript
复制
result = []
result.append(a[-1])
for v in a[0:4]:
    result.append(v)
print(result)

方法3:

代码语言:javascript
复制
a=[1,2,3,4,5]

result = []

for v in a[0:4]:
    result.append(v)

result.insert(0,a[-1])
print(result)

习题9:统计字符串的个数

代码语言:javascript
复制
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:统计列表中所有类型数据的个数

代码语言:javascript
复制
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:求列表中所有数字的和,包括数字字符串

代码语言:javascript
复制
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的放在前面,否则会报错;

代码语言:javascript
复制
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)  
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档