在 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编程中三条常用的技巧相关推荐

  1. python模块下载1002python模块下载_【Python】Python的urllib模、urllib2模块的网络下载文件...

    因为需要从一些下载一个页PDF文件.但是需要下载PDF有数百个文件,这是不可能用人工点击下载.只是Python有相关模块,所以写一个程序PDF文件下载,顺便熟悉Python的urllib模块和ulrl ...

  2. 从python开始学编程pdf 解压密码_从Python开始学编程PDF高清完整版网盘免费分享...

    提取码:szq0 image 内容简介 · · · · · · 改编自Vamei博客的<Python快速教程>.本书以Python为样本,不仅介绍了编程的基本概念,还着重讲解编程语言的主流 ...

  3. python编程a的x次方_「Python 面试」第四次更新

    阅读本文大约需要 5 分钟. 15.说一说 GIL 前面有提到由于 Python 基于 C 语言编写的解释器中设置了一个 GIL 全局变量锁,该锁使得 Python 的多线程在处理 CPU 计算密集型 ...

  4. python编程能有什么用_揭秘python都能做什么?

    Python作为一种功能强大,并井且简单易学的编程语言而广受好评,那么Python都能做么?概据起来有以下几个方面. Wob开发使用Python的二个基本应用就是进行Web开发,在国内,大一些的使用P ...

  5. 用python的turtle画等边三角形讲解_通过Python turtle绘制等边三角形谈编程思维和逻辑...

    相信三角形对于绝大数人来说,是再熟悉不过的一个几何图形了,并且在现实生活和工作中也经常遇见,如果要画的话,相信很多人也会说,简单的很啊,画三条相等的线段,每两个线段的夹角为60度就可以了啊,也许我们借 ...

  6. 会python编程可以做什么工作_学Python编程到底能做什么工作?

    学Python编程能做什么工作?随着人工智能发展,学习python语言的人员有更多的岗位机会,python从事的职业广泛,从游戏到AI人工智能能都可以用Python实现.除了编程,各种岗位的人都应该学 ...

  7. 树莓派python编程入门先学什么_树莓派Python编程入门与实战

    树莓派Python编程入门与实战 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 树莓派是一个只有信用卡大小的裸露电路板,它也是一个运行开源Lin ...

  8. 机器人离线编程画圆误差解决方案_机器人离线编程的误差来源分析与消除办法...

    随着机器人应用领域越来越广,传统的示教编程这种编程手段有些场合变得效率非常低下,于是离线编程应运而生,并且应用越来越普及.但初用离线编程的朋友,总会被最后生成轨迹的误差所困惑,而导致这些误差的原因,包 ...

  9. python发行版是什么意思_致 Python 初学者

    当下是一个喧嚣.浮躁的时代.我们总是被生活中大量涌现的热点所吸引,几乎没有深度阅读和思考的时间和机会.我始终认为,学习是需要沉下心来慢慢钻研的,是长期的:同时,学习不应该被赋予太多的功利色彩.一个Py ...

最新文章

  1. Anaconda 安装 opencv3(Win10)
  2. HTTP协议:看个新闻原来这么麻烦
  3. Hibernate的四种典型例子(增删改查)
  4. 计算机基础知识考点题,2015年计算机二级公共基础知识考点测试题(1)
  5. HttpServletResponse对象介绍
  6. 使用RNN解决句子对匹配问题的常见网络结构
  7. POJ2186-Popular Cows(流行的奶牛)【tarjan,强连通分量,图论】
  8. pytorch 对抗样本_《AI安全之对抗样本入门》—3.4 PyTorch
  9. java编写正则表达式引擎_从0到1打造正则表达式执行引擎(一)
  10. 2台mysql集群_如何安装配置基于2台服务器的MySQL集群
  11. 在 Angular 8 中,我们可以期待些什么
  12. c语言算开方程序,C语言计算开方
  13. netty权威指南第二版源码
  14. YUV格式的图片查看工具YUView 2.13
  15. java意图_任务型对话(一)—— NLU/SLU(意图识别和槽值填充)
  16. Python 自动化操作 Excel 绘制条形图!
  17. [乐意黎转载]从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式
  18. 整型到底占几个字节呢?
  19. Java 通过URL获取页面快照十种方式解读
  20. 华为:活下去,是企业的硬道理

热门文章

  1. cgcs2000高斯平面直角坐标_多元微积分——环量、旋度与格林、斯托克斯公式,通量、散度与高斯公式...
  2. 深度优先搜索(DFS)和广度优先搜索(BFS)探究
  3. linux查看是哪个端口,linux 查看哪个端口使用情况
  4. 移动组件到指定坐标_手把手教你使用业界首创的象限图组件
  5. 结构体嵌套结构体c语言,结构体的相互嵌套
  6. final关键字_夯实基础:Java中final关键字的几种用法
  7. php作业制作htm,PHP作业-HTML-2020-09-28
  8. linux 查看命令帮助,Linux中查看帮助相关的命令整理
  9. mysql 声明时间变量_MySQL如何声明一个datetime变量?
  10. glassfish linux,Linux下实现GlassFish自动启动