当前位置: 首页 > 编程笔记 >

总结Python编程中三条常用的技巧

爱炯
2023-03-14
本文向大家介绍总结Python编程中三条常用的技巧,包括了总结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)


 类似资料:
  • 本文向大家介绍Android编程常用技巧实例总结,包括了Android编程常用技巧实例总结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程常用技巧。分享给大家供大家参考,具体如下: 1. 登录的时候,如果输入有误,则输入框左右震动,表示输入有误 在res下准备一个anim文件夹,里面包含两个文件,main_login_shake.xml 和 main_login_cycl

  • python应用最多的场景还是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。 爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。

  • 本文向大家介绍c++编程学习的技巧总结,包括了c++编程学习的技巧总结的使用技巧和注意事项,需要的朋友参考一下 1、把C++当成一门新的语言学习(和C没啥关系)。 2、看《Thinking In C++》,不要看《C++编程思想》。 3、看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以

  • 本文向大家介绍Python中字符串的常见操作技巧总结,包括了Python中字符串的常见操作技巧总结的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了Python中字符串的常见操作技巧。分享给大家供大家参考,具体如下: 反转一个字符串 这种用法叫做three-limit slices 除此之外,还可以使用slice对象,例如 unicode码与字符(single-character strin

  • 本文向大家介绍Android编程之OpenGL绘图技巧总结,包括了Android编程之OpenGL绘图技巧总结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程之OpenGL绘图技巧。分享给大家供大家参考,具体如下: 很久不用OpenGL ES绘图,怕自己忘记了,于是重新复习一遍,顺便原理性的东西总结如下: 1. Android 3D坐标系统 如图: Android的三维坐

  • 编程可以极大地提高我们收集和分析世界信息的能力,而这些信息又可以通过上一节所述的谨慎推理来发现。 在数据科学中,编写程序的目的是,指示计算机执行分析步骤。 电脑无法自行研究世界。 人们必须准确描述计算机应该执行什么步骤来收集和分析数据,这些步骤是通过程序来表达的。 表达式 编程语言比人类语言简单得多。 尽管如此,在任何语言中,还是有一些语法规则需要学习,这里就是我们开始的地方。 在本文中,我们将使