设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第44课】 查天气(2)

  [复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

111#
发表于 2016-3-17 23:30:46 |只看该作者
bigshots 发表于 2016-3-17 20:31
crossin老师好,
我用的是mac系统,在terminal用 python web.py编译出现以下问题,但是用IDLE没有问题
web. ...

不知道啊。看上去你mac上的python好像有点混乱,感觉装了不止一个版本?

如果不好解决,那就只能用 virtualenv 创建个虚拟环境,保证里面python的版本没问题
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

112#
发表于 2016-3-19 21:25:25 |只看该作者
分享编码解决问题
我的操作系统是win8的,代码如下,凡是输出的先解码成Unicode再编码成gb2312,输入的则是转成Unicode再编码成utf-8。
  1. # -*- coding: utf-8 -*-
  2. import urllib2
  3. from city import city


  4. cityname = raw_input('你想查哪个城市的天气\n'.decode('utf-8').encode('gb2312'))
  5. citycode = city.get(cityname.decode('gb2312').encode('utf-8'))


  6. if citycode:
  7.         url = 'http://www.weather.com.cn/data/cityinfo/%s.html'%citycode
  8.         content = urllib2.urlopen(url).read()
  9.         print content.decode('utf-8').encode('gb2312')
复制代码
回复

使用道具 举报

0

主题

0

好友

30

积分

新手上路

Rank: 1

113#
发表于 2016-3-28 14:43:35 |只看该作者
# -*- coding: cp936 -*-
import urllib2
import json

from city import city

cityname = raw_input('你想查哪个城市的天气?\n')
citycode = city.get(cityname)
if citycode:
   url = ('http://www.weather.com.cn/data/cityinfo/%s.html' % citycode)
   content = urllib2.urlopen(url).read()
   print content
   
回复

使用道具 举报

0

主题

0

好友

30

积分

新手上路

Rank: 1

114#
发表于 2016-3-28 14:45:22 |只看该作者
搞了一天了,就是不行,丑死了
# -*- coding: cp936 -*-
import urllib2
import json

from city import city

cityname = raw_input('你想查哪个城市的天气?\n')
citycode = city.get(cityname)
if citycode:
   url = ('http://www.weather.com.cn/data/cityinfo/%s.html' % citycode)
   content = urllib2.urlopen(url).read()
   print content





Traceback (most recent call last):
  File "C:/Python27/lesson47", line 5, in <module>
    from city import city
  File "C:/Python27\city.py", line 2
SyntaxError: Non-ASCII character '\xe5' in file C:/Python27\city.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

115#
发表于 2016-3-28 17:31:27 |只看该作者
212121212 发表于 2016-3-28 14:45
搞了一天了,就是不行,丑死了
# -*- coding: cp936 -*-
import urllib2

city.py 文件第一行要加上字符编码设定#coding:utf8。如果是windows,utf-8要改成cp936
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

30

积分

新手上路

Rank: 1

116#
发表于 2016-3-28 20:10:39 |只看该作者
放弃这一课了,各种报错,还有为什么要打那些#coding:utf8,进入下一课吧
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

117#
发表于 2016-3-29 13:12:04 |只看该作者
212121212 发表于 2016-3-28 20:10
放弃这一课了,各种报错,还有为什么要打那些#coding:utf8,进入下一课吧

因为代码里有中文,并且需要用这些中文来进行匹配,需要指定中文的编码格式
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

24

积分

新手上路

Rank: 1

118#
发表于 2016-4-3 04:53:08 |只看该作者
434858383 发表于 2016-3-19 21:25
分享编码解决问题
我的操作系统是win8的,代码如下,凡是输出的先解码成Unicode再编码成gb2312,输入的则是 ...

非常感谢啊,才回来来看到这个,希望crossin先生可以把你的方法在前面提及一下,这地方我真是弄了好久,多谢多谢
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

119#
发表于 2016-4-4 16:29:44 |只看该作者
fengyulaike 发表于 2016-4-3 04:53
非常感谢啊,才回来来看到这个,希望crossin先生可以把你的方法在前面提及一下,这地方我真是弄了好久, ...

恩,win的系统下需要改一下编码,刚改了下帖子,在第1课一开始加上了说明
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

120#
发表于 2016-4-10 00:03:48 |只看该作者
Crossin老师,感谢您的课程
查天气第二节里面,中文字符总是有问题。windows 7环境
1、代码中提示的汉字在cmd中是乱码
2、根据城市查询天气时,汉字城市死活出不来,搞半天别人教我用BJ试了下,居然是可以的。

该如何解决?
站内帖子搜索找不着相关内容。。
回复

使用道具 举报

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

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

GMT+8, 2024-5-21 23:27 , Processed in 0.039850 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部