Форум сайта python.su
31
Есть функция,внутри которой ,за каждую итерацию цикла 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)
Офлайн
31
Такой вариант выводит только ,допустим,утреннюю погоду, а надо всю
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
Офлайн
2
Как вариант:
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)
Офлайн
31
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)
Офлайн
14
Альтернативно - StringIO
Офлайн
31
odnochlen
Альтернативно - StringIO
Офлайн