简明Python教程(A Byte of Python)

如果你使用的是Linux/BSD shell,那么按Ctrl+d退出提示符,如果是在windows操作系统下,那么按Ctrl+z再按Enter。

如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串,自然字符串通过给字符串加上r或者R前缀来指定。例如r’New lines are in dicated by\n’

如果你想要在一个物理行中使用多于一个的逻辑行,那么你需要使用(;)来特别标明这种用法。分号表示一个逻辑行/语句的结束。

python中的urllib2,这是python中一个用来获取网络资源的模块。我们平常上网,在浏览器地址栏中输入一个网址,浏览器根据这个网址拿到一些内容,然后展现在页面上,这大约就是浏览网页的过程。类似的,urllib2会跟据你提供的网址,请求对应的内容。
先看python中的urllib2,这是python中一个用来获取网络资源的模块。我们平常上网,在浏览器中输入一个网址,浏览器根据这个网址拿到一些内容,然后展示在网页上,这大约就是浏览网页的过程。类似地,urllib2会根据你提供的网址,请求对应的内容。
import urllib2
web = urllib2.urlopen(‘http://www.baidu.com‘)
content = web.read()
print content
我们引入urllib2的模块,用其中的urlopen方法打开百度,然后用read方法把其中的内容读取到一个变量中并输出。运行后,你会看到控制台中输出了一堆看不懂的代码文字。这段代码中有html,有css,还有javascript。我们在浏览器中看到的网页大部分就是由这些代码所组成。如果你把content保存到一个以“.html”结尾的文件中(保存文件的方法前面已经说过很多),再打开这个html文件,就会看到“百度的首页”,只是这个首页在你的电脑上,所以你无法进行搜索。

city.py这个文件里有一个叫做city的字典,它里面的key是城市的名称,value是对应的城市代码。不用把它copy到自己的程序中,只要放在和你的代码同一路径下,用
from city import city
就可以引入city这个字典。这里相当于用了一个自定义的模块,前一个“city”是模块名,也就是py文件的名称,后一个“city”是模块中变量的名称。

我们可以使用in操作符来检验一个键/值对是否存在,或者使用dict类的has_key方法。你可以使用help(dict)来查看完整方法列表。

注意os.sep变量的用法——这会根据你的操作系统给出目录分隔符,使我们的程序具有移植性。

init 方法在类的一个对象被建立时,马上运行,这个方法可以用来对你的对象做一些你希望的初始化。

可以使用多种多样的str类。例如,你能够使用rjust方法来得到一个按一定宽度左右对齐的字符串。

Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为持久性储存对象。
还有另外一个模块称为cPickle,它的功能和pickle完全相同,只不过它是用C语言编写的,因此要快很多。(比pickle快1000倍)。

sys.version字符串给你提供安装的Python版本信息;
sys.version_info元组则提供一个更简单对的方法来使你的程序具备Python版本要求的基本功能。

对于有经验的程序员,sys模块最感兴趣的是:
sys.stdin:标准输入
sys.stdout:标准输出
sys.stderr:标准错误流

os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是极为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。一个例子就是使用os.sep可以取代操作系统特定的路径分割符。

当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用和* 前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。
def powersum(power,*args)
由于在args变量前有前缀,所有多余的函数参数都会作为一个元组存储在args中,如果使用的是* 前缀,多余的参数则会被认为是一个字典的键\值对。

lambda语句被用来创建新的函数对象,并且在运行的时返回它们。
def make_repeater(n):
return lambda s:s*n

twice = make_repeater(2)

print twice(‘word’)
print twice(5)

exec语句用来执行存储在字符串或者文件中的Python语句。
exec ‘print “Hello World” ‘

eval语句用来计算存储在字符串中的有效Python语句。
eval(‘2*3’)

assert语句用来声明某个条件是真的。例如如果你非常确信你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。当assert语句失败时,会引发一个AssertionError。

repr函数用来取得对象的规范字符串表示。反引号(也称为转换符)可以完成同样的功能。注意:大多数时候有eval(repr(object))==object
基本上,repr函数和反引号用来获取对象的可打印的表示形式。你可以通过定义类的repr 方法来控制你的对象在被repr函数调用的时候返回的内容。

如果你已经完全读完了这本书并且也实践着编写了很多程序,呢么你一定已经能够非常熟练自如地使用Python了。你可能也已经编写了一些Python程序来尝试练习各种Python技能和特性。如果你还没有那样做的话,那么你一定要快点去实践。现在的问题是“接下来学习什么?”

我会建议你先解决这样一个问题:创建你自己的命令行地址簿程序。你可以添加、修改、删除和搜索你的联系人(朋友、家人和同事等等)以及他们的信息(诸如电子邮件/或电话号码)。这些详细信息应该被保存下来以便以后提取。

1.图形软件
使用Python的GUI库——你需要使用这些库用Python语言创建你自己的图形程序。
有许多可供选择的Python的GUI:
PyQt、PyGTK、wxPython、TkInter

2.Python标准库是一个丰富的库,在大多数时候,你可以在这个库中找到你所需要的东西。这被称为Python的“功能齐全”理念。我强烈建议你在开始开发大型Python程序之前浏览一下Python标准文档。

Jython是用Java语言实现的Python解释器。这意味着你可以用Python语言编写程序而同时使用Java库!Jython是一个稳定成熟的软件。如果你是一个Java程序员,我强烈建议你尝试一下Jython。
IronPython是用C#语言实现的Python解释器,可以运行在.NET、Mono和DotGNU平台上。这意味着你可以用Python语言编写程序而使用.NET库以及其他由这三种平台提供的库!IronPython还只是一个前期alpha测试软件,现在还只适合用来进行测试。JimHugunin、IronPython的开发者,已经加入了微软公司,将在将来全力开发一个完整版本的IronPython。
Lython是Python语言的Lisp前段。它类似于普通的额Lisp云,会被直接编译为Python字节码,这意味着它能与我们普通的Python代码协同工作。
2017.8.27 21:15

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值