Python基础语法学习

函数声明

以def开始,不指名具体的返回类型,但是通常都会有返回值,即使为空。函数声明后即可使用

def approximate_size(size, a_kilobyte_is_1024_bytes=True):

在 Python 里面,变量从来不会显式的指定类型。Python 会在内部算出一个变量的类型并进行跟踪。只要你有一个命名参数,它右边的所有参数也都需要是命名参数。


import

导入(import)一个模块的时候,Python 会寻找几个地方。具体来说,它会搜寻在 sys.path 里面定义的所有目录。这只是一个列表,你可以容易地查看它或者使用标准的列表方法去修改它。( sys 模块是用 c 语言写的。)

通过使用 sys.path.insert(0, new_path),你可以插入一个新的目录到 sys.path 列表的第一项

导入(import)了一个 Python 模块,你就可以通过 module.function 的方式访问它的函数


对象

Python 里面的所有东西都是对象,所有东西都可以有属性和方法。所有函数都有一个内置的属性 __doc__,用来返回这个函数的源代码里面定义的文档字符串(docstring

在 Python 里面,定义更加宽松。有些对象既没有属性也没有方法,然而它可以有。不是所有的对象都是可衍生的。但是,所有的东西都是对象,从这个意义上说,它能够被赋值到一个变量或者作为一个参数传入一个函数。

在 Python 里面所有东西都是对象。字符串是对象,列表是对象,函数是对象,类是对象,类的实例是对象,甚至模块也是对象。


缩进

唯一的定界符就是一个冒号(:)和代码自身的缩进


异常

所有的东西都是区分大小写的


数据类型


列表

定义列表后,可从其中获取任何部分作为新列表。

如果在列表中没有找到该值,index() 方法将会引发一个例外。直接崩掉,不像其他语言返回-1

列表永远不会有缝隙

可以在列表解析中使用任何的Python表达式 [elem * 2 for elem in a_list]


集合


os.chdir('/Users/chain/examples')

os.path.join(os.path.expanduser('~'), 'examples', 'humansize.py')

sys.path.insert(0, '/Users/chain/examples')


字符串

在Python 3,所有的字符串都是使用Unicode编码的字符序列。

定义一个字符串以后,我们可以截取其中的任意部分形成新串。这种操作被称作字符串的分片(slice)


正则表达式

^ 匹配字符串开始. $ 匹配字符串结尾

(A|B) 匹配A模式或者B模式中的一个

注意,如果要使用松散正则表达式,需要传递一个叫re.VERBOSE的参数。

re.search(pattern, 'M', re.VERBOSE)


\d 匹配所有0-9的数字. \D 匹配除了数字外的所有字符.


^ 匹配字符串开始位置。

^ 有特别的含义:非。[^abc] 的意思是:“ 除了 a、 b 或 c 之外的任何字符”

$ 匹配字符串结束位置。

\b 匹配一个单词边界。

\d 匹配一个数字。

\D 匹配一个任意的非数字字符。

x? 匹配可选的x字符。换句话说,就是0个或者1个x字符。

x* 匹配0个或更多的x。

x+ 匹配1个或者更多x。

x{n,m} 匹配n到m个x,至少n个,不能超过m个。

(a|b|c) 匹配单独的任意一个a或者b或者c。

(x) 这是一个组,它会记忆它匹配到的字符串。你可以用re.search返回的匹配对象的groups()函数来获取到匹配的值。


 \1,它表示“嘿,记住的第一个分组呢?把它放到这里。>>> re.sub('([^aeiou])y$', r'\1ies', 'vacancy') 


生成器

“yield” 暂停一个函数。“next()” 从其暂停处恢复其运行。

yield 是一种产生一个迭代器却不需要构建迭代器的精密小巧的方法。


因为__init__() 方法调用时,对象已经创建了,你已经有了一个合法类对象的引用。

迭代器就是一个定义了 __iter__() 方法的类。


文件


a_file = open('examples/chinese.txt', encoding='utf-8')



http

缓存:应该使用 httplib2

最后修改的时间

ETag:ETag头里返回一个哈希码(如何生成哈希码完全取决于服务器,唯一的要求是数据改变时哈希码也要改变)

压缩

重定向

Cache-Control: max-age 的意思是“一个星期以内都不要来烦我。

304: Not Modified的意思是 “不同的日子,同样的数据(same shit, different day)。



第2遍:http://www.cnitblog.com/yunshichen/archive/2009/04/01/55924.html

http://woodpecker.org.cn/abyteofpython_cn/chinese/index.html


学习了如何使用运算符、操作数和表达式——这些使任何程序的基本组成部分。

学习了如何使用三种控制流语句——if、while和for以及与它们相关的break和continue语句。

学习了函数的很多方面的知识,不过注意还有一些方面我们没有涉及。

学习了如何使用这些模块以及如何创造我们自己的模块。

详细探讨了多种Python内建的数据结构。这些数据结构将是编写程序时至关重要的部分。

学习如何创建我们自己的Python程序/脚本,以及在编写这个程序中所设计到的不同的状态。

研究了类和对象的多个内容以及与它们相关的多个术语。了解了面向对象的编程的优点和缺陷。Python是一个高度面向对象的语言

讨论了多种类型的输入/输出,及文件处理和使用储存器模块。

讨论了try..except和try..finally语句的用法。我们还学习了如何创建我们自己的异常类型和如何引发异常。

学习了Python标准库中的sys模块和os模块的一部分功能。

使用列表综合可以用一种更加精确、简洁、清楚的方法完成相同的工作。

lambda语句用来创建函数对象。本质上,lambda需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。

repr函数用来取得对象的规范字符串表示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值