python tricks
1.
cities = ['Marseille', 'Amsterdam', 'New York', 'Londom'] # the good way
for i, city in enumerate(cities):
print(i, city)
2.
x_list = [1, 2, 3]
y_list = [2, 4, 6] # the good way
for x, y in zip(x_list, y_list):
print (x, y)
3.
x = 10
y = -10 # the good way
x, y = y, x
print ('After: x = %d, y = %d' % (x, y))
4.
ages = {
'Mary' : 31,
'Honathan' : 28
} # the good way
age = ages.get('Dick', 'Unknow')
print ('Dick is %s years old' % age)
5.
needle = 'd'
haystack = ['a', 'b', 'c', 'd']
# the good way
for letter in haystack:
if needle == letter:
print ('Found!')
break
else:
print ('Not found!')
6.
# the good way
with open('pimpin-aint-easy.txt') as f:
for line in f:
print (line)
7.
print ('Converting!')
try:
print (int(''))
except:
print ('Conversion failed!')
else:
print ('Conversion uccessful!')
finally:
print ('Done!')
8.
普通的方法,第一个参数需要是self,它表示一个具体的实例本身。
如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用。
而对于classmethod,它的第一个参数不是self,是cls,它表示这个类本身。
>>> class A(object):
def foo1(self):
print "Hello",self
@staticmethod
def foo2():
print "hello"
@classmethod
def foo3(cls):
print "hello",cls
9. Goal: Check if my version is the latest
lastest_python = 3
my_python = 2
msg = 'Update available' if lastest_python > my_python else 'Up to daye'
print('Update check: {}'.format(msg)) latest_python = [3, 5, 2]
my_python = [3, 5, 1]
msg = 'Update available' if latest_python > my_python else 'Up to date'
print('Update check: {}'.format(msg)
10. python之字符串格式化(format)
用法:
它通过{}和:来代替传统%方式
1、使用位置参数
要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表
>>> li = ['hoho',18]
>>> 'my name is {} ,age {}'.format('hoho',18)
'my name is hoho ,age 18'
>>> 'my name is {1} ,age {0}'.format(10,'hoho')
'my name is hoho ,age 10'
>>> 'my name is {1} ,age {0} {1}'.format(10,'hoho')
'my name is hoho ,age 10 hoho'
>>> 'my name is {} ,age {}'.format(*li)
'my name is hoho ,age 18'
2、使用关键字参数
要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可
>>> hash = {'name':'hoho','age':18}
>>> 'my name is {name},age is {age}'.format(name='hoho',age=19)
'my name is hoho,age is 19'
>>> 'my name is {name},age is {age}'.format(**hash)
'my name is hoho,age is 18'
3、填充与格式化
:[填充字符][对齐方式 <^>][宽度]
>>> '{0:*>10}'.format(10) ##右对齐
'********10'
>>> '{0:*<10}'.format(10) ##左对齐
'10********'
>>> '{0:*^10}'.format(10) ##居中对齐
'****10****'
4、精度与进制
>>> '{0:.2f}'.format(1/3)
'0.33'
>>> '{0:b}'.format(10) #二进制
'1010'
>>> '{0:o}'.format(10) #八进制
'12'
>>> '{0:x}'.format(10) #16进制
'a'
>>> '{:,}'.format(12369132698) #千分位格式化
'12,369,132,698'
5、使用索引
>>> li
['hoho', 18]
>>> 'name is {0[0]} age is {0[1]}'.format(li)
'name is hoho age is 18
11. Goal: Check if my version is the latest
# Ordered by population
cities = ['Groningen', 'Marseille', 'Paries', 'Buenos Aires', 'Mumbai'] smallest, *rest, largest = cities print('smallest: {}'.format(smallest))
print('largest: {}'.format(largest))
12. 未知数量参数
def draw_curve(*curves):
fig, axes = plt.subplots(nrows=1, figsize=(10, 8))
for curve_i, curve_name in enumerate(curves):
。。。
python tricks的更多相关文章
- Python Tricks 若干
赵斌 - APRIL 29, 2015 在 python 代码中可以看到一些常见的 trick,在这里做一个简单的小结. json 字符串格式化 在开发 web 应用的时候经常会用到 json 字符串 ...
- Python tricks(7) -- new-style class的__slots__属性
__slots__是在python 2.2开始引入的一个新特性, 我们来看一下官方给出的解释. This class variable can be assigned a string, iterab ...
- Python tricks(6) -- python代码执行的效率
python作为一个动态语言, 本身学习曲线比较平滑, 效率相比起来会比c++和java低一些. 脚本语言都是运行时编译的, 这个对于效率的影响是非常大的. 我借用参考1的代码, 加了点代码impor ...
- Python tricks(5) -- string和integer的comparison操作
我们都知道, python是一个强类型的语言, 也是一个动态类型的语言. 但是在python2.X系列中, 这个强类型是需要打折扣的, 是非常接近强类型. 我们来看下面的代码片段 In [1]: 'a ...
- Python tricks(4) -- with statement
简介 with是从2.5版本引入的一个语法. 这个语法本身是为了解决try..finally繁琐的释放各类资源(文件句柄, Lock等)的问题. 如果想在旧版本中使用这个功能, 直接引入future模 ...
- Python tricks(3) -- list和dict的遍历和方法
每个人在使用python的过程中都会遍历list和dict. List遍历 最常用最简单的遍历list的方法 a = ["a", "b", "c&qu ...
- Python tricks(2) -- method默认参数和闭包closure
Python的method可以设置默认参数, 默认参数如果是可变的类型, 比如list, map等, 将会影响所有的该方法调用. 下面是一个简单的例子 def f(a=None, l=[]): if ...
- Python tricks(1) -- 动态定义一个新变量
python是动态语言, 无需声明变量即可使用. 传递一个tuple, list或者dict等等方式, 有时候这种方式的使用不是很好. 对于tuple和list来说都是用下标的访问方式(即使用[]), ...
- Some Python Tricks
python 的包管理很不好用,理解费力,故偷懒,模块仍按文件布局,写一个合并脚本将各个模块合并输出到一个脚本文件,分别管理,合并输出,回避了加载模块的问题 f-format 仅在python 3.6 ...
随机推荐
- 云笔记项目-笔记列表弹出"分享移动删除"子菜单
业务需求: 笔记列表里还有一个按钮可以弹出子菜单,要求做到以下几点: (1)点击选中的笔记行的弹出按钮后,弹出子菜单,再次点击,子菜单收回. (2)选中其他笔记后,子菜单消失.效果如下图所示: 业务分 ...
- body标签
标签(空格分隔): body标签 body标签: 想要在网页上展示出来的内容一定要放在body标签中. 把我们之前那一段HTML代码贴过来,保存到一个HTML格式的文件中. <!DOCTYPE ...
- mysql修改EST时区,mysql时间修改
方法有两种 ###第一种 select NOW();show variables like "%time_zone%"; ##一:通过sql命令临时修改 set global ti ...
- java学习笔记(五):公共类
什么是公共类,公共类就是和源文件名同名的类,举例来说:类的名称是 public class aaa{},那么源文件就应该是 aaa.java. 每个源文件中只能有一个公共类. 每个源文件可以有很多非公 ...
- C++内存空间
- echo不换行的实现
1. echo的参数中, -e表示开启转义, /c表示不换行: echo -e "please input a value:/c" 2. -n不换行: echo -n " ...
- 20175126《Java程序设计》第二周学习总结
# 20175126 2016-2017-2 <Java程序设计>第二周学习总结 ## LINUX系统安装好输入法后如何使用? - 相信很多同学在刚接触虚拟机LINUX系统时,会因无法输入 ...
- 43 【redis cluster】
有两篇文章不错,可以看下: 1,初步理解redis cluster:https://blog.csdn.net/dc_726/article/details/48552531 2,仔细理解redis ...
- css3回顾 checkbox
<div class="checkBox"> <input type="checkbox" id="check1"> ...
- Django HTTP_X_FORWARDED_FOR 和 REMOTE_ADDR
使用django来获取用户访问的IP地址,如果用户是正常情况下 request.META['REMOTE_ADDR'] 可以获得用户的IP地址.但是有些网站服务器会使用ngix等代理http,或者是该 ...