Skip to content

Python常用及语法糖


快捷键说明
ctrl + d复制
ctrl + alt + l格式化对齐
shift + f6重命名
.pri + enter快捷print

格式

python
def fun(a, b):
    """
    Description:

    Args:
    Return:
    """
    return a + b


def main():
    # 这里作为入口
    print(fun("hello", " world!"))


if __name__ == "__main__":
    main()

语法糖

python
num = 1_000_000

# 乘法
print("-" * 50)
my_list = [0] * 5

# F-String
print(f"{num:#<15}")			# 1000000######## 左对齐
print(f"{num:>>15}")			# >>>>>>>>1000000 右对齐
print(f"{num:-^15}")			# ----1000000---- 居中对齐

# ''.join()字符串添加分隔符,注意里面的元素要是字符串
nums = [12, 345, 6789]
nums = [str(i) for i in nums]	# 先转换

s1 = ''.join(nums)				# 123456789
s2 = '/'.join(nums)				# 12/345/6789

# enumerate()计算count,tqdm()显示进度
for _ in tqdm(range(100)):
    time.sleep(0.1)
    
# divmod()获取整除和余数
m, n = divmod(10, 3)

# zip()
x = [1, 2, 3]
y = ['a', 'b', 'c']
z = [str(i) + j for i, j in zip(x, y)]	# ['1a', '2b', '3c']

# 一行赋值
switch = True
state = 'open' if switch else 'close'

device=torch.device('cuda' if torch.cuda.is_available() else 'cpu')

# 字符和ASCII转化
num = ord('a')			# 97
ch = chr(65)			# 'A'
ss = str(65)			# '65'

# 形参前面加上*强制后面使用关键字传参
class Person:
    def __init__(self, name, *hobby, QQ, WeChat):
        self.name = name
        self.hobby = hobby
        self.QQ = QQ
        self.WeChat = WeChat
        
p1 = Person('mike', 'eat', 'drink', QQ=123, WeChat=456)

# 列表转集合,直接set函数或者{i for i in list}
mylist = [1, 2, 3, 2, 2, 2, 4]
set1 = set(mylist)

set2 = {i for i in mylist if i % 2 == 0}  # 如果有筛选条件,集合推导式

# 字典中如果key不存在,使用下标索引会KeyError,改用给get()方法
dic = {"A": 123, "B": 0}
print(dic.get('C'))			# None
print(dic['C'])				# KeyError

# 字典setdefault
my_dict = {}
for key, value in [('a', 1), ('b', 2), ('a', 3)]:
    my_dict.setdefault(key, []).append(value)

print(my_dict)  # 输出 {'a': [1, 3], 'b': [2]}