2016-07-23 4 views
-4

Мой код в то время True loop. В основном он пытается что-то вроде captcha.Перезапустить функцию в python

Так что я хочу что-то вроде этого

def loop(): 
    toplam = 0 
    global sayilar 
    x = br.open(something) 
    html = x.read() 
    sayilar = map(str.strip,''.join(kod.findall(html)).split("\xc4\x84\xc5\x95\xc5\xa3\xc4\xb1")) 
    print sayilar 
    for i in sayilar: 
     if i in diction: 
      toplam += diction[i] 
     else 
      #break the function 








if __name__ == "__main__": 
    giris() 
    while 1: 
     loop() 

он не может найти номер в словаре будет нарушать функцию и перезапустить функцию еще раз, потому что функция в то время как цикл.

+3

Что ваш вопрос? –

+0

Как сломать функцию? else: #break функция –

+0

Почему бы просто не использовать break? –

ответ

0

Хорошо, нашел хороший способ его перезапустить.

class CustomError(Exception): 
    def __init__(self, arg): 
     # Set some exception infomation 
     self.msg = arg 
def loop(): 
    toplam = 0 
    global sayilar 
    x = br.open(something) 
    html = x.read() 
    sayilar = map(str.strip,''.join(kod.findall(html)).split("\xc4\x84\xc5\x95\xc5\xa3\xc4\xb1")) 
    print sayilar 
    for i in sayilar: 
     if i in diction: 
      toplam += diction[i] 
     else 
      raise CustomError('Kelime Dictionaryde bulunamadi') 








if __name__ == "__main__": 
    giris() 
    while 1: 
     try: 
      loop() 
     except CustomError, arg: 
      print "Can't find in dictionary" 
0

Вы можете буквально использовать break. Используя break, вы можете немедленно остановить цикл. После этого вы увидите использование return.

for i in sayilar: 
    if i in diction: 
     toplam += diction[i] 
    else: 
     return None 
     break 
return True    # Anything but None will work in place of True 

Это идет то же самое для контура while:

while True: # Use True instead of 1 
    loop() 
    if loop() == None:   # The function call is equal to what it returned 
     break 
    else: 
     continue     # Optional else statement: continues loop if loop() != None 
+0

Код не только. Это лишь часть его. Извините за недоразумение –

+0

Также он не выходит. try/except находится в while, поэтому он повторяет эту функцию. –

+0

Проверить мои изменения ... –

 Смежные вопросы

  • Нет связанных вопросов^_^