标签归档:python

PYTHON学习:利用PYTHON查询星球大战的信息

最近《星球大战:绝地武士》上映了,作为一名伪星战迷,还是多多少少看了看豆瓣上的评论和评分。以前只觉得星战是一群人拿着手电筒打架的故事,还听过赵本山小品里面说出的“May the force be with you”,没想到星战都已经第八部了,真得花时间补习补习,想说的是在查询星战历史的时候,无意中发现了官网提供的星战数据库,可以查询星球大战中电影、星球、人物、车辆、种族等信息。

menu

继续阅读PYTHON学习:利用PYTHON查询星球大战的信息

PYTHON学习:行的划分和注释

PYTHON程序由一系列逻辑行组成,每一逻辑行由NEWLINE结尾,同时,逻辑行又由物理行通过显示或者隐式连接组成。物理行由一系列字符组成,以换行符结尾,换行符在UNIX系统中是LF,在WINDOWS系统中是CR LF,在Machintosh系统中用CR来表示,无论什么平台,这些行结尾符号都可以使用,没有区别。

先看看显式得连接不同的行,也就是一行写不完如何换行写程序,在写程序时,有可能一行写不完,如果直接回车换行再写,会出错,正确的做法是在要换和f的地方输入\,然后在下一行接着写,否则就会出错:

if 1900 < year < 2100 and 1 <= month <= 12 \
and 1 <= day <=31
return 1

隐式地连接不同的行,是指系统自动地认为不同行的内容为同一个逻辑行的情况,这些情况是指在一对括号、花括号、中括号中的内容,不用\换行:

month_names = [‘Januari’, ‘Februari’, ‘Maart’,
‘April’,   ‘Mei’, ‘Juni’  ] 继续阅读PYTHON学习:行的划分和注释

PYTHON学习:不同的PYTHON实现

PYTHON有很多不同的实现,每种实现都有一系列的内置和标准的模块,最常见的是CPython,也就是大家常常说的Python,但同时PYTHON还有很多种实现,这些不同的实现满足了不同的使用者的需求,面就是PYTHON的几种常见的实现:

CPython 是最原始、维护得最多的一种PYTHON实现,使用C语言编写,每当有新的特点、特性出现时,CPython最先更新。

Jython 是在JAVA中实现的PYTHON,这种实现可以当作JAVA应用的一个脚本语言,或者可以用来创建调用JAVA类库的应用,它常常用来创建JAVA类库的测试程序。

Python for .NET 使用了CPython的实现方式,与CPython不同的是它是一个可管理的.NET应用,可以使用.NET类库。

IronPython 也是一种.NET实现的PYTHON,与Python for .NET不同,它能够将Python代码编译成.NET汇编。

PyPy 完全使用Python实现的Python,它支持其它几种实现都没有的特性,比如StacklessJust in Time compiler,这使得它的运行速度比CPython快,也可以安全得运行一些不被信任的代码。

PYTHON中UTF-8向GB2312编码转换的问题一解

最近用PYTHON写程序时,遇到了编码的问题,经过一段时间的困扰,终于弄明白并且顺利解决了,要不说实践出真知。首先说说编码的事,在计算机中存在着多种编码类型,比如utf-8、unicode、ascii、gb2312等等,这几种比较常见,所以说拿这几种类型说事。

博主遇到的问题是:在EXCEL中读取数据,然后将数据用POST方法提交到某网站,相当于自动填写表格。从EXCEL读取的数字型数据都能正常提交到目标网站,但是汉字就出现了乱码,经过仔细研究终于发现了问题所在。

首先,我的脚本开头写了# -*- coding: utf-8 -*-,也就是指定了PYTHON脚本的编码是utf-8格式的,从EXCEL中读取的数据应该也是utf-8格式的,目标网站的网页是gb2312编码的,估计问题就出在这编码上了,数字之所以没出问题,是因为数字用utf-8和gb2312编码是一样的,汉字就不一样了,以utf-8格式的汉字向gb2312编码的网页上提交数据,汉字就成乱码了。

于是就将这些utf-8的数据转换成gb2312格式的:str=str. encode(“gb2312”),然后再提交,汉字果然都正常提交到目标网站了。PYTHON的编码问题比较头疼,在PYTHON IDE编辑器(windows版)里面默认是ascii编码,可以使用sys.getdefaultencoding()来获取当前的编码类型,也可以通过sys.setdefaultencoding(‘utf-8’)来改变默认的编码类型。把这些编码的问题搞明白了,PYTHON里面就没有乱码的问题了。

python lambda 表达式

lambda表达式是python中一类比较特殊的声明函数的方式,lambda来源于LISP语言。

使用它可以声明一个匿名函数,所谓匿名函数是指声明的函数没有函数名,lambda就是一个简单的函数。

使用lambda声明的函数返回一个值,调用函数直接使用匿名函数(lambda声明的函数)的返回值。