一、导言
二、用字典映射代替switch case语句
 
# 字典代替 switch 语句

# switch ()
# {
# case 0 :
# dayName= 'a';
# break;
# case 1 :
# dayName= 'b';
# break;
# case 2 :
# dayName= 'c';
# break;
# ...
# default :
# dayName= 'none';
# break;
# }
def get_a():
return 'a' def get_b():
return 'b' def get_c():
return 'c' def get_default():
return 'none' day=2
switcher = {
0:get_a,
1:get_b,
2:get_c
} day_name=switcher.get(day, get_default)()
print(day_name) day_name=switcher.get(6, get_default)()
print(day_name) 结果:
c
none
三、列表推导式
 
# 列表推导式(根据一个列表推到一个新的列表)list set dict 都可以被推导

a = [1,2,3,4,5,6,7,8]

b = [i**3 for i in a]
print(b) # [1, 8, 27, 64, 125, 216, 343, 512] b = [i**3 for i in a if i>=5]
print(b) # [125, 216, 343, 512]
list =[y for x in range(5) for y in range(2)]
print(list) # [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
a = {1,2,3,4,5,6,7,8}

b = {i**3 for i in a}
print(b) # {64, 1, 512, 8, 343, 216, 27, 125}
四、字典如何编写列表推导式
students = {
'一号':100,
'二号':90,
'三号':80
} b = [key for key, value in students.items()]
print(b) # ['一号', '二号', '三号'] b = {value:key for key, value in students.items()}
print(b) # {100: '一号', 90: '二号', 80: '三号'} b = (key for key, value in students.items())
print(b) # <generator object <genexpr> at 0x00000187AB059410>
for x in b:
print(x) # 一号
# 二号
# 三号
五、 iterator与generator
六、 None
# None  空 不等于 空字符串 空列表 0 False

a = ''
b = False
c = [] print(a==None)
print(b==None)
print(c==None)
print(type(None)) # False
# False
# False
# <class 'NoneType'> 判断空
a=[] /func() / '' if a: if not a:
七、对象存在并不一定是True
None 等于 False
class Test():
def __len__(self):
return 0 t = Test()
print(bool(t)) # False class Test1():
pass t = Test1()
print(bool(t)) # True
八、__len__与__bool__内置方法
class Test():
def __len__(self):
return 8
# def __bool__(self):
# return 0 print(len(Test())) #
print(bool(Test())) # True
 
class Test():
def __len__(self):
print('len func')
return 8
def __bool__(self):
print('bool func')
return False print(bool(Test())) # bool func
# False
 

Python(十二) Pythonic与Python杂记的更多相关文章

  1. Python3(十二) Pythonic与Python杂记

    一.用字典映射代替switch case语句 if/else可以代替switch但是非常不合适. 用字典代替switch: day = 5 switcher = { 0:'Sunday', 1:'Mo ...

  2. Python之路【第十二篇】:Python面向对象高级

    一.反射 1 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究 ...

  3. 十二、导出python脚本

    一.为什么要导出? 导出成多语言脚本,方便二次开发 使用其他语言的test runner 使用自己最熟悉的语言做接口自动化测试 二.导出成python脚本 演示 导出成python的requesy脚本 ...

  4. python(十二)下:ORM框架SQLAlchemy使用学习

    此出处:http://blog.csdn.net/fgf00/article/details/52949973 本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 ...

  5. 轻松自动化---selenium-webdriver(python) (十二)

    本节重点: l 键盘按键用法 l 键盘组合键用法 l send_keys() 输入中文运行报错问题 键盘按键键用法: #coding=utf-8 from selenium import webdri ...

  6. 第十二章:Python の 网络编程进阶(一)

    本課主題 RabbitMQ 的介紹和操作 Hello RabbitMQ RabbitMQ 的工作队列 消息确应.消息持久化和公平调度模式 RabbitMQ的发布和订阅 RabbitMQ的主题模式 Ra ...

  7. Python之路,第十二篇:Python入门与基础12

    python3 函数3 装饰器 decorator   *** 概念:装饰器是一个函数,主要作用是用来包装另一个函数或类: 包装的目的:是在不改变原函数名的情况下,改变被包装函数(对象)的行为. 装饰 ...

  8. 练习三十二:用python实现:按相反的顺序输出列表的每一位值

    用python实现:按相反的顺序输出列表的每一位值 1. 使用list[::-1] list1 = ["one","two","three" ...

  9. 自学Python十二 战斗吧Scrapy!

    初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 还是先推荐几个学习的教程:Scrapy 0.2 ...

随机推荐

  1. thinkphp5 编辑时 唯一验证 解决办法

    若定义了相关的验证规则,如: namespace app\seller\validate; use think\Validate; class Goodsmtag extends Validate { ...

  2. caioj 1204 Catalan数(模板)

    题目中对卡特兰数的总结很不错 以下copy自题目 Catalan数列:1,1,2,5,14,42,(前面几个要背) 即 h(0)=1,h(1)=1,h(2)=2,h(3)=5...公式:h(n)=C( ...

  3. 紫书 习题 11-9 UVa 12549 (二分图最小点覆盖)

    用到了二分图的一些性质, 最大匹配数=最小点覆盖 貌似在白书上有讲 还不是很懂, 自己看着别人的博客用网络流写了一遍 反正以后学白书应该会系统学二分图的,紫书上没讲深. 目前就这样吧. #includ ...

  4. GenIcam标准(三)

    2.6. 缓存 如果某个实现对每个写操作支持范围.实现和可用状态的检查,通常会触发一系列对相机的读操作.大多数用于有效性检查的数值很少或不会发生变化,所以可以放入缓存.相机描述文件包含所有必需的定义以 ...

  5. spring 、Mybatis配置sql server数据库

    学习了:http://www.cnblogs.com/amwicfai/p/3181003.html beans.xml中的配置写法: <!-- 数据源 --> <bean id=& ...

  6. win7休眠的开启与关闭方法命令行操作和图文结合的鼠标操作

    win7休眠的开启与关闭方法 从開始菜单中找到"附件→命令提示符",手工输入例如以下命令:powercfg -a.从这里能够清楚的看到,计算机是支持休眠的.显示"尚未启用 ...

  7. iOS AES的加密解密

    主要是要得到加密后的原来的字符创,MD5无法得到原有的,仅仅能用AES+base64 要用GTMBase64这个能够自己去下载, 主要看另外2个类文件. #import <Foundation/ ...

  8. ARM嵌入式复习

    第一章 1.嵌入式系统 “以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能,可靠性,成本,体积,功耗要求严格的专用计算机系统” 根据应用的要求,沿着“体积小,低功耗,高可靠”方向发 ...

  9. Android——PullToRefresh自动刷新

    需求:强制刷新 方法一: PullToRefreshListView本身提供了一个setRefreshing()接口,调用该接口会自动触发下拉刷新的操作(前提是支持下拉刷新).按照一般的操作我们直接在 ...

  10. VS2013+PTVS,python编码问题

    1.调试,input('中文'),乱码2.调试,print('中文'),正常3.不调试,input('中文'),正常4.不调试,print('中文'),正常 页面编码方式已经加了"# -- ...