python入门到精通[三]:基础学习(2)
上一节学习了字符串、流程控制、文件及目录操作,这节介绍下列表、元组、字典、函数、序列化、正则、模块。
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,如果需要在任何路径都可以引用某
个模块,可以把该模块放到这个目录。
python入门到精通[三]:基础学习(2)的更多相关文章
- python入门到精通[二]:基础学习(1)
摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...
- visual studio 2015 搭建python开发环境,python入门到精通[三]
在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...
- Python基本语法[二],python入门到精通[四]
在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...
- Python运算符,python入门到精通[五]
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是“+”.在计算器语言中运算符大致可以分为5种类型:算术运算符.连接运算符.关系运算符.赋值运 ...
- Python基本语法,python入门到精通[二]
在上一篇博客Windows搭建python开发环境,python入门到精通[一]我们已经在自己的windows电脑上搭建好了python的开发环境,这篇博客呢我就开始学习一下Python的基本语法.现 ...
- Git版本控制软件结合GitHub从入门到精通常用命令学习手册(转)
简要参考:http://www.tuicool.com/articles/mEvaq2 http://gitref.org/zh/index.html GIT 学习手册简介 本站为 Git 学习参考手 ...
- iOS开发-UI 从入门到精通(三)
iOS开发-UI 从入门到精通(三)是对 iOS开发-UI 从入门到精通(一)知识点的综合练习,搭建一个简单地登陆界面,增强实战经验,为以后做开发打下坚实的基础! ※在这里我们还要强调一下,开发环境和 ...
- 【UML】NO.70.EBook.9.UML.4.001-【PowerDesigner 16 从入门到精通】- 基础概念
1.0.0 Summary Tittle:[UML]NO.70.EBook.9.UML.4.001-[PowerDesigner 16 从入门到精通]- 基础概念 Style:DesignPatte ...
- Python入门到精通学习书籍推荐!
1.Python基础教程(第2版 修订版)<Python基础教程(第2版修订版)>包括Python程序设计的方方面面,内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适合 ...
随机推荐
- 【CentOS】ifconfig命令 :command not found & yum命令 :cannot find a valid baserl for repo: base/7/x86_64
第一课,学习的是安装linux的远程连接.相信看阿铭视频的朋友们都会知道,第一个开机输入完root后要敲的命令就是--ifconfig 非常幸运,这迎来了我的第一个问题 这时候你会选择百度,会搜索到这 ...
- dbms_output.put_line长度限制问题
dbms_output.put_line长度限制问题 对于10g以上版本(包括10g), dbms_output.put_line的最大长度限制是32767. 如果报错buffer overflow, ...
- Android入门(七):Spinner下拉式菜单组件
对于手机和平板电脑的应用程序来说,打字是非常不方便的操作方式,比较好的方式就是列出一组选项让用户挑选,这样就可以避免打字的麻烦.使用Spinner下拉菜单组件需要完成以下几个步骤: 1.建立选项列表, ...
- PHP+Mysql+easyui点击左侧tree菜单对应表名右侧动态生成datagrid加载表单数据(二)
关于tree菜单生成,参考我的另一篇博文地址tree 菜单 实现功能:点击左侧tree菜单中的table,右侧通过datagrid加载出该表对用的所有数据 难点:获取该表的所有列名,动态生成datag ...
- C# 禁止修改已装箱了的值类型的字段值,但是可以通过接口的方式实现
C# 默认是不能修改已装箱了的值类型中字段的值,但是可以通过 值类型实现指定的接口来改变 首先定义一个接口 interface IChange { void Change(int a, int b); ...
- &与&&,|与||
http://bokeid.blog.163.com/blog/static/93102786201181710259178/ &&:逻辑运算符,连接两个或多个表达式,结果为TRUE或 ...
- CSS Sprites+CSS3 Icon Font
CSS Sprites+CSS3 Icon Font CSS Sprites在国内很多人叫CSS精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来, ...
- 手把手教你编写Logstash插件
使用过Logstash的朋友都知道,它强大的插件生态几乎覆盖了所有的开源框架.从基本的http.tcp.udp.file,到强大的kafa.redis.ganglia,还有丰富的解析工具,比如date ...
- 标签案例-开发foreach标签
if(item.getClass().isArray()){ this.collection = new ArrayList(); int length = Array.getLength(items ...
- buyexpressv6
<script type="text/javascript"> var is_enabled = -1; var checkSubmitFlg = false; var ...