Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 29, 2012 19:34:14

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

вывод функции в переменную

Есть функция,внутри которой ,за каждую итерацию цикла for, четыре раза выводится результат,но при записи данного вывода в переменную вносится только одно значение, понятно перезапись идет,надо весь вывод при вызове функции отобразить в виде форматированной строки в переменной

def __main__():
    # Odessa, UA: id = 33837
    w = GisWeather('34502')
    w.update()
    for f in w.forecasts:
        print 'Date: %s.%s.%s %s:00 %s' % (f.day, f.month, f.year, f.hour, f.getTodName())
        print '\t Temp(°C) (min max): %s %s' % (f.temperature.min,
                f.temperature.max)
        print '\t Oblachnost: %s' % (f.phenomena.getCloudiness())
        print '\t Osadki: %s' % (f.phenomena.getPrecipitation())
        print '\t Davlenie(mm) (min max): %s %s' % (f.pressure.min,
                f.pressure.max)
        print '\t Veter(°C) (min max): %s %s\n' % (f.heat.min,
                f.heat.max)
__main__()
Вот вывод :Date: 29.8.2012 21:00 evening
	 Temp(В°C) (min max): 13.0 15.0
	 Oblachnost: overcast
	 Osadki: rain
	 Davlenie(mm) (min max): 747.0 749.0
	 Veter(В°C) (min max): 12.0 14.0
Date: 30.8.2012 3:00 night
	 Temp(В°C) (min max): 14.0 16.0
	 Oblachnost: cloudy
	 Osadki: no precipitation
	 Davlenie(mm) (min max): 749.0 751.0
	 Veter(В°C) (min max): 13.0 15.0
Date: 30.8.2012 9:00 morning
	 Temp(В°C) (min max): 14.0 16.0
	 Oblachnost: overcast
	 Osadki: no precipitation
	 Davlenie(mm) (min max): 751.0 753.0
	 Veter(В°C) (min max): 14.0 16.0
Date: 30.8.2012 15:00 afternoon
	 Temp(В°C) (min max): 17.0 19.0
	 Oblachnost: overcast
	 Osadki: no precipitation
	 Davlenie(mm) (min max): 753.0 755.0
	 Veter(В°C) (min max): 17.0 19.0

Отредактировано sanodin (Авг. 29, 2012 20:24:13)

Офлайн

#2 Авг. 29, 2012 21:04:38

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

вывод функции в переменную

Такой вариант выводит только ,допустим,утреннюю погоду, а надо всю

def __main__():

w = GisWeather('34502')
w.update()


for f in w.forecasts:
v='%s.%s.%s %s:00 %s' % (f.day, f.month, f.year, f.hour, f.getTodName())
tmp='C°: %s %s' % (f.temperature.min,
f.temperature.max)
obl=' Obl: %s' % (f.phenomena.getCloudiness())
osd= ' \ %s' % (f.phenomena.getPrecipitation())
davl=' \D: %s %s' % (f.pressure.min,
f.pressure.max)
tepl='\t Teplo(°C) (min max): %s %s\n' % (f.heat.min,
f.heat.max)
rt=(tmp)+(osd)+(davl)

return rt

Офлайн

#3 Авг. 29, 2012 21:12:49

mironich
От:
Зарегистрирован: 2011-05-23
Сообщения: 118
Репутация: +  2  -
Профиль   Отправить e-mail  

вывод функции в переменную

Как вариант:

            
weather_list = []
for f in w.forecasts:
                    v='%s.%s.%s %s:00 %s' % (f.day, f.month, f.year, f.hour, f.getTodName())
                    tmp='C°: %s %s' % (f.temperature.min,
                            f.temperature.max)
                    obl=' Obl: %s' % (f.phenomena.getCloudiness())
                    osd= ' \ %s' % (f.phenomena.getPrecipitation())
                    davl=' \D: %s %s' % (f.pressure.min,
                            f.pressure.max)
                    tepl='\t Teplo(°C) (min max): %s %s\n' % (f.heat.min,
                            f.heat.max)
                    rt=(tmp)+(osd)+(davl)
                    weather_list.append(rt)
print '\n\n'.join(weather_list)



Офлайн

#4 Авг. 29, 2012 21:19:24

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

вывод функции в переменную

mironich
Как вариант:
            
weather_list = []
for f in w.forecasts:
                    v='%s.%s.%s %s:00 %s' % (f.day, f.month, f.year, f.hour, f.getTodName())
                    tmp='C°: %s %s' % (f.temperature.min,
                            f.temperature.max)
                    obl=' Obl: %s' % (f.phenomena.getCloudiness())
                    osd= ' \ %s' % (f.phenomena.getPrecipitation())
                    davl=' \D: %s %s' % (f.pressure.min,
                            f.pressure.max)
                    tepl='\t Teplo(°C) (min max): %s %s\n' % (f.heat.min,
                            f.heat.max)
                    rt=(tmp)+(osd)+(davl)
                    weather_list.append(rt)
print '\n\n'.join(weather_list)

Спасибо…чуть под себя подправил…работает

Офлайн

#5 Авг. 29, 2012 21:26:11

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

вывод функции в переменную

Альтернативно - StringIO

Офлайн

#6 Авг. 29, 2012 21:47:13

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

вывод функции в переменную

odnochlen
Альтернативно - StringIO

Сейчас займусь…спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version