python学习笔记

变量:可变化数据对象的程序标识符;可以包括字母,数字和下划线(_)。不能以数字开头
 
str 、repr和反引号是将Python值转换为字符串的3中方法:函数str让字符串更易于阅读,而repr(和反引号)则把结果字符串转为合法的Python表达式
 
一、数据类型:
字符串
序列有两种:(tuple和list区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更)
          列表: [ ]   例:arg[1][2:] 表示取第一个命令行,但去掉前两个字节
          元组:() 元组中只包含一个元素时,需要在元素后面添加逗号
集合:一组无序对象,set()函数,集合内元素不能重复
字典:一个关联数组或散列表,其中包含通过关键字索引的对象。{}
          例:stock = {
                                "name"  :  "goog",
                                "shares" :  100,
                                "price"  :  490.10
                               }
             访问:name = stock["name"]
                        value = stock["shares"] * shares["price"]
 
             插入或修改:stock["shares"] = 75
                                  stock["date"] = "June 7,2007"
 
二、函数
1、系统库提供内部函数
  --系统库函数
     字符函数库(默认库):help(str)
     数学函数库(非默认库):需import math
                           >>> import math
                           >>> val = math.sin(math.pi / 6)
                           >>> print val
     网络编程库:import socket
     操作系统库函数:import  os
                 >>> import os
                 >>> os.getcwd()          返回当前工作路径
                       'C:\Python27'
                 >>> a = os.popen("grep alex lock.txt")
                          a.read()          #读取a的值
     ...
2、第三方提供函数
     例如:httplib2
         linux系统:easy_install httplib
         win系统:python setup.py install
          import urllib  
          import  webbrowser
          url = 'http://www.163.com'
          content = urllib.urlopen(url).read()
          open('163.com.html','w').write(content)
          webbrowser.open_new_tab('163.com.html')       
               
3、自定义函数
      预设值问题
      函数调用赋值顺序问题
         -一般情况下是一 一对应关系
         -可以指定形参--赋值
         -有预定义值的参数不能先于无预定义值参数被赋值
 
help(str)  查看所有字符串函数
strip() 去除空格
split()
len()
help()
id()
xrange()函数: python2
 
raw_input()      #会把所有的输入当作原始数据(raw data),然后将其放入字符串中
input()             #input会假设用户输入的是合法的Python表达式
 
type()
len()
dir() :列出对象上的可用方法
range()函数: python3
           d = range(8,1,-1)      #d = 8,7,6,5,4,3,2
print(format(val,format_modifier)):格式化输出
          val:值
          format_modifier:格式字 
           print(format(12.234,'6.3f'))          6输出占位      3精度 
           print(format(0.12345,'4.2%'))   
        
三、生成器:使用yield的函数
调用生成器函数将创建一个对象,该对象通过连续调用next()方法(在python3中是__next__()),生成结果序列 
 例1:
    def countdown(n):
            print "Counting down!"
            while n >0 :
                    yield n
                     n -= 1
 
例2:模拟tail命令
    #!/usr/bin/env python2.6
import time
import sys
def tail(f):
        f.seek(0,2)
        while True:
                line = f.readline()
                if not line:
                        time.sleep(1)
                        continue
                yield line
 
def grep(lines,searchtext):
        for line in lines:
                if searchtext in line:
                        yield line
 
wwwlog = tail(open(sys.argv[1]))
pylines = grep (wwwlog,"sda2")
for line in pylines:
        print line,
 
四、协程
通常,函数运行时要是用一组输入参数。但是,也可以把函数编写为一个任务,从而能处理送给它的一系列输入。这类函数称为协程
 
五、对象与类
 
六、异常
(1)try...except...
 try:
        f = open("file.txt","r")
 except  IOError  as  e:
        print e
 
(2)raise
raise语句用于手工引发异常。引发异常时,可以使用任意一个内置异常,如下所示:
    raise RuntimeError("Computer says no")
 
(3)with
 with语句通常用于与系统资源或执行环境相关的对象,如文件、连接和锁定。但,用户定义的对象也可以定义它们自己的自定义处理
import threading
message_lock = threading.Lock()
...
with message_lock:
        messages.add(newmessage)
 
七、模块
导入模块:
      import moduleName
      from module import sysHi                      #确定自己不会导入多个同名函数(从不同模块导入)的情况下,不希望在每次调用函数的时候,都要写上模块的名字
            例如:from math import sqrt
                       sqrt(9)
      import moduleName as newName
>>> import sys
>>> dir(sys)
 
文件模块:
    file('user.txt','w')
 
    >>> a = file('user.txt')
    >>> for line in a.readlines(): print line.split()[0],
 
八、获得帮助
help('模块名')
print 模块名.方法
 
 
九、控制语句
    continue  结束本次循环,进入下次循环;continue后的代码不会执行
    break 跳出循环
1)if ()
    布尔表达式:Ture(1)、  False(0)
    关系表达式:>=      <=     ==    !=   .................................
    逻辑表达式: and   or   not
2)while循环语句
    例:网络刷博器爬虫
     1、如何刷‘阅读次数’
     2、如何关闭浏览器
     import  webbrowser as web
     import time
     import os
     import random
     count = random.ranint(20,40)
     i = 0
    while i <= 5:
        web.open_new_tab('http://www.baidu.com')
        i = i + 1
        time.sleep(0.8)
     else:
        os.system('taskkill /F /IM chrome.exe')
 3)for  i in range(3):
            .....................
    else:            #for正常循环结束后,执行该else语句
            .....................
 
4)exec语句和eval语句
  exec   执行字符串的语句
  eval   计算python表达式
原文地址:https://www.cnblogs.com/guoqp/p/5378478.html