请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 3553|回复: 7

新人有两个问题求教

[复制链接]

2

主题

0

好友

37

积分

新手上路

Rank: 1

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

还有一个问题,在写文件那一课的课后作业里要求从控制台输入内容保存至一个文件。我想了半天感觉没学啊,就百度了一下,用了ECHO这个命令。我想知道老师这个作业的本意是什么?
回复

使用道具 举报

2

主题

0

好友

37

积分

新手上路

Rank: 1

发表于 2017-6-1 10:19:17 来自手机 |显示全部楼层
今天蒙了一个urlopen的方法,竟然成功了。难道自学很多时候就要这样毫无头绪的蒙吗?哈哈
回复

使用道具 举报

2

主题

0

好友

37

积分

新手上路

Rank: 1

发表于 2017-6-1 12:44:33 来自手机 |显示全部楼层
完成了城市编号抓取的部分,好欣慰。
回复

使用道具 举报

2

主题

0

好友

37

积分

新手上路

Rank: 1

发表于 2017-6-1 15:15:23 |显示全部楼层
求助:下面是我的代码,运行之后出现了错误,经过检查是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
回复

使用道具 举报

2

主题

0

好友

37

积分

新手上路

Rank: 1

发表于 2017-6-1 20:48:35 来自手机 |显示全部楼层
这个字典的问题我一遍一遍检查都不知道哪里不对,唉。有没有人帮我一下?
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2017-6-1 21:01:47 |显示全部楼层
哈哈哈哈哈哈 发表于 2017-6-1 20:48
这个字典的问题我一遍一遍检查都不知道哪里不对,唉。有没有人帮我一下? ...

查询None的原因,应该是你用的windows系统,city.py 和代码第一行应该设置为 gbk 替代 utf8 ,不然和控制台获取的字符编码不一致
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

2

主题

0

好友

37

积分

新手上路

Rank: 1

发表于 2017-6-1 21:26:25 来自手机 |显示全部楼层
crossin先生 发表于 2017-6-1 21:01
查询None的原因,应该是你用的windows系统,city.py 和代码第一行应该设置为 gbk 替代 utf8 ,不然和控制 ...

我改了,可还是没用TAT
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2017-6-2 20:26:58 |显示全部楼层
哈哈哈哈哈哈 发表于 2017-6-1 21:26
我改了,可还是没用TAT

多输出点信息
确认你的d到底有没有正确取到值
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-3-29 18:12 , Processed in 0.025322 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部