优雅的Python - Day01
本文1382字,预计阅读时间4min
众所周知,Python 是一门优雅且高效的语言
但很多人在第一次学习Python阶段编写出的代码非常的繁琐且复杂。
那么如何让自己的编码水平提高呢?写出简洁的代码呢?
- 多编写代码,尝试理清复杂的逻辑关系,善用标准库
- 多看优质的代码,去学习其编写方式,总结归纳成为自己的
- 学习计算机底层知识,从底向上编写代码
针对第二点,默子在这里精挑细选多个优秀的Python案例,供大家学习~
从 lista
中挑选出大于 50
的数字
import random #导入随机数模块
lista = [random.randint(1, 100) for i in range(10)]
# 生成10个1-100的随机数
# random.randint(a,b) 生成[a,b]之间的随机整数
print(lista)
ans = [i for i in lista if i > 50]
# 生成一个列表,列表中的元素是lista中大于50的元素,列表推导式的用法
print(ans)
输出结果:
[10, 56, 10, 44, 16, 32, 7, 32, 86, 69]
[56, 86, 69]
写在一行里的多重条件判断
Mozi=6
print("默子是5") if Mozi == 5 else print("默子是6") if Mozi == 6 else print("默子啥也不是")
# 三元表达式的用法:条件成立时的结果 if 条件 else 条件不成立时的结果
# 三元表达式的结果是一个值,不是一个语句
输出结果:
默子是6
快速合并字典
dict1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
dict2 = {'a': 6, 'g': 7, 'h': 8, 'i': 9, 'j': 10}
dict1.update(dict2)
# 合并两个字典,对于相同的键,后面的字典的值会覆盖前面的字典的值
print(dict1)
dict1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
dict2 = {'a': 6, 'g': 7, 'h': 8, 'i': 9, 'j': 10}
dict3 = {**dict1, **dict2}
# 还可以用字典推导式来合并两个字典,并直接生成一个新的字典
print(dict3)
输出结果:
{'a': 6, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'g': 7, 'h': 8, 'i': 9, 'j': 10} {'a': 6, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'g': 7, 'h': 8, 'i': 9, 'j': 10}
lambda表达式
fun1 = lambda x : '是偶数' if x % 2 == 0 else '是奇数'
fun2 = lambda x, y : x + y + 114514
# lambda表达式的用法:lambda 参数 : 表达式
print(fun1(2), fun2(-2, 2))
输出结果:
是偶数 114514
多变量同时赋值
A,i,n,f,O = '真的', '是', '一个', '很棒的', '公众号'
# 多变量赋值,将要赋值的变量用逗号隔开,左边的变量个数要和右边的值个数相同
print(A, i, n, f, O)
输出结果:
真的 是 一个 很棒的 公众号
一行筛选质数
print(list(filter(lambda a: all(a % b != 0 for b in range(2,a)),range(2,20))))
# 我们一层一层来看
# 将print(list())去掉后,是filter()
filter(lambda a: all(a % b != 0 for b in range(2,a)),range(2,20))
# filter()函数的用法:filter(function, iterable) 返回一个迭代器,迭代器中的元素是iterable中的元素,这些元素使得function返回True
# 这里的function是lambda表达式,iterable是range(2,20),再来看lambda表达式
lambda a: all(a % b != 0 for b in range(2,a))
# all()函数的用法:all(iterable) 如果iterable的所有元素都为真,返回True,否则返回False
a % b != 0 for b in range(2,a)
# b是循环变量,a % b != 0是表达式,range(2,a)是可迭代对象,该表达式的结果是一个迭代器
输出结果:
[2, 3, 5, 7, 11, 13, 17, 19]
AinfO Tech
每日更新最有趣、最新、最细致的学习干货大家在……吃饭、摸鱼、等地铁、上厕所的时候(其实无论什么时候)都可以来瞧一瞧哦~
多学不吃亏,点个关注再走呗~( 默子求求了 )
更新记录:
1/128