[Python高效编程]
来源:互联网 发布:linux tmp目录作用 编辑:程序博客网 时间:2024/06/07 17:24
开发环境
- Python版本: python3.6
- 调试工具:pycharm 2017.1.3
- 电脑系统:Windows 10 64位系统
- Python库:requests,collections
获取天气信息
import requestsdef getWeather(city): r = requests.get("http://wthrcdn.etouch.cn/weather_mini?city=" + city) data = r.json()['data']['forecast'][0] return '{0}: {1}, {2}'.format(city, data['low'], data['high'])print(getWeather('武汉'))
武汉: 低温 4℃, 高温 15℃
使用可迭代对象和迭代器输出信息
from collections import Iterable, Iteratorimport requestsclass WeatherIterator(Iterator): # 继承可迭代的对象 def __init__(self, cities): self.cities = cities self.index = 0 def getWeather(self, city): r = requests.get("http://wthrcdn.etouch.cn/weather_mini?city=" + city) data = r.json()['data']['forecast'][0] return '{0}: {1}, {2}'.format(city, data['low'], data['high']) def __next__(self): if self.index == len(self.cities): raise StopIteration city = self.cities[self.index] self.index += 1 return self.getWeather(city)class WeatherIterable(Iterable): # 继承迭代器 def __init__(self, cities): self.cities = cities def __iter__(self): return WeatherIterator(self.cities)for x in WeatherIterable(['北京', '上海', '武汉', '深圳']): print(x)
北京: 低温 -4℃, 高温 7℃上海: 低温 5℃, 高温 13℃武汉: 低温 4℃, 高温 15℃深圳: 低温 13℃, 高温 19℃
代码优化
上述的代码还是不够简洁,还可以进一步优化,下面重写代码
import requestsclass WeatherOutput: """输出天气信息""" def __init__(self, cities): self.cities = cities self.index = 0 def getWeather(self, city): try: r = requests.get("http://wthrcdn.etouch.cn/weather_mini?city=" + city) data = r.json()['data']['forecast'][0] return '{0}: {1}, {2}'.format(city, data['low'], data['high']) except: print("获取天气信息失败") def __iter__(self): return self def __next__(self): if self.index == len(self.cities): raise StopIteration city = self.cities[self.index] self.index += 1 return self.getWeather(city)for x in WeatherOutput(['北京', '上海', '武汉', '深圳']): print(x)
北京: 低温 -4℃, 高温 7℃上海: 低温 8℃, 高温 14℃武汉: 低温 4℃, 高温 17℃深圳: 低温 15℃, 高温 19℃
如果想知道原理,可以参考这篇博客:
http://blog.csdn.net/lanhaixuanvv/article/details/78503325
阅读全文
0 0
- Python高效编程技巧
- Python高效编程技巧
- Python高效编程技巧
- Python高效编程技巧
- Python高效编程技巧
- python高效编程
- Python高效编程技巧
- Python高效编程技巧
- python 高效编程
- Python高效编程技巧
- Python高效编程技巧
- Python高效编程技巧
- [Python高效编程]
- [Python高效编程]
- [Python高效编程]
- [Python高效编程]
- [Python高效编程]
- [Python高效编程]
- python 画几何图形
- linux系统sudoers文件夹权限777以及/etc/profile文件修改后无法进入系统问题
- 异步多线程
- 大数除法
- pthon将excel转成lua
- [Python高效编程]
- 机器学习:simple linear iterative clustering (SLIC) 算法
- java中字符串或数字的对齐方式和输出所占用的宽度的问题
- HDU-2200Eddy's AC难题
- 架构师之路:Python分布式爬虫Scrapy打造搜索引擎
- JS基础学习(九)
- 51Nod
- USBKey的密码学原理
- CSS布局相关及Flex详解