day_01:__all__、__init__、推导式

参考链接:http://47.112.233.130:8889/#/runLog

1.__all__:

   1)如在test.py中有 add、sub方法,其中只有add方法被包裹起来了(__all__:["add"])

   2)在第二个py文件中调用 from test.py import *后,只能使用add方法,调用sub方法会提示不可调用(会爆NameError)

2.__init__:、

可以通过在__init__中先把方法引入进来,这样方便导包

 

3.

PEP 257规范

https://github.com/qiuxiang/pep/blob/master/peps/257.md

4.命名元组

5.字典推到式

注意三目运算符

  前面是赋值,后面是过滤数据的

  li2 = [True if i%2 == 0 else False for i in range(100)]

  print(li2)

 

练习题目:

1、通过列表推导式完成下面数据类型转换
现在有以下数据, li1 = ["{'a':11,'b':2}","[11,22,33,44]"]
需要转换为以下格式: li1 = [{'a':11,'b':2},[11,22,33,44]]

2、 Names=['python','java','php','c','c++','django','unittest','pytest','pymysql'],请通过列表推导式,获取names中字符串长度大于4的元素

3、通过字典推导式,颠倒字典的键名和值:将{'py': "python09", 'java': "java09"} 转换为:{'python09': "py", 'java09': "java"}

4、将字典{'x': 'A', 'y': 'B', 'z': 'C' } 通过推导式转换为:['x=A','y=B','z=C']

"""
# 第一题
li1 = ["{'a':11,'b':2}", "[11,22,33,44]"]
res1 = [eval(i) for i in li1]

# 第二题
Names = ['python', 'java', 'php', 'c', 'c++', 'django', 'unittest', 'pytest', 'pymysql']
res2 = [i for i in Names if len(i) > 4]

# 第三题
dic3 = {'py': "python09", 'java': "java09"}
res3 = {v: k for k, v in dic3.items()}

# 第四题
dic4 = {'x': 'A', 'y': 'B', 'z': 'C'}
res4 = [f'{k}={v}' for k, v in dic4.items()]

if __name__ == '__main__':
# print(res1)
# print(res2)
# print(res3)
# print(res4)
pass
#
# for k, v in dic4.items():
# # print(i)
# # k, v = i
# print(k)
# print(v)

爱折腾的小测试
原文地址:https://www.cnblogs.com/newsss/p/15113202.html