python基础(27)一些特殊的技巧

  • not orand
>>> 0 or 1
1
>>> 0 and 1
0
>>> 0 and 2
0
>>> 0 and 2 or 3
3
>>> not 0 or 1
True
>>> not 0 and 1
1
>>> not 1 and 3 or 5 and "" or False
False
>>> not 1 and 3 or 5 and "" or 0
0

not > and > or

>>> data = ">>>:"
>>> input(data)
>>>:
>>> name = None
>>> data = name or "未登录"
>>> input(f"{data}>>>")
未登录>>>

>>> name = "xxxx"
>>> data = name or "未登录"
>>> input(f"{data}>>>")
xxxx>>>
  • **for else **

else 里面的语句不一定执行,取决于 for 循环能否正常执行完毕,如果 for 循环中有 break 字段等导致 for 循环没有正常执行完毕,那么 else 中的内容也不会执行。

>>> for i in data:
	print(i)
	if i == 33:
	    break
else:
     print(666)

11
22
33
>>> for i in data:
	print(i)
else:
     print(666)
        
11
22
33
44
55
66
666
  • nolocal指向上一级作用域
name = "root"

def outer():
    name = "alex"
    
    def inner():
        nonlcoal name
        name = 123
    inner()
    print(name)
    
outer()
print(name)
  • global,指向全局作用域
name = "root"

def outer():
    name = "alex"
    
    def inner():
        global name
        name = 123
        
    inner()
    print(name)
    
outer()
print(name)
posted @ 2021-11-07 00:07  下个ID见  阅读(17)  评论(0)    收藏  举报