一定有你不知道的Python技巧

Python一直以代码简洁著称;想写出艺术般的代码,需要你掌握各种Python技巧,这些技巧有些是语言特性,有些则是广大程序员的经验心得;今天作者就给大家网罗了一些Python技巧,一起来看看吧。

你这样用过三元表达式么?

a = 2

content = '正确' if a== 1 else '错误'

print(content)

在Python中,True实际上是1,False 是0,所以我们还能这么写:

content = ['正确','错误'][a==1]

枚举能让代码更简单

import enum
 
@enum.unique
class sex(enum.Enum):
    man = 1
    woman = 2
 
print(sex.man.name)
print(sex.man.value)
print(sex.woman.name)
print(sex.woman.value)

使用遍历的方式:

for item in sex:
    print(item.name)
    print(item.value)

另一种使用枚举的方式:

import enum
words = enum.Enum(
    value='d',
    names=('a b c d e f'),
)
 
for word in words:
    print(word.name, word.value)

字典的逻辑运算

字典键支持常见的集合操作,比如并集,交集。

获取两个字典相同的键:

for item in sex:
    print(item.name)
    print(item.value)

另一种使用枚举的方式:

a = {'x': 1, 'y': 2, 'z': 3}
 
b = {'w': 2, 'x': 4, 'q': 3, 'z': 3}
 
c = a.keys() & b.keys()
 
print(c)

获取两个字典相同的键值对:

d = a.items() & b.items()
 
print(d)

删除某些键并创建一个新的字典:

e = {k: a[k] for k in a.keys() - {'z', 'x'}}
 
print(e)

交换变量

这个可能很多人都会了.

a , b = 1 , 2
print(a,b)
a , b = b , a
print(a,b)

for else

你可能用过for遍历过列表,但你知道他其实也能搭配else用么?

a = [1,2,3,4,5]
for el in a:
    if el == 0:
        break
else:
    print('没有使用break跳出循环')

当列表中包含 0 时,会触发break, else语句块将不会被执行。

类型提示

在Python中,你定义变量、函数、类别的时候,并不需要指定数据的类型。

但这是有代价的,当你的项目过于庞大时,你可能会因为类型错误而花费大量时间来排查错误。

在Python 3.5之后,这将不是问题了,你可以为函数指定参数类型以及返回值类型:

def add(a:int,b:int) -> int:
 
    return a + b

参数类型可以是自定义的。

同一行多个语句

分号‘;’允许你将多个语句写在同一行上:

	import time;a=1;print(a);print(time.time())

多行字符串

最简单的方法是使用三个引号:

mystr = """xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx"""

上面的方法最大的问题是换行符也会被赋予,如果字符串是一条sql语句的话,那就糟糕了。

还好我们有反斜杠:

sql = "select * from mytable \
where t_count < 10"
 
print(sql)

又或者是分多行,将字符串包含在括号内:

sql = ("select * from mytable "
"where t_count < 10")
 
print(sql)

列表元素赋值给变量

我们可以使用列表来初始化变量。

需要注意的是,变量的数量不能超过列表元素的个数:

myargs = [1,2,3]
 
a,b,c = myargs

获取导入模块的文件路径

如果你想看某个模块的源码,你只需这样做就可获取源码文件路径:

import threading
 
print(threading)

交互模式下“_”操作符

在Python控制台中,计算结果忘记用变量存储怎么办?

使用下划线 "_" 即可获得丢失的变量

_操作符

计算任何数的阶乘

import functools
 
result= (lambda k: functools.reduce(int.__mul__,
                                    range(1,k+1),1))(10)
 
print(result)

你用过这些技巧么?没有的话就赶紧去试试吧!

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1136.html

分类: 计算机技术
推荐阅读:
C语言实现CRC32算法 本文将使用C语言完成CRC32算法的实现;
Python判断文本的相似度 在Python中,有多种方法可以判断文本的相似度,比如余弦相似度、Jaccard相似度;本文使用余弦相似度来计算两段文本的相似程度。
Python print()函数 print() 函数是 Python 内置函数之一,用于输出指定的对象。它可以接受多个参数,用逗号分隔,它们将被依次输出,并且默认情况下它们之间会用空格分隔。在输出完成之后,print() 函数会自动在末尾添加一个换行符。
Linux下快速的重命名文件 在Linux系统下,不知道你们是怎么重命名文件的,虽然方法很多,但我这个绝对是最简单且最高效的,而且只有一条命令就可实现:
Python调用谷歌翻译API实现文本翻译 使用Python向谷歌翻译URL进行GET请求,得到网页内容后使用正则表达式进行解析,获得翻译结果;
PySide6使用Qt Designer创建的UI 在本文中,你将学会使用Qt Designer画出UI,并在Python中使用它;