Python开发相关

Python开发中一些实用的开发建议和技巧(试用新人开发者)

Tips#1. 原地交换两个数字

Python提供了一种直观的方式在一行中进行交换两个变量

x, y = 10, 20
print(x, y)
# 10 20

x, y = y, x
print(x, y)
# 20 10

Tips#2. 比较运算符

n = 10
result = 1 < n < 20
print(result)
# True

result = 1 > n < 9
print(result)
# False

Tips#3. 使用三元运算符

基本语法

[on_true] if [expression] else [on_false]

例子

x = 10 if (y == 9) else 20

对于类的对象同样适用

x = (classA if y == 1 else classB)(param1,param2)
def small(a,b,c):
    return a if a <= b and a <= c else (b if b  <=a and b <= c else c)

print(small(1,0,1))
print(small(1,2,2))
print(small(2,2,3))
print(small(5,4,3))

# 0
# 1
# 2
# 3

在list中也可以适用三元运算符

result = [m ** 2 if m > 10 else m ** 4 for m in range(50)]

print(result)
#  [0, 1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 2401]

Tips#4. 多行字符串

mulstr = "select * from multi_row \
where row_id < 5"
print(mulstr)
# select * from multi_row where row_id < 5

也可以适用三引号

mulstr = """ select * from multi_row
where row_id < 5 """
print(mulstr)
# select * from multi_row where row_id < 5

也可以使用小括号

mulstr = ("select * from multi_row "
"where row_id < 5 "
"order by age")
print(mulstr)
# select * from multi_row where row_id < 5 order by age

Tips#5. 将list中的元素赋予变量

testList = [1,2,3]
x,y,z = testList

print(x,y,z)
# 1 2 3

Tips#6. 打印导入模块的路径

如果想查看某个模块的绝对路径可以使用这个方法

import os
print(os)
# <module 'os' from 'D:\\Program Files\\python36\\lib\\os.py'>

Tips#7. 调试脚本

import pdb
pdb.set_trace()

使用pdb.set_trace()可以在任何地方设置断点

Tips#8. 设置文件分享

通过Python可以在本机启动一个HTTP Server,在你想分享的目录下执行下面的命令

Python2
python -m SimpleHTTPServer
python3
python -m http.server

然后就可以通过浏览器访问8000端口了

效果图

Tips#9. 运行时检测Python的版本

print("Current Python Version: ",sys.version_info >= (3,5))

Tips#10. 在Python中使用Enums

class Shapes:
    Circle, Square, Triangle, Quaduangle = range(4)

print(Shapes.Circle)
print(Shapes.Square)
print(Shapes.Triangle)
print(Shapes.Quaduangle)
# 0
# 1
# 2
# 3

Tips#11. 在方法中返回多个值

def x():
    return 1,2,3,4
a,b,c,d = x()
print(a,b,c,d)
# 1 2 3 4

Tips#12. 检查一个对象占用的内存大小

  • Python 2.7
import sys
x=1
print(sys.getsizeof(x))

#-> 24
  • Python 3

3
4
5
import sys
x=1
print(sys.getsizeof(x))

#-> 28