一、导言
二、用字典映射代替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. Python学习笔记(二):字符串类型

    在上一篇随笔(https://www.cnblogs.com/g-qiang/p/10448813.html)中,说到 Python 有六种标准数据类型,而数字类型和字符串类型又是其中基本的数据类型. ...

  2. 网页里如何使用js屏蔽鼠标右击事件

    图片.png 在后台管理系统里面,遇到了这样的一个问题,右击ztree菜单,弹出修改界面,但是,现在确实这样的,右击默认弹出功能提示的框框,看上去似乎很影响自己想要的功能,只能禁用了,那么,网页里如何 ...

  3. git checkout -b 报错

    有时候在git中checkout -b 出现如下报错 $ git checkout -b test --track origin/master fatal: Cannot update paths a ...

  4. Android与设计模式——单例(Singleton)模式

    概念: java中单例模式是一种常见的设计模式.单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种. 单例模式有一下特点: 1.单例类仅仅能有一个实例. 2.单例类必须自己自己创建自己的唯一实例. ...

  5. Codeforces Round #249 (Div. 2) (模拟)

    C. Cardiogram time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  6. linux程序设计——个人总结

    linux程序设计--个人总结 到今天为止,<linux程序设计>学习基本完毕了.从五月下旬開始接触linux,学习安装Ubuntu14.04,六月份開始学习<linux程序设计&g ...

  7. Effective C++ 条款12

    复制对象时,勿忘其每个成分 作者在本节条款提醒我们,在多重继承的情况下进行copy或者copy assignment 的operator=的编写时,一定要考虑base 类部分数据的初始化后者复制. 对 ...

  8. Session、Cookie总结

    什么是sessnion,session存在哪,能存多久.怎么设置他的存储时间 一.什么是session 1.session 被翻译为会话.当client(一般都是浏览器作为client)訪问serve ...

  9. 使用 Spring HATEOAS 开发 REST 服务--转

    原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-SpringHATEOAS/index.html?ca=drs-&utm_source ...

  10. childNodes.length和form.length的不同

    我们知道,DOM里面提供了element.childNodes.length属性,childNodes 属性返回节点的子节点集合,以 NodeList 对象. 那么childNodes包含哪些节点呢? ...