9个code技巧证明你是专业的Python程序员

9个code技巧证明你是专业的Python程序员

1. 9个code技巧

  1. 不使用+,手动字符串格式化
  2. 使用默认可变参数
  3. 使用Python理解comprehensions(列表、词典、集合、生成器理解)
  4. 检查Equality而不是Identity(is 和 ==的差别,前者用于检查地址,而后者用于检查相等性)
  5. 使用单行解包元组
  6. 使用enumerate构建遍历下标
  7. 使用日志记录器代替print(有助于向用户显示有用的消息,以增加对代码库中发生的事情的更多上下文和理解。)
  8. 不使用import * 在命名模块中导入函数和类(通过import * 将该命名模块中的所有函数和类导入到代码中会破坏命名空间,可能与某些自定义的函数或导入的其他库的函数发生冲突。)
  9. 关注PEP8(Python Enhancement Proposal主要是为了提升可读性)

2. 源码

# 1. 不是手动字符串格式化
name = 'sss'
age = 10
print(f"我的我叫{name},我今年 {age}岁")


# 2.使用默认可变参数
def append(n, l=None):
    if l is None:
        l = []
    l.append(n)
    return l


l1 = append = [0]
l2 = append = [1]
print(l1, l2)

# 3. 使用Python理解comprehensions(列表、词典、集合、生成器理解)
x = {i: i / 2 for i in range(10)}
print(x)

# Python 中的理解提供了一种使用已经定义的序列来构造新序列(例如列表、集合、字典等)的简洁方法。
# 输出偶数下标的值
input_list = [1, 2, 3, 4, 4, 5, 6, 7, 7]
list_using_comp = [var for var in input_list if var % 2 == 0]
print("Output List using list comprehensions:", list_using_comp)

# 输出1~9的平方
list_using_comp = [var ** 2 for var in range(1, 10)]
print("Output List using list comprehension:", list_using_comp)

# 创建一个输出字典,它只包含输入列表中出现的奇数作为键,它们的立方体作为值
dict_using_comp = {var: var ** 3 for var in range(1, 10) if var % 2 != 0}
print("Output Dictionary using dictionary comprehensions:", dict_using_comp)

# 给定两个包含州名及其相应首都的列表,构造一个字典,将州与其各自的首都映射。
state = ['Gujarat', 'Maharashtra', 'Rajasthan']
capital = ['Gandhinagar', 'Mumbai', 'Jaipur']

output_dict = {}
# Using loop for constructing output dictionary
for (key, value) in zip(state, capital):
    output_dict[key] = value

print("Output Dictionary using for loop:", output_dict)

dict_using_comp = {key: value for (key, value) in zip(state, capital)}
print("Output Dictionary using dictionary comprehensions:", dict_using_comp)

# 创建一个仅包含输入列表中出现的偶数的输出集
input_list = [1, 2, 3, 4, 4, 5, 6, 6, 6, 7, 7]
set_using_comp = {var for var in input_list if var % 2 == 0}
print("Output Set using set comprehensions:", set_using_comp)

# 列表[] 集合{} 生成器()
input_list = [1, 2, 3, 4, 4, 5, 6, 7, 7]
output_gen = (var for var in input_list if var % 2 == 0)
print("Output values using generator comprehensions:", end=' ')
for var in output_gen:
    print(var, end=' ')
print()

# 4. 检查Equality而不是Identity(is 和 ==的差别,前者用于检查地址,而后者用于检查相等性)
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b)
print(a is b)

c = [1, 2, 3]
d = c
print(id(c), id(d))
print(c == d)
print(c is d)

# 5. 使用单行解包元组
a_tuple = 1, 2, 3
x, y, z = a_tuple
print(x, y, z)

# 6. 使用enumerate构建遍历下标
a_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for index, elem in enumerate(a_list):
    print(index, elem)

# 7. 使用日志记录器代表print,有助于向用户显示有用的消息,以增加对代码库中发生的事情的更多上下文和理解。
import logging

logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

# 8. 不使用import * 在命名模块中导入函数和类(通过import *将该命名模块中的所有函数和类导入到代码中会破坏您的命名空间,这可能与某些自定义的函数或导入的其他库的函数发生冲突。

# 9. 关注PEP8(Python Enhancement Proposal主要是为了提升可读性)

参考

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序媛一枚~

您的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值