Python是很多公司都在使用的一种脚本语言,其语法与Perl、C++、JAVA等都大同小异。本文仅对一些比较常用的语法结构进行总结,比如字典、列表、正则匹配、读写文件等。供广大喜爱Python的同学学习交流。

字符串操作

  • 去除特殊符号:s.strip() .lstrip() .rstrip(',')
  • 拼接字符串:str = str1 + str2
  • 连接字符串:lis = ['1','2','3']    str.join(lis)
  • 查找字符串:str1 = 'hello world'     str2 = 'o'  pos = str1.index(str2)
  • 比较字符串:cmp(str1,str2)
  • 字符串长度:len(str)
  • 字符串复制:n * str
  • 大小写转换:str.upper()    str.lower()
  • 翻转字符串:str1 = str2[::-1]
  • 截取字符串:str[0:3] #截取第一位到第三位的字符

       str[-3:-1] #截取倒数第三位与倒数第一位之间的字符

        str[-3:]#截取倒数第三位到结尾的字符

  • 分割字符串:array = str.split(':') #将以:分割的字符串存入数组array

数组

数组是一种列表结构,可以嵌套

  • 定义:arr = [1,2,[1,2,3]]
  • 删除元素:del arr[0,2]
  • 插入元素:arr.append(4)
  • 数组长度:len(arr)
  • 遍历数组:

  for i in range(len(arr)):

    print arr[i]


字典

字典是由键=>值对构成的结构,可以嵌套.

  • 创建字典:

  直接创建:fruitDic = {"apple":1,"orange":2,"banana":3}

  dict函数创建:fruitDic = dict(("apple","orange","banana"),(1,2,3))  或 fruitDic = dict("apple"=1,"orange"=2,"banana"=3)

  • 清空字典:fruitDic.clear()
  • 复制字典:这里要注意浅复制和深复制的问题。浅复制是指复制对象,新字典的改变内容会使原字典也改变;对于深复制,新字典的改变不会影响原来的字典。

  浅复制方式:newDic = origDic.copy()

  深复制方式:from copy import deepcopy

        newDic =deepcopy(origDic)

  • 判断字典是否包含某键:dict.has_key('apple')
  • 字典的键值:dict.keys()  dict.values()
  • 移除某键值对:dict.pop('apple')
  • 字典遍历:

  for i in dict:

    print dict[i]

  for (k,v) in dict.items():   #dict.items()表示返回-字典中(键, 值)对元组的列表

    print "%s:%s" %k,v

  for k,v in dict.iteritems(): #dict.iteritems()表示返回一个迭代对象

    print "%s:%s" %k,v


正则匹配

Python的re模块提供了各种正则表达式的匹配操作,在文本解析、复杂字符串分子以及信息提取时非常有效,在脚本中应加入import re

1. 正则表达式是否匹配字符串的全部或部分

   str = 'I love Python.'

   regx = '.*love'  #正则表达式,可参见另一篇博客。

   if re.search(regx, str):

    print "match"

   else:

    print "not match"

2. 正则表达式是否匹配整个字符串

  if re.match(regx, str):

   print "match"

  else:

   print "not match"

3. 获取匹配部分:

使用group()函数,正则表达式中圆括号匹配的模式,分别对应group(1),group(2),...。而group()则对应最大匹配结果。

  str = 'I love Python and JAVA.'

  regx = 'I love (.*) and (.*)'  #正则表达式,可参见另一篇博客。

  match = re.search(regx, str)

  if match:

   print match.group(1)+'\t'+match.group(2)  #显示结果为 Python  JAVA

  else:

   print "not match"

4. 将所有匹配的子串存入数组:

  array = re.findall(regx, str)

5. 创建正则表达式对象

另外,还可以通过compile函数创建一个正则表达式对象,进行相应的匹配。

  reobj = re.compile(regx)

  match = reobj.search(str)

  if match:  #或直接 if reobj.match(str): 或 if reobj.search(str):

   print match.group(1)+...

  else:

  print "not match"

同理,也可以将所有匹配子串存入数组:

  reobj = re.compile(regx)
  array = reobj.findall(str)


读写文件操作

Python中对文件进行读写操作的函数式open():fobj = open(filename,mode)

mode选项:

  • r:读文件;
  • w:覆盖方式写入文件;
  • w+:追加写文件;
  • wb:写二进制文件;

1. 按行读文件:

  fobj = open("./filename","r")

  for line in fobj:

   line = line.strip('\n') #去掉换行符

   print line

  fobj = close()

2. 写文件

  fobj = open("./filename","w+")

  fobj.write("hello world\n")

  fobj = close()

3. 其他文件操作

  • fobj.readline():读出一行信息;
  • fobj.readlines():读出所有行(即整个文件);
  • fobj.writelines(list):把list中的字符串按行写入文件;

逻辑运算符

与:and

或:or

