python
Search :

热门知识点: python 字符串
当前位置:python>>python问答

python问答

BeautifulSoup已经安装,但仍提示No module named

BeautifulSoup已经安装,但是在运行脚本的时候仍然提示No module named BeautifulSoup,请教下是什么原因?另外在先运行下python,然后单独运行from BeautifulSoup import BeautifulSoup,缺不会提示任何错误。这里是没有没有进入python的命令行而直接导入BeautifulSoup.所以会提示这个错误。

解决方法有2个:
1 进入python命令行,然后导入BeautifulSoup模块。
2 把.py文件的第一行的:

...

Python做下载器需要掌握哪些

如果你想用python做下载器的话,需要掌握一些网络以及数据处理的相关模块。

1 网络这块的话:urllib,urllib2,httplib.
2 如果需要长时间停留抓取的话,还需要掌握格式化、多线程、多进程、数据库相关处理等。
3 内容过滤这块主要有:正则表达式,beautifulsoup,sgml等。
...

python 文件的中文在 windows 下运行乱码

有朋友用python在windows下运行乱码。我上面测试了下:

我新建了一个py文件,并且文件编码设置为utf-8,而且文件编码声明为:#encoding=utf-8

info = '中国'
print info
输出结果:\xe4\xb8\xad\xe5\x9b\xbd

如果需要输出中文的话,那我们需要安装gbk的编码进行输出。

info = u'中国' ##先转换为unicode编码
print info.encode('gbk')##转换为gbk编码

python 将字符串转换成字典dict类型


info = "{'name' : 'jay', 'sex' : 'male', 'age': 22}" 如何将字符串转化成字典dict类型?这个可以用python的标准库simplejson 转换为JSON格式。

JSON到字典转化:
dictinfo = simplejson.loads(json_str) 输出dict类型

字典到JSON转化:
jsoninfo = simplejson.dumps(dict)输出str类型

比如:
info = {'name' : 'jay', 'sex' : 'male', 'age': 22}
...

python list 中文问题

最近有个朋友定义一个列表,里面有3个元素,都是中文,比如:

a = ['你好','哈哈','呵呵']

print a

输出结果:['\xe4\xbd\xa0\xe5\xa5\xbd', '\xe5\x93\x88\xe5\x93\x88', '\xe5\x91\xb5\xe5\x91\xb5'] 输出的编码是utf-8


如果你需要输出中文在gbk环境下,可以用迭代来输出:
...

关于python的[:]的疑问

有新手朋友刚接触python列表的话,会发现有[:]这种现象,可能有疑问,下面和大家解释下:

这个[start:end]类似 start=<范围
比如我们定义一个列表:

a = [1,2,3,4,5]

print a[1:4] 假设x是索引下标 x>=1 and x<4 也就是[a1-a3]
输出结果:[2, 3, 4]

print a[::-1] 这里类似列表翻转的概念,python列表对象自身也有reverse()内置方法。
...

python3 和 python2有哪些不同?

由于现在大部分教材还有很多第3方模块包基于2.X的,所以还是建议新手朋友先从2.X学起吧。

Python从3.0版本开始有了质的变化,好多函数接口都改变了。
个人感觉3.X和2.X区别还是不小的。

在实际使用中更常用的是Python2,因为很多相关的库仍然未支持Python3。但是建议打开python的-3选项,这样对你自己代码中不兼容部分可以提前知晓然后提前做兼容性修改。

mechanize自动登录程序

放假回来了,很久没更新博客了,以后得常更新,今天给大家分享下python第3方的模块包:mechanize。
mechanize是非常合适的模拟浏览器的模块,它的特点主要有:

1 http,https协议等。
2 简单的HTML表单填写。
3 浏览器历史记录和重载。
4 Referer的HTTP头的正确添加(可选)。
5 自动遵守robots.txt的。

列表浅拷贝和深拷贝的问题

今天在我的邮件里看到一个访问老王python博客的朋友给我发的一个问题,我把下面的代码运行了下,果然不一样。大家有兴趣的话,可以运行下下面的2个例子,然后想下是为什么,最好在下面的留言里面给出自己的看法,多多交流总是好的。

>>> a=[1,2,3]
>>> for x in a:
>>> if x < 2:a.insert(0,5) //这样程序会一直跑,不会中断了


>>> a=[1,2,3]
>>> for x in a[:]: //如果换成这种写法,程序就会判断一次。
>>> if x < 2:a.insert(0,5)
...

代码格式问题

 

上次推出了解答问题的活动,得到了很多朋友的支持,大家把自己在python中遇到的问题发给我,希望我能够很好的解决,谢谢你们对我的信任,我也希望能够尽全力的帮助你们。今天开始陆续的发出一些问题和解决方案,希望对你学习python有帮助。

1 先看看问题:

while True:
      reply=raw_input('enter text:')
      if reply=='stop':
         break
      print int(reply)**3
print 'bye'

 在shell里输入上面代码(貌似已经注意缩进),但是还是提示:IndentationError: unindent does not match any outer indentation level
 
但是相同的代码 保存为py模块 运行的时候,在shell里显示是正确的。

 

2 分析原因:


根据IndentationError: unindent does not match any outer indentation level 提示可以看的出来,是因为缩进问题导致的,因为在shell里直接输入代码的话,很容易

出现缩进的问题。

 

3 解决办法:

建议就是用python的编辑器来进行python代码的编写,这样可以避免由于代码缩进问题给你带来的困扰,一般编辑器都会在保存代码的时候自动的检查出代码的缩进问题,很多

编辑器都会有自动的代码缩进功能,如果想了解更多编辑器的功能可以看看

应用于Web 2.0网站

这个ppt主要是介绍python的快速开发能力,python的django框架开发web2.0网站非常的爽,有兴趣的话,可以看看这个幻灯片:http://www.slideshare.net/hongqn/qcon2010-3881323 ...

分页:[«]1[»]
老王python ® 版权所有 备案号:湘ICP备10012179号