python笔记——诡异BUG?
最近又重新装上了windows 7感觉还是那样,主要是想用M8SDK写些程序。也想在windows上玩玩,一直都觉得用C写一些常用的东东很复杂,只有借助于解释性语言了,在python, ruby间选择,最终用Python。
python的语法非常简单,对于一个学过编程的人可能一上午就差不多了,不过python的强大之处在于它有N多的库可以方便我们处理问题,熟悉这些库则要花一些时间。
实际上装上python3后使用一真不怎么顺,因为经常找不到库文件,而库文件实际上是在那里的,在google上搜索也没有答案,很是郁闷。
今天又重新把python3.1卸载重装了下,发现一个奇怪的现象。
我写了一个文件html.py#!cmd
import urllib
import urllib.request
html = urllib.request.urlopen('http://shenzhen.8684.cn/x_7ba0b811')
content = html.read()
print( content )
print( content.decode( 'gbk' ) )
放在D:\Python目录下(我的安装目录是C:\Python31),cmd下进入D:\Python目录,运行python.exe html.py,提示错误:
Traceback (most recent call last):
File "D:\Program\html.py", line 2, in <module>
import urllib
File "D:\Program\urllib.py", line 1, in <module>
import urllib.request
ImportError: No module named request
再把 目录名由Python改为Program,仍然不行,出现相同错误。
将html.py拷贝到D:\根目录下,运行python.exe html.py,运行正常,输出相应内容。
然后将html.py拷贝到E:\下,运行正常,输出相应内容。
再将html.py拷贝到E:\Movie下,运行正常。
让我很迷惑,为什么在D盘的子目录下运行就找不到相应的库文件,而在D的根目录下又可以找到;而在其它盘的子目录,根目录下均可找到相关库文件。难道是传说中的BUG?
另外,我在Fedora13 RC3下运行python3也会出现一样问题,也没找到原因,极度郁闷。
PS:曾将python3.1安装于D:\program file\Python31, D:\Python31两个目录,均是由于此问题而卸载重新安装的。
相关文档:
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。Python 1.5之前版本则是通过 regex 模块提供 Emecs 风格的模式。Emacs 风格模式可读性稍差些,而且功能也不强,因此编写新代码时尽量不要再使用 regex 模块,当然偶尔你还是可能在老代码里发现其踪影。
& ......
Python与Mysql
一、安装MySQLdb模块
使用python连接Mysql的前提,就是需要一个让python连接到Mysql的接口,这就是MySQLdb模块。
验证是否已经安装了MySQLdb:
==========================================================
d:\usr\local\Python25>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v ......
>>> a="abcd"
>>> ",".join(a)
'a,b,c,d'
>>> "|".join(['a','b','c'])
'a|b|c'
>>> ",".join(('a','b','c'))
'a,b,c'
>>> ",".join({'a':1,'b':2,'c':3})
'a,c,b' ......
eval(str [,globals [,locals ]])函数将字符串str当成有效Python表达式来求值,并返回计算结果。
同样地, exec语句将字符串str当成有效Python代码来执行.提供给exec的代码的名称空间和exec语句的名称空间相同.
最后,execfile(filename [,globals [,locals ]])函数可以用来执行一个文件,看下面的例子:
>>> ev ......
今天一上课,大牛老师就给大家出了一道题:
编程:请从字符串“goOoOogle”中找出以“O”开头,并以“O”结束的部分。
“这还不简单,看我的”小菜不一会儿就给出了答案:
>>> s="goOoOogle"
>>> s.find("O")
2
>>> s.find("O",3)
4
>>& ......