python编程技巧1002python编程技巧_总结Python编程中三条常用的技巧
在 python 代码中可以看到一些常见的 trick,在这里做一个简单的小结。
json 字符串格式化
在开发 web 应用的时候经常会用到 json 字符串,但是一段比较长的 json 字符串是可读性较差的,不容易看出来里面结构的。 这时候就可以用 python 来把 json 字符串漂亮的打印出来。
root@Exp-1:/tmp# cat json.txt
{"menu": {"breakfast": {"English Muffin": {"price": 7.5}, "Bread Basket": {"price": 20, "desc": "Assortment of fresh baked fruit breads and muffins"}, "Fruit Breads": {"price": 8}}, "drink": {"Hot Tea": {"price": 5}, "Juice": {"price": 10, "type": ["apple", "watermelon", "orange"]}}}}
root@Exp-1:/tmp#
root@Exp-1:/tmp# cat json.txt | python -m json.tool
{
"menu": {
"breakfast": {
"Bread Basket": {
"desc": "Assortment of fresh baked fruit breads and muffins",
"price": 20
},
"English Muffin": {
"price": 7.5
},
"Fruit Breads": {
"price": 8
}
},
"drink": {
"Hot Tea": {
"price": 5
},
"Juice": {
"price": 10,
"type": [
"apple",
"watermelon",
"orange"
]
}
}
}
}
root@Exp-1:/tmp#
else 的妙用
在某些场景下我们需要判断我们是否是从一个 for 循环中 break 跳出来的,并且只针对 break 跳出的情况做相应的处理。这时候我们通常的做法是使用一个 flag 变量来标识是否是从 for 循环中跳出的。 如下面的这个例子,查看在 60 到 80 之间是否存在 17 的倍数。
flag = False
for item in xrange(60, 80):
if item % 17 == 0:
flag = True
break
if flag:
print "Exists at least one number can be divided by 17"
其实这时候可以使用 else 在不引入新变量的情况下达到同样的效果
for item in xrange(60, 80):
if item % 17 == 0:
flag = True
break
else:
print "exist"
setdefault 方法
dictionary 是 python 一个很强大的内置数据结构,但是使用起来还是有不方便的地方,比如在多层嵌套的时候我们通常会这么写
dyna_routes = {}
method = 'GET'
whole_rule = None
# 一些其他的逻辑处理
...
if method in dyna_routes:
dyna_routes[method].append(whole_rule)
else:
dyna_routes[method] = [whole_rule]
其实还有一种更简单的写法可以达到同样的效果
self.dyna_routes.setdefault(method, []).append(whole_rule)
或者可以使用 collections.defaultdict 模块
import collections
dyna_routes = collections.defaultdict(list)
...
dyna_routes[method].append(whole_rule)
python编程技巧1002python编程技巧_总结Python编程中三条常用的技巧相关推荐
- python模块下载1002python模块下载_【Python】Python的urllib模、urllib2模块的网络下载文件...
因为需要从一些下载一个页PDF文件.但是需要下载PDF有数百个文件,这是不可能用人工点击下载.只是Python有相关模块,所以写一个程序PDF文件下载,顺便熟悉Python的urllib模块和ulrl ...
- 从python开始学编程pdf 解压密码_从Python开始学编程PDF高清完整版网盘免费分享...
提取码:szq0 image 内容简介 · · · · · · 改编自Vamei博客的<Python快速教程>.本书以Python为样本,不仅介绍了编程的基本概念,还着重讲解编程语言的主流 ...
- python编程a的x次方_「Python 面试」第四次更新
阅读本文大约需要 5 分钟. 15.说一说 GIL 前面有提到由于 Python 基于 C 语言编写的解释器中设置了一个 GIL 全局变量锁,该锁使得 Python 的多线程在处理 CPU 计算密集型 ...
- python编程能有什么用_揭秘python都能做什么?
Python作为一种功能强大,并井且简单易学的编程语言而广受好评,那么Python都能做么?概据起来有以下几个方面. Wob开发使用Python的二个基本应用就是进行Web开发,在国内,大一些的使用P ...
- 用python的turtle画等边三角形讲解_通过Python turtle绘制等边三角形谈编程思维和逻辑...
相信三角形对于绝大数人来说,是再熟悉不过的一个几何图形了,并且在现实生活和工作中也经常遇见,如果要画的话,相信很多人也会说,简单的很啊,画三条相等的线段,每两个线段的夹角为60度就可以了啊,也许我们借 ...
- 会python编程可以做什么工作_学Python编程到底能做什么工作?
学Python编程能做什么工作?随着人工智能发展,学习python语言的人员有更多的岗位机会,python从事的职业广泛,从游戏到AI人工智能能都可以用Python实现.除了编程,各种岗位的人都应该学 ...
- 树莓派python编程入门先学什么_树莓派Python编程入门与实战
树莓派Python编程入门与实战 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 树莓派是一个只有信用卡大小的裸露电路板,它也是一个运行开源Lin ...
- 机器人离线编程画圆误差解决方案_机器人离线编程的误差来源分析与消除办法...
随着机器人应用领域越来越广,传统的示教编程这种编程手段有些场合变得效率非常低下,于是离线编程应运而生,并且应用越来越普及.但初用离线编程的朋友,总会被最后生成轨迹的误差所困惑,而导致这些误差的原因,包 ...
- python发行版是什么意思_致 Python 初学者
当下是一个喧嚣.浮躁的时代.我们总是被生活中大量涌现的热点所吸引,几乎没有深度阅读和思考的时间和机会.我始终认为,学习是需要沉下心来慢慢钻研的,是长期的:同时,学习不应该被赋予太多的功利色彩.一个Py ...
最新文章
- Anaconda 安装 opencv3(Win10)
- HTTP协议:看个新闻原来这么麻烦
- Hibernate的四种典型例子(增删改查)
- 计算机基础知识考点题,2015年计算机二级公共基础知识考点测试题(1)
- HttpServletResponse对象介绍
- 使用RNN解决句子对匹配问题的常见网络结构
- POJ2186-Popular Cows(流行的奶牛)【tarjan,强连通分量,图论】
- pytorch 对抗样本_《AI安全之对抗样本入门》—3.4 PyTorch
- java编写正则表达式引擎_从0到1打造正则表达式执行引擎(一)
- 2台mysql集群_如何安装配置基于2台服务器的MySQL集群
- 在 Angular 8 中,我们可以期待些什么
- c语言算开方程序,C语言计算开方
- netty权威指南第二版源码
- YUV格式的图片查看工具YUView 2.13
- java意图_任务型对话(一)—— NLU/SLU(意图识别和槽值填充)
- Python 自动化操作 Excel 绘制条形图!
- [乐意黎转载]从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式
- 整型到底占几个字节呢?
- Java 通过URL获取页面快照十种方式解读
- 华为:活下去,是企业的硬道理
热门文章
- cgcs2000高斯平面直角坐标_多元微积分——环量、旋度与格林、斯托克斯公式,通量、散度与高斯公式...
- 深度优先搜索(DFS)和广度优先搜索(BFS)探究
- linux查看是哪个端口,linux 查看哪个端口使用情况
- 移动组件到指定坐标_手把手教你使用业界首创的象限图组件
- 结构体嵌套结构体c语言,结构体的相互嵌套
- final关键字_夯实基础:Java中final关键字的几种用法
- php作业制作htm,PHP作业-HTML-2020-09-28
- linux 查看命令帮助,Linux中查看帮助相关的命令整理
- mysql 声明时间变量_MySQL如何声明一个datetime变量?
- glassfish linux,Linux下实现GlassFish自动启动