非:not


 Others

退出脚本:sys.exit()

Python学习札记的更多相关文章

  1. python学习札记(1)

    首先给大家推荐一个很好的python入门网站,感觉比<python基础>之类的书更容易懂,廖雪峰小站,希望有学习资源同学们也能多多交流.下面是今天所学: 下面总结一些非常有特色的函数及其应 ...

  2. Python学习札记(二十五) 函数式编程6 匿名函数

    参考:匿名函数 NOTE 1.Python对匿名函数提供了有限的支持. eg. #!/usr/bin/env python3 def main(): lis = list(map(lambda x: ...

  3. Python学习札记-eval函数

    eval()函数 eval()官方文档里面给出来的功能解释是:将字符串string对象转化为有效的表达式参与求值运算返回计算结果 语法上:调用的是:eval(expression,globals=No ...

  4. Python学习札记(四十三) IO 3

    参考:操作文件和目录 NOTE: 1.Python内置的os模块可以直接调用操作系统提供的接口函数: 2.os.name 打印操作系统的名称:如果是posix,说明系统是Linux.Unix或Mac ...

  5. Python学习札记(四十二) IO 2

    参考:StringIO和BytesIO NOTE 1.StringIO: 顾名思义就是在内存中读写str. #!/usr/bin/env python from io import BytesIO a ...

  6. Python学习札记(四十) 面向对象编程 Object Oriented Program 11

    参考:使用元类 NOTE: type() 1.type()函数可以用于检查一个类或者变量的类型. #!/usr/bin/env python3 class Myclass(object): " ...

  7. Python学习札记(三十九) 面向对象编程 Object Oriented Program 10

    参考:使用枚举类 NOTE #!/usr/bin/env python3 from enum import Enum def main(): Mouth = Enum('Mouth', ('Jan', ...

  8. Python学习札记(三十八) 面向对象编程 Object Oriented Program 9

    参考:多重继承 NOTE #!/usr/bin/env python3 class Animal(object): def __init__(self, name): self.name = name ...

  9. Python学习札记(三十七) 面向对象编程 Object Oriented Program 8 @property

    参考:@property NOTE 1.在绑定参数时,为了避免对属性不符合逻辑的操作,需要对传入的参数进行审核. #!/usr/bin/env python3 class MyClass(object ...

随机推荐

  1. jq_$.extend和$.fn.extend插件开发和方法的封装

    --------杂谈-------- 随着使用的使用js和jq使用的越来越娴熟,也就是说日常产品经理给的一些需求,已经在自己的能力范围内了.空出来了一点时间,来研究如何优化你的代码, 不管是性能上,还 ...

  2. 多github帐号的SSH key切换

    我有两个github帐号,一个是个人所用,一个是为公司项目所用.如果是单用户(single-user),很方便,默认拿id_rsa与你的github服务器的公钥对比:如果是多用户(multi-user ...

  3. 20179205《Linux内核原理与分析》第一周作业

    输出 shiyanlou 图形字符的命令banner: 新建用户wangyazhe,输入密码不会显示出来: 利用sudo adduser添加一个用户 loutest,mkdir创建一个新的文件夹opt ...

  4. Python自动化运维 - Django(三)CSRF - Cookie&Session

    CSRF跨站请求伪造 CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:攻击者盗用了你的身份,以你的名义发送恶意请求 ...

  5. ES6 新增的一些东西

    一.常量 不允许重复定义 const a='HELLO' const a='world'//报错Uncaught SyntaxError: Identifier 'a' has already bee ...

  6. python实战===国内很简单实用的一些开源的api以及开源项目

    原创 2017年03月25日 15:40:59 标签: api / 开源项目 / app / 免费接口   声明 以下所有 API 均由产品公司自身提供,本人皆从网络获取.获取与共享之行为或有侵犯产品 ...

  7. monkey测试===easyMonkey测试【推荐】

    easymonkey测试: easymonkey是基于monkey测试的一个二次开发工具.(关于monkey测试参见之前blog) easymonkey的特点就是方便,解决了很多参数命令上设置的麻烦, ...

  8. 【玲珑杯Round17】xjb总结

    zcy真是垃圾,啥都不会的那种. 菜的不行. 这场手速上了三题,然后各种E被卡…… 日个吗居然E不开栈,傻逼吧 有毒吧 来看题: A.sqc给的我的神奇公式,gtmd居然能A? #include< ...

  9. MyBatis批量插入数据(MySql)

    由于项目需要生成多条数据,并保存到数据库当中,在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,项目使用了Spring+MyBatis,所以打算使用MyBatis批量插入,应 ...

  10. 关于移动端audio自动播放问题

    本人小白全栈一枚,给公司写了一个监控中心,要求严重报警的时候需要触发音频播放,于是就有了以下的折腾. 刚开始一切都很顺利,自然而然的写了以下代码. <audio id="myaudio ...