python书学习

1. in运算符

    查看字符串A是否在字符串B中
    ‘A’ in B
查看用户名和pin码是否存在于数据库中
3. 比较运算符
    内建函数
        len函数返回序列中包含的元素的数量
        min函数返回序列中最小的元素
        max函数返回序列中最大的元素
3. list函数
    根据字符串创建列表
        >>> list('hello')
        ['h','e','l','l','o']
        join函数 将字符组成的列表转化成字符串
4. 分片赋值 =和list函数
    可用于为多个元素赋值(可用与原序列不等长的序列来分片替换);
    插入:number[1:1] = [2,3,4]
    删除:number[1:] = []
5. 列表方法 对象.方法(参数)
    append方法用于在列表末尾追加新的对象 lit.append(1)
    extend方法用于列表末尾追加另一个序列的值,即扩展原有的列表
    index方法用于从列表中找出某个值第一个匹配项的索引位置


 元组:不可变序列
    用圆括号括起来,用逗号分隔值
    (1,2,3)
    (42,)


 字符串 字符串都是不可变的
    >>> ‘%010.2f’ %pi
    ‘00000003.14’
    当使用010作为字段宽度说明符的时候,表示字段宽度为10,并且用0进行填充空位


 字典中的键时唯一的(其他类型映射也是如此),而值不唯一


在字典中检查键的成员资格比在列表中检查值的成员资格更高效


```
>>>x = []
>>>x[42] = 'f'
IndexError: List assignment index out of range
程序试图将字符串关联到一个空列表的42号位置,这是不可能的,因为这个位置根本不存在
>>>x = {}
>>>x[42] = 'f'
>>>x
{42: 'f'}
将字符串关联到空字典的键42上


*创建字典*

phonebook = {'Kali':'123', 'date':'1203'}
字典由多个键及与其对应的值构成的 键-值对 组成(也称为项)
    每个键和它的值之间用冒号(:)隔开
    项之间用逗号(,)隔开
    **整个字典由一对大括号括起来**
```


### 模块
    导入到python以增强其功能的拓展。需要使用特殊命令import来导入模块。可以按照“模块.函数”
的格式使用这个模块的函数
>>>import math
>>>math.floor(32.8)
32.0
......from math import sqrt
......sqrt(9)
3.0


 nan 特殊的简写,意思是“not a number”(非数值) 


x<>y 即 x!=y
连接比较符号 and  if number <=0 and number >=1


 断言  (测试:发生错误时直接崩溃)
将 assert 放在语句前


 *迭代* 循环的另外一种说法


 什么都没发生
有些函数缺少语句代码块时不能执行,可以使用语句
>>>pass
在代码中做占位符使用


 对象删除 用 None赋值 或者使用del语句 


*命名空间*(或称为作用域)


 使用 exec 和 eval 执行和求值字符串
    动态创造python代码,然后将其作为语句执行或者作为表达式计算
*漏洞* 如果程序将用户提供的一段内容中的一部分字符串作为代码执行,程序可能会失去对代码执行的控制。
    为输入提供命名空间???


 *sys*
在sys模块中的stdin、stdout、stderr。三个标准文件对象


## 打开文件
    使用open函数打开文件进行读取,'r'读模式'w'写模式'a'追加模式'b'二进制模式'+'读/写模式
    文本模式打开文件会对换行符进行处理,二进制模式用于处理二进制文件。关键是用二进制模式时,python会原样给出文件中的内容。


 buffer 缓冲 硬盘和内存


 基本的文件方法
1.首先用open打开文件,然后才能对文件进行操作。
    f.read()    f.write()
用file.close()关闭文件


2.管式输出
*管道符号:竖杠* |
$ cat somefile.txt | python somescript.py | sort
在UNIX的shell中,使用‘管道’可以在一个命令后面续写其他的多个命令。
管道符号将一个命令的标准输出和下一个命令的标准输入连接在一起。这样,就知道somescript.py会从它的sys.stdin中读取数据(cat somefile.txt写入的),并把结果写入它的sys.stdout(sort在此得到数据)中。
    统计sys.stdin中单词数的简单脚本:
