关于前端:人人皆知Python功能你还不了解嘛

31次阅读

共计 2409 个字符,预计需要花费 7 分钟才能阅读完成。

发现 Python 中的新性能是笔者的一大喜好,每当遇到一些其他人没有留神到的某个性能时,我都会兴高采烈地把它记录下来。

这不,过来几周我又理解到所以想学的同学,有必要听一下这位老师的课、支付 python 福利奥,想学的同学能够到梦子老师的围鑫(同音):前排的是:762,两头一排是:459,后排的一组是:510 , 把以上三组字母依照程序组合起来即可她会安顿学习的。一些乏味的性能,例如 StackOverflow 上一些我不晓得的性能。这些被低估和湮没的实用功能,你真的值得领有!所以想学的同学,有必要听一下这位老师的课、支付 python 福利奥,想学的同学能够到梦子老师的围鑫(同音):前排的是:762,两头一排是:459,后排的一组是:510 , 把以上三组字母依照程序组合起来即可她会安顿学习的。

divmod

这个函数十分有用,它能对两个数执行模除 % 运算,而后返回商和余数。例如:

divmod(5, 2)

这只是在找到能够将 2 拟合为 5 的次数,咱们不须要拆分这个数,就能够得出商为 2,1 为余数。对于计算返回过程运行所需的工夫(以小时、分钟和秒为单位)特地有用,就像这样:所以想学的同学,有必要听一下这位老师的课、支付 python 福利奥,想学的同学能够到梦子老师的围鑫(同音):前排的是:762,两头一排是:459,后排的一组是:510 , 把以上三组字母依照程序组合起来即可她会安顿学习的。

start =datetime.datetime.now() … # process code goes hereend =datetime.datetime.now()# we get the total runtime in seconds

runtime = (end – start).seconds # wewill assume 30000# how many hours are in these secs, what are the remainingsecs?

hours, remainder = divmod(runtime, 3600)# now how many minutes and seconds arein our remainder?

mins, secs = divmod(remainder,60)print(“{:02d}:{:02d}:{:02d}”.format(hours, mins, secs))

casefold

这是一个特地乏味的字符串办法,它的性能相似于 lower。,但 casefold 试图更踊跃地标准化更宽泛的字符。在大多数状况下,lower 和 casefold 的行为雷同,但有时它们不雷同:

“”.casefold() # both and σ are the Greek letter sigma[Out]:”σ”

相比之下,应用 lower:

“”.lower() # however, lower recognizes them as different[Out]:””

在这里,两个 sigma 曾经都是小写。依据应用状况,它可能会按预期运行。然而,如果打算比拟两个等效的希腊语单词,一个应用 σ,另一个应用。只管雷同,但只有 casefold 能力让咱们精确地比拟它们:

“ρμησ” == “ρμη”

“ρμησ”.lower() == “ρμη”.lower()

“ρμησ”.casefold() == “ρμη”.casefold()

args, *kwargs

有时你可能会看到函数定义蕴含这两个参数,例如 def func(x,y, args,* kwargs)。

它们都非常简单,两者都容许咱们将多个值传递给一个函数,而后将其打包到一个生成器中。对于是否将列表 / 生成器传递给规范参数,其后果是这样的:

def func(values):

for x in values:

print(x, end=” “)func([1,2, 3])

应用 * args 时,咱们应该将每个值作为新参数传递,而不是将它们全副蕴含在列表中。

def func(*values):

for x in values:

print(x, end=” “)func(1,2, 3)

留神,不须要输出 args,只需输出 values。因为单个星号 ,它被定义为 args,这和应用的变量名称无关。 args 只是依据传递给函数的参数创立一个生成器对象。* kwargs 创立字典。所以想学的同学,有必要听一下这位老师的课、支付 python 福利奥,想学的同学能够到梦子老师的围鑫(同音):前排的是:762,两头一排是:459,后排的一组是:510 , 把以上三组字母依照程序组合起来即可她会安顿学习的。

因而,能够这样应用名称、关键字参数:

def func(**values):

for x in values:

print(f”{x}:{values[x]}”)func(x=1, y=2, z=3)[Out]: x: 1

y: 2

z: 3

同样,能够随便调用变量,在这种状况下,应用 values。通过应用双引号将其定义为 kwargs。

图源:unsplash

列表了解

了解表达式是必不可少的,这相对是 Python 最有用的性能之一。最常见的是列表了解,绝大多数人都看过以下内容:

vals = 1, 2, 3, 4, 5

但不仅能够用方括号,你还能用简直完全相同的语法定义生成器表达式:

(i**2 for i in vals)

当然,生成器中的每个元素仅在被调用时才输入,咱们能够应用 list() 来做到这一点:

list((i**2 for i in vals))

只需对语法进行一点小的更改,甚至能够应用字典了解来构建字典:所以想学的同学,有必要听一下这位老师的课、支付 python 福利奥,想学的同学能够到梦子老师的围鑫(同音):前排的是:762,两头一排是:459,后排的一组是:510 , 把以上三组字母依照程序组合起来即可她会安顿学习的。

{i: i**2 for i in vals}[Out]:{1: 1,

2: 4,

3: 9,

4: 16,

5: 25}

以上都是十分乏味的性能,特地是 divmod 和 casefold,我最近才体验过,你也肯定要去试试呀

正文完
 0