在公司划水划得要死,前辈们忙,没时间给我安排任务,,,,就前天让我写了个超简单的脚本,然后我就没事了,自由活动,一顿瞎看。。。
海象运算符
新增的语法 :=
可在表达式内部为变量赋值。 它被昵称为“海象运算符”因为它很像是 海象的眼睛和长牙。
在这个示例中,赋值表达式可以避免调用 len()两次:
原写法
a = "dfssdadfsadfafasf"
len_a = len(a)
if len_a > 10:
print(f"结果是{ len_a }")
else:
print("fuck down")
海象运算符
a = "sdfaadfafasf"
if len_a := len(a) > 10:
print(f"结果是{ len_a }")
else:
print("fuck down")
返回结果
结果是True
a = "sdfaadfafasf"
if (len_a := len(a)) > 10:
print(f"结果是{ len_a }")
else:
print("fuck down")
结果是12
值得注意,不加括号的话返回的的True,正常情况要加括号。
f'{}'新的东西
import datetime
time = datetime.datetime.now()
print(time)
print(f'{time=!s}')
# 转为字符串,虽然没啥卵用
import math
print(f'{math.pi=:.6f}')
""""
2020-01-15 18:09:37.678843
time=2020-01-15 18:09:37.678843
math.pi=3.141593
"""
仅限位置形参
新增了一个函数形参语法 /
用来指明某些函数形参必须使用仅限位置而非关键字参数的形式。
在下面的例子中,形参 a 和 b 为仅限位置形参,c 或 d 可以是位置形参或关键字形参,而 e 或 f 要求为关键字形参:
def f(a, b, /, c, d, *, e, f):
print(a, b, c, d, e, f)
f(10, 20, 30, 45, e=50, f=60)
"""
f(10, b=20, c=30, d=40, e=50, f=60) # b cannot be a keyword argument
f(10, 20, 30, 40, 50, f=60) # e must be a keyword argument
"""