```
#somescript.py
import sys
text = sys.stdin.read()
words = text.split()
wordcount = len(words)
print 'Wordcount:',wordcount
```
3.逐行读取 file.readline 从当前位置开始直到一个换行符出现,也读区这个换行符。
4.以字符串形式写入和读取数据:file.write方法和file.read方法


 对文件内容进行迭代
read、readline、readlines
xreadlines和文件迭代器    (process函数的使用)
    按字节处理: char = f.read(1)
读取所有内容:
1.使用不带参数的read方法一次读取整个文件(把整个文件当作一个字符串来读取),或者使用readline方法(把文件读入一个字符串列表,在列表中每个字符串就是一行)
    用read迭代每个字符:
    ```
    f = open(filename)
    for char in f.read():
        process(char)
    f.close()
    ```
    用readlines迭代行
    ```
    f = open(filename)
    for line in f.readlines():
        process(line)
    f.close()
    ```
使用fileinput实现懒惰行迭代
文件迭代器,文件对象是可迭代的


## 数据库
1.在提供相同功能(基本相同)的不同模块之间进行切换时的问题通常是它们的接口(API)不同。
2.数据库编程指南:http://wiki.python.org/moin/databaseprogramming


## 网络编程
    python十分擅长于处理字节流的各种模式(在学习处理文本文件的各种方式时应有所体会了),使              用python可以很容易地写出各种协议格式的代码。
1.socket模块
    网络编程中的一个基本组件就是套接字(socket)。套接字基本上是用于两个端点的程序之间“信息通道”。程序可能分布在不同的计算机上(通过网络连接),通过套接字互相发送消息。
服务套接字   客户机套接字
套接字方法:bind;listen;accept;send;recv;


```
一个小型的服务器:
    import socket
    
    s = socket.socket()
    
    host = socket.gethostname()
    port = 1234
    s.bind((host,port))
    
    s.listen(5)
    while True:
        c, addr = s.accept()
        print 'Got connection from',addr
        c.send('Thank you for connection')
        c.close


一个小型的客户机:
    import socket
    
    s = socket.socket()
    
    host = socket.gethostname()
    port = 1234
    
    s.connect((host.port))
    print s.secv(1024)    
```


2.urllib和urllib2模块
    通过它们在网络上访问文件,就像访问本地电脑上的文件一样。通过一个简单的函数调用,几乎可以把任何URL所指向的东西做程序的输入。
    如果将这两个模块于re模块结合使用的效果:可以下载web页面,提取信息,以及自动生成报告等。
    打开远程文件;获取远程文件


## 异常(处理)
遇到错误后,会引发异常。如果异常对象未被处理或者捕捉,程序就会用所谓的回溯(traceback,一种错误信息)终止执行。
事实上,每个异常都是一些类的实例,这些实例可以被引发,并且可以用很多种方法进行捕捉,使得程序可以捉住错误并且对其进行处理,*而不是让整个程序失效*。


## 第十五章 python和web


杂记:

# 杂1quiy

1.缩进
1个缩进 = 4个空格。
标明代码之间的层次关系。
python语言中表明程序框架的唯一手段。


2.注释
不被执行,不被约束
帮助程序员记录程序设计方法
单行注释以  #  开头
多行注释以  ‘’‘  开头和结尾


3.表达式
指程序中产生或计算新数据值的一行代码
python语言中33个保留字或者操作符可以产生符合语法的表达式
val = “28C”
val[0] = “C”
前两个字符组成的子串可以用  val[0:2]  表示,它表示一个从 [0,2)的区间。
通过 val[0:-1] 获取除最后一个字符外的字符串


4.input()函数
<变量>=input(<提示性文字>)
以字符串形式保存在<变量>中


5.分支语句
if  <条件1成立>:
    <表达式组1>
elif <条件2成立>:
    <表达式组2>
else:
    <表达式组N>


6.保留字 in 是一个二元关系操作
用来判断左侧内容是否在右侧集合中


7.同步赋值语句
x,y交换     x,y = y,x
先运算右侧N个表达式,同时将表达式结果赋值给左侧
<变量1>,<变量2>,<变量3> = <表达式1>,<表达式2>,<表达式3>


8.输出函数print()
通过%来选择要输出的变量
%.2f   包含一个两位小数的浮点数


9.循环语句
根据判断条件或者计数条件
计数循环基本过程
for i in range(<计数值>):
<表达式组
其中变量 i 用于计数

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页