Python 技巧
有时会看到如下代码
if input_str := input("请输入一个字符串: "):
print(f"你输入的字符串是: {input_str}")
else:
print("你没有输入任何字符串")
这里使用了
:=
这个运算符.
在这里,input_str := input("请输入一个字符串: ")
的意思是先执行 input("请输入一个字符串: ")
,然后将其结果赋值给 input_str
。这样,我们可以在 if
语句中直接使用 input_str
,而不需要在 if
语句之前就定义 input_str
。
如果input_str
不为空,则打印输入的字符串,否则打印“你没有输入任何字符串”。
而空字符串在python中是 False
,非空字符串是 True
。这个在python中自动转换。
在python中,:=
运算符可以用于赋值表达式,它可以在表达式中赋值,然后返回赋值的值。
也可用于regex匹配:
if (match := re.search(r'(\d+)', input_str)):
print(f"匹配到的数字是: {match.group()}")
else:
print("没有匹配到任何数字")
如果匹配到数字,则打印匹配到的数字,否则re.search()
返回None, 而None自动转换成False
, 所以打印“没有匹配到任何数字”。
除了if
语句,while
语句也可以使用:=
运算符:
while input_str := input("请输入一个字符串: "):
print(f"你输入的字符串是: {input_str}")
一样的,如果输入的字符串不为空,则打印输入的字符串,否则退出循环。