# 1. 不是手动字符串格式化
name ='sss'
age =10print(f"我的我叫{name},我今年 {age}岁")# 2.使用默认可变参数defappend(n, l=None):if l isNone:
l =[]
l.append(n)return l
l1 = append =[0]
l2 = append =[1]print(l1, l2)# 3. 使用Python理解comprehensions(列表、词典、集合、生成器理解)
x ={i: i /2for i inrange(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 **2for var inrange(1,10)]print("Output List using list comprehension:", list_using_comp)# 创建一个输出字典,它只包含输入列表中出现的奇数作为键,它们的立方体作为值
dict_using_comp ={var: var **3for var inrange(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 dictionaryfor(key, value)inzip(state, capital):
output_dict[key]= value
print("Output Dictionary using for loop:", output_dict)
dict_using_comp ={key: value for(key, value)inzip(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 inenumerate(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主要是为了提升可读性)