Crossin的编程教室

标题: 新人有两个问题求教 [打印本页]

作者: 哈哈哈哈哈哈    时间: 2017-5-31 21:12
标题: 新人有两个问题求教
在crossin老师的python入门教程中我学到了43课查询天气,看到老师说可以先尝试自己做出这个程序,我就准备自己先试一下。根据教程的提示我谷歌了urllib2的用法,可是看了几个网页完全不知所云,我是啥也不会的新手啊,那些网站上的概念和术语都看不懂。难道我只能按着教程学吗?有没有什么方法和建议?

还有一个问题,在写文件那一课的课后作业里要求从控制台输入内容保存至一个文件。我想了半天感觉没学啊,就百度了一下,用了ECHO这个命令。我想知道老师这个作业的本意是什么?
作者: 哈哈哈哈哈哈    时间: 2017-6-1 10:19
今天蒙了一个urlopen的方法,竟然成功了。难道自学很多时候就要这样毫无头绪的蒙吗?哈哈
作者: 哈哈哈哈哈哈    时间: 2017-6-1 12:44
完成了城市编号抓取的部分,好欣慰。
作者: 哈哈哈哈哈哈    时间: 2017-6-1 15:15
求助:下面是我的代码,运行之后出现了错误,经过检查是cityid=d.get(city)这个地方有问题,不管输入什么返回的都是None,要怎样解决?
#_*_coding=utf-8_*_
from urllib2 import urlopen
from json import loads

d={}#引入城市编号的资料
f=open('zgtqw_csbh.txt')
x=f.readlines()
for n in x:
    m=n.split()
    d[m[0]]=m[1]
f.close()

while True:#主程序
    print'你想查哪个城市的天气?'
    city=raw_input()

    cityid=d.get(city)#在中国天气网查询天气
    a=loads(urlopen\
       ('http://www.weather.com.cn/data/cityinfo/%s.html'%cityid)\
       .read())
   
    #分析天气资料
    temp1=a[u'weatherinfo'][u'temp1']
    temp2=a[u'weatherinfo'][u'temp2']
    weather=a[u'weatherinfo'][u'weather']

    #输出天气信息
    print'%s\n%s~%s'%(weather,temp1,temp2)
    print

作者: 哈哈哈哈哈哈    时间: 2017-6-1 20:48
这个字典的问题我一遍一遍检查都不知道哪里不对,唉。有没有人帮我一下?
作者: crossin先生    时间: 2017-6-1 21:01
哈哈哈哈哈哈 发表于 2017-6-1 20:48
这个字典的问题我一遍一遍检查都不知道哪里不对,唉。有没有人帮我一下? ...

查询None的原因,应该是你用的windows系统,city.py 和代码第一行应该设置为 gbk 替代 utf8 ,不然和控制台获取的字符编码不一致
作者: 哈哈哈哈哈哈    时间: 2017-6-1 21:26
crossin先生 发表于 2017-6-1 21:01
查询None的原因,应该是你用的windows系统,city.py 和代码第一行应该设置为 gbk 替代 utf8 ,不然和控制 ...

我改了,可还是没用TAT
作者: crossin先生    时间: 2017-6-2 20:26
哈哈哈哈哈哈 发表于 2017-6-1 21:26
我改了,可还是没用TAT

多输出点信息
确认你的d到底有没有正确取到值




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5