我只是在学习python,我想知道是否有更好的方法从res变量中提取最新温度。
for (index, animal) in zoo.enumerated() {
print("\(index)", terminator: "") //The terminator allows it to NOT create a new line on the next print statement.
animal.printAnimalDetails()
}
答案 0 :(得分:2)
您的代码相当有效,但可以将其缩减为:
from noaa_sdk import noaa
import datetime as dt
date = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
res = noaa.NOAA().get_observations('25311', 'US', start=date)
print('{:.1f} F'.format( next(res)['temperature']['value'] * 9 / 5 + 32))
44.1 F
答案 1 :(得分:1)
如果您的意思是计算效率,则没有太大的改进空间。
如果您的意思是缩短代码行,那么temp= (next(res))
部分与提取代码中的数据有关,似乎已经很短了。
答案 2 :(得分:0)
noaa_sdk
包的示例文档大量使用了循环。我建议,如果您只是在学习Python,则尝试使用面向循环的样式。
from datetime import datetime
from noaa_sdk import noaa
def to_freedom_degrees(temp_c):
return 32.0 + 9.0 / 5.0 * temp_c
date = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
observations = noaa.NOAA().get_observations('25311', 'US', start=date, end=None, num_of_stations=1)
for observation in observations:
temp_c = observation['temperature']
temp_f = to_freedom_degrees(temp_c)
print(temperature, ' F')
# I only want one temperature
break
else:
print('No temperature found!')