更多课程 选择中心

Python培训
美国上市教育机构

400-111-8989

Python培训

自学Python编程【第四十一节】查天气(1)

  • 发布:Python培训
  • 来源:Crossin的编程教室
  • 时间:2019-03-01 17:13

欢迎你来到达内自学Python编程第四十一节,我们今天也是开始一个新的内容——查天气,当然今天不是直接告诉你怎么查天气,而是跟你简单说说,天气怎么查询,然后大家试着自己是否可以完成这个代码,挑战一下吧:

自学Python编程【第四十一节】查天气(1)

给大家看一个程序:

自学Python编程【第四十一节】查天气(1)

你输入一个城市的名称,就会告诉你这个城市现在的天气情况。接下来的几节课,我就说一下怎么实现这样一个小程序。

之所以能知道一个城市的天气,是因为用了中国天气网(www.weather.com.cn)提供的天气查询接口。在浏览器里试着访问一下:

http://www.weather.com.cn/data/cityinfo/101010100.html

你就能看到北京现在的天气。这段看上去有点像python中字典类的文字是一种称作json格式的数据。

而我们的程序要做的事情,就是按照用户输入的城市名称,去天气网的接口请求对应的天气信息,再把结果展示给用户。

于是,在这个程序中,我们要用到两个新模块:

1. urllib2

用来发送网络请求,获取数据

2. json

用来解析获得的数据

听上去似乎还挺不算太复杂?但是注意刚才那个例子,我们请求北京天气时,用了“101010100”这样的数字。这是天气网设定的城市代码。然而令人蛋疼的是,天气网并没有直接给出所有城市代码的对应关系,而是给了3个接口:

1. http://m.weather.com.cn/data5/city.xml

获取所有省/直辖市的编号,如“01|北京,02|上海,03|天津”

2. http://m.weather.com.cn/data5/city省编号.xml

获取二级地区编号,如江苏是:city19.xml

3. http://m.weather.com.cn/data5/city二级编号.xml

获取三级编号,如南京是:city1901.xml

得到最终的三级编号之后,再加上中国101的前缀,就得到了城市代码,如南京市区就是“101190101”

所以,你可以选择,再写一个python程序,事先把这些复杂的编码全部抓取下来,整理成你要的格式;或者,偷懒一下,跳过这个过程,直接拿我抓好的编码。我放在了网盘里:

http://pan.baidu.com/share/link?shareid=1471212773&uk=204484850

今天先卖个关子,不说具体的写法。想挑战的同学可以试试再我说之前就把这个程序搞定。

恭喜您在Python自学的道路上又坚持了一天,大家想想我们之前讲过的循环、文件存取、修改等,是不是可以试着写写呢?试着挑战一下自己,我在这里期待着大家的好成绩,不会也没有关系,下一节我们一点点像大家揭秘。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:自学Python教程【第四十节】函数的默认参数
下一篇:自学Python编程【第四十二节】查天气(2)

【Git第八节】移除文件

【Python实战】四行Python代码就能知道你那的天气,你敢信?

Python实战【用Python写游戏第十三节】exe打包

Python实战【用Python写游戏第十二节】屡败屡战

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省