2015-09-01 1 views
1

Поскольку для вычисления A требуется слишком много времени, я хочу, чтобы вычисление остановилось и программа продолжала вычисляться для B. Было бы также полезно узнать, какую ошибку вы вызываете.Как предотвратить зависание python для работы с большим числом уравнений?

A = 999999999999999999**999999999999999999 

B = 9**9 

Программа по-прежнему зависает при использовании threading.Timer()

import threading 
import time 

a = 1 

def zzz(): 
    global a 
    print('restarting') 
    a = 0 
    threading.Timer(1.0,zzz).start() 
    a = 1 


threading.Timer(1.0, zzz).start() 



while 1: 
    while a == 1: 
     h = 999999999999999**999999999999999 
+0

Вы хотите какой-то таймер, который, если триггер, запускается в следующее уравнение? – vathek

+0

вы можете попробовать threading.Timer() –

+0

Мой первый вопрос будет, вам действительно нужно это сделать? Можете ли вы решить свою проблему каким-то другим способом? Если нет, и вы должны сделать такой расчет и использовать python для этого, я бы предложил вам искать потоки, особенно рабочий поток. https://pymotw.com/2/threading/ – theAlse

ответ

0

Я считаю, что проблема была решена: добавление».0" в конце одного номера позволит питон признать, что 99999999999999.0 ** 99999999999999 слишком большой результат и выведет ошибку, которая может быть проигнорирована с помощью try/except

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