跳过“无”列表的循环

时间:2018-07-28 13:04:35

标签: python python-3.x

对于下面的代码,如果.intel_syntax noprefix tab: .int 1,5,8 li: .asciz "\n" descrip: .asciz "%d" debut: .asciz " MON PROGRAMME ASSEMBLEUR\n" bar: .asciz "=================================================\n" .data .global main main: push offset bar call print_string add esp,4 push offset debut call print_string add esp,4 push offset bar call print_string add esp,4 push offset tab call affab add esp,4 call permut call lig call lig push offset tab call affab add esp,4 mov eax,1 mov ebx,0 int 0x80 permut: push ebp mov ebp,esp mov eax, [ebp+8] mov ebx,[eax] mov ecx,[eax+4] mov [eax],ecx mov [eax+4],ebx pop ebp ret affab: push ebp mov ebp, esp mov eax, [ebp+8] mov ecx,0 pour: cmp ecx,3 jge finpr push [eax+ecx*4] call print_int add esp,4 call lig inc ecx jmp pour finpr: pop ebp ret print_int: push ebp mov ebp, esp pusha push [ebp+8] push offset descrip call printf add esp, 8 popa pop ebp ret print_string: push ebp mov ebp, esp pusha push [ebp+8] call printf add esp, 4 popa pop ebp ret lig: push ebp mov ebp,esp push offset li call print_string add esp,4 pop ebp ret lst,则会抛出异常。

None

有没有一种方法可以让它在for a in lst: .. lst时不执行循环?

现在我总是需要检查一下:

None

3 个答案:

答案 0 :(得分:2)

使用if

if lst:
    for a in lst:
        do_something

答案 1 :(得分:2)

您可以尝试以下方法:

for a in lst if lst else []:
    ...

或者最好只使用or进行检查:

for a in lst or []:

答案 2 :(得分:2)

如果bool(lst)导致False,则可以使用or运算符遍历一个空列表

>>> lst = None
>>> for a in lst or []:
...      print(a)
... 
>>>