一、导言
二、用字典映射代替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. Fastlane基础介绍

    Fastlane是什么 Git地址: Fastlane 文档地址:Fastlane Document Fastlane是一整套的客户端CICD工具集合.Fastlane可以非常快速简单的搭建一个自动化 ...

  2. Mysql学习总结(20)——MySQL数据库优化的最佳实践

    1)谨慎而有效地使用索引 选择合理的索引(前缀性及可选性).删除没有用的索引. 2)使用规范化,但不要使用过头 规范化(至少是第三范式)是一个易于理解且标准的方法.然而,在有些情况下,你可能希望违反这 ...

  3. hadoop-01-ssh无密登录配置

    1,分配master机器2台,slave机器5台: 2,在全部机器上面配置/etc/hosts设置 3,全部机器上面进行ntp设置:TODO 4,在master机器上面: 不要用root登录 1) s ...

  4. Auto-Publishing and Monitoring APIs With Spring Boot--转

    原文地址:https://dzone.com/articles/auto-publishing-amp-monitoring-apis-with-spring-bo If you are headin ...

  5. HBase框架基础(四)

    * HBase框架基础(四) 上一节我们介绍了如何使用HBase搞一些MapReduce小程序,其主要作用呢是可以做一些数据清洗和分析或者导入数据的工作,这一节我们来介绍如何使用HBase与其他框架进 ...

  6. AS3 常见问题

    SharedObject 不起作用(exe, air中) var so:SharedObject = SharedObject.getLocal("aa", "/&quo ...

  7. python 3.x 学习笔记4(函数)

    1.编程方式分:面向对象.面向过程.函数式编程 2.区分面向对象---->类---->class面向过程---->过程---->def函数式编程---->函数----&g ...

  8. CUDA笔记12

    这几天配置了新环境,而且流量不够了就没写. 看到CSDN一个人写了些机器学习的笔记,于是引用一下http://blog.csdn.net/yc461515457/article/details/504 ...

  9. OpenGL编程逐步深入(八)伸缩变换

    准备知识 伸缩变换非常简单,它的目的是增大或者缩小对象的尺寸.例如:你可能希望用同一个模型创建不同大小的对象(例如形状相同,但大小不同的树木)或者你想改变对象的大小使它和游戏场景匹配.这些例子中你可能 ...

  10. RecyclerView让列表嵌套如此简单

    平常开发时,相信像这样的页面,大家一定是遇到过的.这里比较坑爹的地方在于呢:列表嵌套.订单列表中的每一项,都包含一个商品列表.像这种需求,大家会如何实现呢? 这里呢,说一下我自己的思路,我没有使用列表 ...