zoukankan      html  css  js  c++  java
  • 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表达式
  • 相关阅读:
    math相关实现
    集合——PHP实现
    PHP Fatal error——内存用尽
    偶串——状态记忆
    享元模式
    php对象的传递——“通过引用传递”or“传递的是object identifier”?
    JSONObject的parseArray方法作用。
    java android 中的Toast
    delphi android 中 Toast 的实现(老外写的UNIT)
    Delphi XE5 for android 调用Java类库必看的文件
  • 原文地址:https://www.cnblogs.com/guoqp/p/5378478.html
Copyright © 2011-2022 走看看