2016-04-03 4 views
1

Я пытаюсь сделать функцию, где у меня есть три разных уровня; высокое время отклика, низкое время отклика и время отклика ok. Для последнего он должен быть интервалом между двумя значениями, например, между 1 и 1,5 секундами. Могу ли я решить его с помощью if-запросов в формате try except?Если запросы с исключением

#!/usr/bin/python 
import requests 

reptime = 0.5 

url="http://www.google.com" 

def time(desired_resp): 
     try: 
       response = requests.get(url,timeout=desired_resp).elapsed.total_seconds() 
     except requests.exceptions.Timeout as f: 
       print "High response time" 
       print response 
     else: 
       print "Low reponse time" 
       print response 

time(reptime) 
+0

это простой 'if'. не уверен, что вы пытаетесь сделать. –

+0

Прямо сейчас у меня есть только два состояния с высоким или низким временем отклика. Как я могу реализовать третью, где я определяю интервал, когда время отклика в порядке? С той же структурой, что и сейчас? – user3580316

+0

Вы не можете (без повторения кода). Отделите результат/состояние и ответ. Сохраните состояние в переменной. –

ответ

1

У вас есть одна переменная response и в зависимости от его значения, вы должны распечатать high, ok или low:

#!/usr/bin/python 
import requests 

reptime = 0.5 

url="http://www.google.com" 

def time(desired_resp): 
    try: 
     response = requests.get(url,timeout=desired_resp).elapsed.total_seconds() 
    except requests.exceptions.Timeout as f: 
     response = desired_resp 
    if response < desired_resp*0.5: 
     print "Low reponse time" 
    elif response < desired_resp: 
     print "Ok reponse time" 
    else: 
     print "High response time" 
    print response 

time(reptime) 
+0

Что делать, если я хочу определить диапазон для времени отклика? Это мой главный вопрос. Например, от 1 до 1,5? Как это будет? – user3580316

+0

У вас есть три диапазона, меньшие, чем 'time1' между' time1' и 'time2' и выше, чем' time2'. Следовательно, ветка 'if', одна' elif' и одна 'else'. – Daniel