【笔记】python语句十大优雅写法
本帖最后由 xian54966 于 2019-2-20 17:31 编辑我们都知道,Python 的设计哲学是「优雅」、「明确」、「简单」。这也许很多人选择 Python 的原因。但是我收到有些伙伴反馈,他写的 Python 并不优雅,甚至很臃肿,那可能是你的姿势不对哦!今天就给大家带来 Python 语句的十大优雅之法。
#1. 为多个变量赋值
有时,有多个变量需要赋值,这时你会怎么赋值呢?
##常规方法:
常规方法是给变量逐个赋值。
```python
a = 0
b = 1
c = 2
```
##优雅方法:
直接按顺序对应一一赋值。
```python
a, b, c = 0, 1, 2
```
#2. 序列解包
需要取出列表中的元素。
##常规方法:
一般我们知道可以通过下标获取具体元素。
```python
info = ['brucepk', 'man', 'python']
name = info
sex = info
tech = info
print(name,sex,tech)
# 结果
brucepk man python
```
##优雅方法:
给出对应变量接收所有元素。
```python
info = ['brucepk', 'man', 'python']
name,sex,tech = info
print(name,sex,tech)
# 结果
brucepk man python
```
#3. 优雅你的判断语句
我们用判断语句来定义一个绝对值函数。
##常规方法:
```python
x = -6
if x < 0:
y = -x
else:
y = x
print(y)
# 结果
6
```
##优雅方法:
```python
x = -6
y = -x if x<0 else x
print(y)
# 结果
6
```
#4. 区间判断
使用 and 连续两次判断的语句,条件都符合时才执行语句。
##常规方法:
```python
score = 82
if score >=80 and score < 90:
level = 'B'
print(level)
# 结果
B
```
##优雅方法:
使用链式判断。
```python
score = 82
if80 <= score < 90:
level = 'B'
print(level)
# 结果
B
```
#5. 多个值符合条件判断
多个值任意一个值符合条件即为 True 的情况。
##常规方法:
```python
num = 1
if num == 1 or num == 3 or num == 5:
type = '奇数'
print(type)
# 结果
奇数
```
##优雅方法:
使用关键字 in,让你的语句更优雅。
```python
num = 1
if num in(1,3,5):
type = '奇数'
print(type)
# 结果
奇数
```
#6. 判断是否为空
判断元素是空还是非空。
##常规方法:
一般我们想到的是 len() 方法来判断元素长度,大于 0 则为非空。
```python
A,B,C =,{},''
if len(A) > 0:
print('A 为非空')
if len(B) > 0:
print('B 为非空')
if len(C) > 0:
print('C 为非空')
# 结果
A 为非空
```python
##优雅方法:
if 后面的执行条件是可以简写的,只要条件 是非零数值、非空字符串、非空 list 等,就判断为 True,否则为 False。
```python
A,B,C =,{},''
if A:
print('A 为非空')
if B:
print('B 为非空')
if C:
print('C 为非空')
# 结果
A 为非空
```
#7. 多条件内容判断至少一个成立
##常规方法:
用 or 连接多个条件。
```python
math,English,computer =90,80,88
if math<60 or English<60 or computer<60:
print('not pass')
# 结果
not pass
```
##优雅方法:
使用 any 语句。
```python
math,English,computer =90,59,88
if any():
print('not pass')
# 结果
not pass
```
#8. 多条件内容判断全部成立
##常规方法:
使用 and 连接条件做判断。
```python
math,English,computer =90,80,88
if math>60 and English>60 and computer>60:
print('pass')
# 结果
pass
```
##优雅方法:
使用 all 方法。
```python
math,English,computer =90,80,88
if all():
print('pass')
# 结果
pass
```
#9. 遍历序列的元素和元素下标
##常规方法:
使用 for 循环进行遍历元素和下标。
```python
L =['math', 'English', 'computer', 'Physics']
for i in range(len(L)):
print(i, ':', L)
# 结果
0 : math
1 : English
2 : computer
3 : Physics
```
##优雅方法:
使用 enumerate 函数。
```python
L =['math', 'English', 'computer', 'Physics']
for k,v in enumerate(L):
print(k, ':', v)
# 结果
0 : math
1 : English
2 : computer
3 : Physics
````
#10. 循环语句优化
之前的文章 零基础学 Python 之列表生成式 中讲过列表生成时的用法,举例:生成 。
##常规方法:
使用简单的 for 循环可以达到目的。
```python
L = []
for i in range(1, 6):
L.append(i*i)
print(L)
#结果:
```
##优雅方法:
使用列表生成式,一行代码搞定。
```python
print()
#结果:
```
兄弟们,热心值啊!!晚点还有一篇关于解析式的总结,绝对符合语句优雅的要求! 不是完全赞同,代码优雅与否并不一定与代码长度、行数成正比,最基本的一点是能让读代码的人可以准确理解,而过与简洁的代码实际上更容易让人难以理解。
纯属个人看法:loveliness: 并不赞同楼主的有些写法, 简洁不等于优雅 很不错 学习了有心人 很不错 学习了感谢分享 确实很优雅,继续学习 不错 学习了 期待可以一直更新 跟着楼主学习Python程序代码优雅编写,受益匪浅。 楼主,你有python的学习材料吗?可以分享一下吗?
还有,你写的这些python文章,有电子版下载就好了。 受教了!
感谢! 哇,谢谢楼主,学习学习! 感谢楼主分享……我一直敬重学习的人,
送上我的小心心和祝福……收藏了