python代码常用技巧和方法

本文展示一些常用的python编程技巧,通过本文,让你的代码更加pythonic,让天下没有难写的python。

1.条件表达式

#例如:
a = 10
b = 20
if a <= b:
    value = a
else:
    value = b
print(value)

#代码很多,但是可以简写为
value = a if a <= b else b #首先对if后面的语句进行计算,最后在将value赋值
print(value)

#在列表推导时,这种条件表达式非常有用,如:
values = [2,5,11,6,3,22,43,12,54,32,64]
cliped = [x if x < 30 else 30 for x in values]
print(cliped)
10
10
[2, 5, 11, 6, 3, 22, 30, 12, 30, 30, 30]

2.大数相加使用下划线占位符

a = 10000000
b = 100000
c = a + b
print(c)

#使用下划线方式
a = 10_000_000
b = 100_000
c = a + b
print(c)
print(f'{c:,}')
10100000
10100000
10,100,000

3.同时遍历多个列表,使用zip

#例如同时遍历下面三个列表
a = [1,2,3,4,5]
b = [6,7,8,9,10]
c = [10,11,12,13,14]

for a1,b1,c1 in zip(a,b,c): #zip将a,b,c中的元素打包成了元组,a1,b1,c1是解包操作,看下面
    print(a1, b1, c1)
    
print(20*'=')

for value in zip(a,b,c):
    print(value)
1 6 10
2 7 11
3 8 12
4 9 13
5 10 14
====================
(1, 6, 10)
(2, 7, 11)
(3, 8, 12)
(4, 9, 13)
(5, 10, 14)

4.解包(unpack)操作

#何为解包,例如:
a, b, c = (1, 2, 3) #可以为列表,元组
print(a, b, c)

#更多的解包操作
al = [1,3,4,5,6,7]
a, b, *c = al
print(a,b,c)

c, d, *e, f = al
print(c, d, e, f)
1 2 3
1 3 [4, 5, 6, 7]
1 3 [4, 5, 6] 7

5.为对象动态添加属性

#创建对象之后为对象添加原本没有的属性,例如:

class dog(object): #一个没有任何属性和方法的类
    pass

d = dog()
setattr(d, 'dog_weight', 20) #为d设置dog_weight属性
setattr(d, 'dog_color', 'yellow') #为d设置dog_color属性
print(d.dog_weight, d.dog_color)
#获取属性
print(getattr(d, 'dog_weight'), getattr(d, 'dog_color'))

print(20*'=')
#如果有一个属性字典,比如:
attr_dict = {'weight':20, 'color':'yellow', 'name':'little'}
#都需要设置在dog对象上,如何做呢?很简单:
d2 = dog()
for k, v in attr_dict.items():
    setattr(d2, k, v)

for k in attr_dict.keys():
    print(getattr(d2, k))
20 yellow
20 yellow
====================
20
yellow
little

6.如何执行模块,查阅模块文档

#在命令行中执行某个python模块,如flask
python -m flask run

#查看模块提供的文档,在命令行中:
help(flask)
#查看模块包含哪些方法属性
dir(flask)

7 常用备忘

指定文件编码:# -*- coding:utf-8 -*-

生成虚拟环境中所有安装的包:
(proenv) hu@hu-D520MT-K:~/disk1/WORK$ pip freeze > virtual_env_package_list.txt

生成某个工程所依赖的包(需要先安装pipreqs):
pip install pipreqs
(proenv) hu@hu-D520MT-K:~/disk1/WORK$ pipreqs path/to/your/project/

猜你喜欢

转载自blog.csdn.net/weixin_35576881/article/details/89301689