zoukankan      html  css  js  c++  java
  • python入门到精通[三]:基础学习(2)

    摘要:Python基础学习:列表、元组、字典、函数、序列化、正则、模块。

    上一节学习了字符串、流程控制、文件及目录操作,这节介绍下列表、元组、字典、函数、序列化、正则、模块。

    1.列表

    python中的列表list,其实就是shell中的数组:

      name_list=[] #定义一个空列表
      name_list.append('John') #添加数据
      name_list.insert(2,'Jac') #向位置2插入jac
      name_list[1:] #读取从索引1到结束的所有索引值
      name_list[1]='Rain' #修改位置1的值
      name_list.pop(0) #删除列表中第一项,如果为-1则删除最后一项,参数为列表的索引位置
      name_list.remove('Jac'); 删除Jac
      name_list.count('John') 计算John的个数
      'str' in name_list #判断字符串是否在列表中
      name_list.index('Tom') #判断Tom所在位置
      name_list.sort() #列表内容排序
      len(name_list) #获取列表的长度
      type(name_list) #查看类型

    字符串转列表:
      a='a b c'
      a.split() #以空格分隔,也可以以其他字符分隔,结果['a','b','c']

    2.元组

      name_list=('a','b','c'); #定义元组
      name_list.count('a') #计算个数
      name_list.index('b') #计算位置

    元组使用不是很多,如果某些配置文件不可以修改,可以用元组。

    3.字典

    python中的字典有点像json
    定义字典:
      contact_dict={
      "key1";"value1",
      "key2":"value2"
      }

      contact_dict["key1"] #根据key查value
      contact_dict.keys() #查字典所有索引值
      contact_dict.values() #查字典所有值
      contact_dict["key3"]="value3" #若key3存在,则修改值;若不存在,则添加
      contact_dict.popitem() #默认删除字典中第一个

    遍历字典:
      for k,v in contact_dict.items():
      print k,v

    字典嵌套列表:
      contact_dict={
      "zhangsan":["18","Male"],
      "lisi":"18"
      }

    常用的有以上这些,其他方法可以键入:contact_dict.,然后按Tab看所有方法

    4.函数

    定义:
      def 函数名(参数):
                函数实现

    关键参数与默认参数:
      def runCmd(uname,host,command=0):
      print command
      uname,host为关键参数,在函数调用时必须写
      command为默认参数,在函数调用时可以不写

      注:默认参数只能从后往前定义,如:
      def runCmd(uname,host='localhost',command='df')
      print host,command

    全局变量:
      函数中可以声明全局变量,可在外部访问
      def globalparam()
      global myparam #定义为全局变量
      myparam='hello world'

      globalparam() #调用函数
      print myparam #调用全局变量

    小例子:

    import os
    
    username='wll'
    ip='localhost'
    cmd='df'
    
    def runCmd(uname,ip,cmd):
        mycmd='ssh %s@%s %s'%(uname,ip,cmd)
        print mycmd
        os.system(mycmd)
    
    runCmd(username,ip,cmd)

    5.Pickle序列化

    如果内存里面有一个数据结构,希望将它保存下来,重用,或者发送给其他人,这时候可以将数据结构序列化存储在磁盘上
    ,然后再次调用,或者供其他程序调用。

    序列化:
      import pickle
      contact_info={
      "John":[22,'Male','Java'],
      "Tom":[27,'Male','NET'],
      "Alice":[25,'Female','PHP']
      }

      f=file("contact.pkl","wb")
      pickle.dump(contact_info,f) #如果多次执行dump,那么需要多次load才能加载多个dump的信息.所以建议执行一次dump执行一个close
      f.close()

    加载序列化:
      import pickle

      pkl_file=open("contact.pkl","rb")
      contact_info=pickle.load(pkl_file)
      pkl_file.close()
      print contact_info

    6.正则表达式

    判断字符串是否能匹配上:
      import re
      pattern=re.compile(r'hello') #将正则表达式编译为对象
      match=pattern.match('hello world,hello everyone!') #用对象匹配文本
      if match:
           print match.group()

          结果: 
          'hello'

    分隔或查找字符串:

      import re
      pattern=re.compile(r'd+') #以一个或多个数字分隔,若换成D+,以字母分隔
      print pattern.split('1one2two33three444four') #以数字分隔字符串
      print pattern.findall('1one2two33three444four') #查找所有匹配的数字
      pattern=re.compile(r'D+')
      print pattern.split('1one2two33three444four') #以字母分隔字符串

      结果:
      ['', 'one', 'two', 'three', 'four']
      ['1', '2', '33', '444']
      ['1', '2', '33', '444', '']

    替换字符串:
      re.sub('[ap]','Y','happy') #将[]中任何一个都替换为Y
      结果:hYYYy

    以上是一些简单的匹配,更复杂的可以到官网查找。

    7.模块

    python自带有200多个常用模块,官网已收集多个模块,可以在需要的时候去官网查找。
    键入python进入命令行模式,
         import sys
         sys.path

    可以看到所有python相关的路径。其中有个路径:/usr/lib/python2.7/dist-packages,如果需要在任何路径都可以引用某
    个模块,可以把该模块放到这个目录。

  • 相关阅读:
    进程,线程(thread)
    PHP权限分配思路
    xml simpleXML_load_file(), simpleXML_load_string()
    XML基础
    php QQ登录
    ci验证码
    jquery中的 .html(),.val().text()
    ci 用本身 email 类发 email
    Objective-C 装饰模式--简单介绍和使用
    Objective-C 外观模式--简单介绍和使用
  • 原文地址:https://www.cnblogs.com/wonglu/p/5296282.html
Copyright © 2011-2022 走看看