设为首页 收藏本站
查看: 668|回复: 0

[经验分享] PYTHON学习总结

[复制链接]

尚未签到

发表于 2015-4-27 05:24:00 | 显示全部楼层 |阅读模式
  升级 python 版本的问题

  升级 python 一般会建立软连接,使系统默认的python指向高版本的 python,如:
  mv /usr/bin/python /usr/bin/python2.6.6      

  ln -s /usr/local/bin/python2.7 /usr/bin/python  

  但由于 yum 命令是基于原版本的 python 来执行的,为解决修改软链接后,yum 不能正常工作的问题(可能版本不兼容,尤其是3.X):
  编辑 /usr/bin/yum:
  #!/usr/bin/python     =>    #!/usr/bin/python2.6.6    即可

  
  
  IDE:
  不建议直接使用 IDLE 写代码,如果出现 TAB 和 SPACE 混用很难排查,可以使用 sublime_text 编写代码,ctrl + a 全选后,TAB 键为实线,空格为虚线标识。
  建议直接使用 PyCharm ,windows、linux、mac 版本都有。还有 ulipad 也不错。另外推荐 Eclipse + PyDev 的组合,也很不错。
  这三款IDE都可跨平台。
  
  
  编码问题:
  在使用 python2.x 时,将字符串写入文件时报错:UnicodeEncodeError: 'ascii' codec can't encode character u'\uff1a',即ascii码无法被转换成unicode码(在读取MYSQL数据库中的中文数据时,也可能出现此问题)。如果使用 python3.x ,则无此编码问题。
  默认 python2.x 的编码是 ascii ,可以使用 print sys.getdefaultencoding() 查看,修改方法有两种:
  1、在代码中加入:



import sys
reload(sys)
sys.setdefaultencoding('utf-8')
  2、在安装目录的 Lib\site-packages\ 目录下新建 sitecustomize.py



import sys
sys.setdefaultencoding('utf-8')
  在 python 文件中有中文的话(即使是注释),则需要在文件头加上如下代码,否则会运行出错:



#coding:utf-8
  3、有时候会遇到中文输出时变成类似于 “\u5929\u6d25\u5546\u573a” 情况,此时只要把它转换成 unicode 对应的字符就可以了。
  如: mystr = "\u5929\u6d25\u5546\u573a"
  newstr = mystr.decode("unicode-escape")

  
  
  模块安装工具:
  1、easy_install
  一般随 python 自带。
  2、pip
  easy_install 的增强版,需要自行下载安装:
  https://pypi.python.org/pypi/pip#downloads
  使用方法如:



pip install MySQL-python
pip install xlrd
pip install xlwt
  
  如果有错误,可能是缺少python头文件,yum install python-devel 即可。
  
  基本语法:
  零散:
  a**b    ==  pow(a,b)
  raw_input   &&  input
  str && repr && ``
  obj == eval(repr(obj))
  eval(repr(type(type)))     #error
  # 尽管str()和repr()运算在特性和功能方面都非常相似,事实上repr返回的是一个对象的“官方”字符串表示,也就是说绝大多数情况下可以通过求 值运算(使用内建函数eval())重新得到该对象,但str()则有所不同。str()致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无 法用于eval()求值,但很适合用于print语句输出。需要再次提醒的是,并不是所有repr()返回的字符串都能够用 eval()内建函数得到原来的对象。也就是说 repr() 输出对 Python比较友好,而str()的输出对用户比较友好。虽然如此,很多情况下这三者的输出仍然都是完全一样的。
  r"C:\Program Files\fnord""\\"  == "C:\\Program Files\\fnord\\"
  u"Hello,World!"    #python3.0中,所有字符串都是 Unicode 字符串。
  python内建有6种序列:列表,元组,字符串,Unicode字符串,buffer对象和xrange对象。
  元组不可修改,在几乎所有情况下列表都可以替换元组。(例外如,使用元组作为字典的键,因为键不可修改)
  os.system("ls")    linux下可用来调用 shell 命令
  
  通用序列操作:
  1、索引访问:从0开始,并支持负数索引,表示从右边开始,最后1个元素的位置编号是 -1,这个要注意,因为无法为 -0
  2、分片:[i:j],包括 i 索引,不包括 j 索引。  [-3:] 最后三个元素。  [:3] 前三个元素。  [:] 所有元素。 通用版本: [i : j: step] 之前的版本 step==1,若 step>0 表示从左到右提取元素(即 j >= i),反之则从右到左提取(即 j user2:
print user.name + ">" + user2.name
else:
print user.name + "

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-60881-1-1.html 上篇帖子: python multiprocessing.Pool 下篇帖子: selenium+python find_element_by_css_selector方法使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表