cython

Форк
0
/
for_in_break_continue_T533.pyx 
68 строк · 1.2 Кб
1
# mode: run
2
# ticket: t533
3
# ticket: gh1093
4

5
def for_in():
6
    """
7
    >>> for_in()
8
    CONTINUE -1
9
    CONTINUE 4
10
    BREAK 6
11
    6
12
    """
13
    i = -1
14
    for L in [[], range(5), range(10)]:
15
        for i in L:
16
            if i > 5:
17
                break
18
        else:
19
            print "CONTINUE", i
20
            continue
21
        print "BREAK", i
22
        break
23
    return i
24

25

26
def for_from():
27
    """
28
    >>> for_from()
29
    CONTINUE 0
30
    CONTINUE 5
31
    BREAK 6
32
    6
33
    """
34
    i = -1
35
    for L in [[], range(5), range(10)]:
36
        for i from 0 <= i < len(L):
37
            if i > 5:
38
                break
39
        else:
40
            print "CONTINUE", i
41
            continue
42
        print "BREAK", i
43
        break
44
    return i
45

46

47
def for_in_break2(data, avoid):
48
    """
49
    >>> for_in_break2([1,2,3,None], avoid=[1,2,3])
50
    3
51
    >>> for_in_break2([1,2,3,None], avoid=[1])
52
    1
53
    >>> for_in_break2([1,2,3,None], avoid=[1])
54
    1
55
    """
56
    data_iter = iter(data)
57
    value = None
58
    while 1:
59
        match = next(data_iter)
60
        if match is None:
61
            break
62
        for value in avoid:
63
            if match == value:
64
                break
65
        else:
66
            break
67

68
    return value
69

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.