Python优雅写法,让你工作效率翻2倍

为多个变量赋值

有时,有多个变量需要赋值,这时你会怎么赋值呢?

常规方法:

常规方法是给变量逐个赋值。

1
2
3
a = 0
b = 1
c = 2
优雅方法:

直接按顺序对应一一赋值。

1
a, b, c = 012

序列解包

需要取出列表中的元素。

常规方法:

一般我们知道可以通过下标获取具体元素。

1
2
3
4
5
6
7
8
info = ['brucepk', 'man', 'python']
name = info[0]
sex = info[1]
tech = info[2]
print(name,sex,tech)

# 结果
brucepk man python

优雅方法:

给出对应变量接收所有元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
info = ['brucepk', 'man', 'python']
name,sex,tech = info
print(name,sex,tech)

# 结果
brucepk man python
```

#### 优雅你的判断语句

我们用判断语句来定义一个绝对值函数。

###### 常规方法:

```py
x = -6
if x < 0:
y = -x
else:
y = x
print(y)

# 结果
6
优雅方法:
1
2
3
4
5
6
x = -6
y = -x if x<0 else x
print(y)

# 结果
6

区间判断

使用 and 连续两次判断的语句,条件都符合时才执行语句。

常规方法:
1
2
3
4
5
6
7
score = 82  
if score >=80 and score < 90:
    level = 'B'
print(level)

# 结果
B
优雅方法:

使用链式判断。

1
2
3
4
5
6
7
score = 82  
if  80 <= score < 90:
    level = 'B'
print(level)

# 结果
B

多个值符合条件判断

多个值任意一个值符合条件即为 True 的情况。

常规方法:
1
2
3
4
5
6
7
num = 1  
if num == 1 or num == 3 or num == 5:
    type = '奇数'
print(type)

# 结果
奇数
优雅方法:

使用关键字 in,让你的语句更优雅。

1
2
3
4
5
6
7
num = 1  
if num in(1,3,5):
    type = '奇数'
print(type)

# 结果
奇数

判断是否为空

判断元素是空还是非空。

常规方法:

一般我们想到的是 len() 方法来判断元素长度,大于 0 则为非空。

1
2
3
4
5
6
7
8
9
10
A,B,C =[1,3,5],{},''
if len(A) > 0:
print('A 为非空')
if len(B) > 0:
print('B 为非空')
if len(C) > 0:
print('C 为非空')

# 结果
A 为非空
优雅方法:

if 后面的执行条件是可以简写的,只要条件 是非零数值、非空字符串、非空 list 等,就判断为 True,否则为 False。

1
2
3
4
5
6
7
8
9
10
A,B,C =[1,3,5],{},''
if A:
print('A 为非空')
if B:
print('B 为非空')
if C:
print('C 为非空')

# 结果
A 为非空

多条件内容判断至少一个成立

常规方法:

用 or 连接多个条件。

1
2
3
4
5
6
math,English,computer =90,80,88  
if math<60 or English<60 or computer<60:
    print('not pass')

# 结果
not pass

优雅方法:

使用 any 语句。

1
2
3
4
5
6
math,English,computer =90,59,88  
if any([math<60,English<60,computer<60]):
    print('not pass')

# 结果
not pass

多条件内容判断全部成立

常规方法:

使用 and 连接条件做判断。

1
2
3
4
5
6
math,English,computer =90,80,88  
if math>60 and English>60 and computer>60:
    print('pass')

# 结果
pass

优雅方法:

使用 all 方法。

1
2
3
4
5
6
math,English,computer =90,80,88
if all([math>60,English>60,computer>60]):
print('pass')

# 结果
pass

遍历序列的元素和元素下标

常规方法:

使用 for 循环进行遍历元素和下标。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
L =['math', 'English', 'computer', 'Physics']
for i in range(len(L)):
print(i, ':', L[i])

# 结果
0 : math
1 : English
2 : computer
3 : Physics
```

###### 优雅方法:

使用 enumerate 函数。

```py
L =['math', 'English', 'computer', 'Physics']
for k,v in enumerate(L):
print(k, ':', v)

# 结果
0 : math
1 : English
2 : computer
3 : Physics
```

#### 循环语句优化

###### 常规方法:

使用简单的 for 循环可以达到目的。

```py
L = []
for i in range(1, 6):
L.append(i*i)
print(L)

#结果:
[1, 4, 9, 16, 25]
```

###### 优雅方法:

使用列表生成式,一行代码搞定。

```py
print([x*x for x in range(1, 6)])

#结果:
[1, 4, 9, 16, 25]

Python 这些优雅的写法学会了吗?自己赶紧动手试试吧。

推荐阅读

Python骚操作 | 还原已撤回的微信消息

Python骚操作:微信远程控制电脑

微信最强花式操作,带你玩转-wxpy

手把手教你用 Python 来朗读网页

如果你觉得这篇文章对你有用,欢迎赞赏哦~
本文结束啦 感谢您阅读
0%