python一些基本知识点之字符串(一)
2014-06-03 16:53
477 查看
前言:在老师的威逼下,我决定开始学习python,说实话不是很情愿,主要是觉得c++都还灭有学明白呢,我一直的观点是语言在精,不再多,所以我还是想把精力放在C++语言的学习上。但是由于形式所迫,我也想锻炼一下自己学习新知识的效果,还有就是Python确实不错。而且在有生之年,能掌握一种脚本语言也是不错的,况且Python据说很强大,看了几本书的前沿,都说了若干多Python的好处。而且搞图像处理,据说Python还是很有用的。
不找任何借口了,学学吧,顺便坐下笔记在此。希望自己能坚持下来.
以下的知识点均来自与Python学习手册这本书,主要是做笔记功能。
1、在dos命令下,将.py文件保存成.txt文件:python scr.py > save.txt 这样就将,py中的输出结果保存到了.txt中
2、import导入一个模块只能导入一次,也只有导入的第一次起作用,如果想要重新导入,需要用到imp标准库模块中可用的reload函数
例如:
4、Python程序可以分解成模块、语句、表达式、以及对象,如下所示。
(1)程序由模块构成
(2)模块包含语句
(3)语句包含表达式
(4)表达式建立并处理对象
4、一些数学模块演示:
正索引和反索引:
序列支持的一些分片的操作:
例:
除了一般的序列操作,字符串还有独有的一些操作作为方法存在:
find方法:字符串查找操作
replace方法:对全局进行搜索和替换
加入S是一个字符串;
模式匹配:
注意:如果没有if语句对m进行判断其是否为None,会报
Traceback (most recent call last):
File "<pyshell#168>", line 1, in <module>
m.groups()
AttributeError: 'NoneType' object has no attribute 'groups'
这种错误。
解决办法及其原因请参考:
1. 通过re.compile生成正则表达式对象
2. 调用正则表达式对象的match或者search方法生成match或search对象
3. 判断match或search对象对否为None,如果不为None,通过group方法获取分组匹配字符串。
注意: 如果不做判断的话,当匹配失败调用group方法会报异常(AttributeError: 'NoneType' object has no attribute 'group')退出。
类似的例子:
[b]>>> import re
[/b]
>>> match = re.match('/(.*)/(.*)/(.*)','/user/home/people')
>>> if match:
match.groups()
输出:('user', 'home', 'people')
不找任何借口了,学学吧,顺便坐下笔记在此。希望自己能坚持下来.
以下的知识点均来自与Python学习手册这本书,主要是做笔记功能。
1、在dos命令下,将.py文件保存成.txt文件:python scr.py > save.txt 这样就将,py中的输出结果保存到了.txt中
2、import导入一个模块只能导入一次,也只有导入的第一次起作用,如果想要重新导入,需要用到imp标准库模块中可用的reload函数
例如:
>>> import script >>> from imp import reload >>> reload(script) win32 1267650600228229401496703205376 spam spam spam spam spam spam spam spam <module 'script' from 'C:/Python27/py_test\script.pyc'> >>>3、dir函数,treename为文件名
>>> dir(treename) ['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'a', 'b', 'c']a,b,c是treename文件中定义的三个变量,而剩下的变量是Python预定义的内置变量名
4、Python程序可以分解成模块、语句、表达式、以及对象,如下所示。
(1)程序由模块构成
(2)模块包含语句
(3)语句包含表达式
(4)表达式建立并处理对象
4、一些数学模块演示:
import math import random print(math.pi) print(math.sqrt(85)) print(random.random()) print(random.choice([1,2,3,4,5,6,7,8,9]))5、字符串
正索引和反索引:
>>> S = 'spam' >>> len(S) 4 >>> S[0] 's' >>> S[1] 'p' >>> S[-1] 'm' >>> S[-2] 'a'
序列支持的一些分片的操作:
>>> S 'spam' >>> S[0:] 'spam' >>> S[0:3] 'spa' >>> S[:3] 'spa' >>> S[:-1] #除了最后一个的所有的都输出 'spa' >>> S[:] 'spam' >>>不可以通过对字符串中某一位置进行赋值而改变字符串,但是你总是可以建立一个新的字符串并以同一个变量名对其进行赋值。因为Python在运行过程中会清理旧的对象
例:
>>> S 'spam' >>> S[0]= 'z' Traceback (most recent call last): File "<pyshell#51>", line 1, in <module> S[0]= 'z' TypeError: 'str' object does not support item assignment >>> S = 'z' + S[1:] >>> S 'zpam'以上每一个字符串的操作都是一个真正的序列操作,也就是说这些操作在其他序列中也会工作,包括列表和元组。
除了一般的序列操作,字符串还有独有的一些操作作为方法存在:
find方法:字符串查找操作
replace方法:对全局进行搜索和替换
>>> S.find('pa')#找到返回1 1 >>> S.find('ls')#没找到返回-1 -1 >>> S.replace('pa','XYZ') 'zXYZm' >>> S 'zpam' #原字符串的值,并没有改变 >>>其他方法:
>>> line = 'aaa,bbb,ccc,ddd' >>> line.split(',') ['aaa', 'bbb', 'ccc', 'ddd'] >>> for x in line.split(','): print(x) aaa bbb ccc ddd >>> S = 'spam' >>> S.upper() 'SPAM' >>> S.isalpha() True >>> line = 'a,bb,ccc,dddd\n' >>> line = line.rstrip() #去掉右边的空格 >>> line 'a,bb,ccc,dddd' >>> a = 'aaaa\n' >>> a 'aaaa\n'格式化:
>>> '{0}, eggs, and {1}'.format('spam','SPAM!') 'spam, eggs, and SPAM!' >>> '%s, eggs, and %s' %('spam','SPAM!') 'spam, eggs, and SPAM!'调用内置的dir函数将会返回一个列表,其中包含了对象的所有属性。由于方法是函数属性,也会在这个列表中出现。
加入S是一个字符串;
>>> dir(S) ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']dir函数给出了方法的名称,要查询他们是做什么的,你可以将其传递给help函数
>>> help(S.replace) Help on built-in function replace: replace(...) S.replace(old, new[, count]) -> string Return a copy of string S with all occurrences of substring old replaced by new. If the optional argument count is given, only the first count occurrences are replaced.例:
>>> S 'spam' >>> S.replace('sp','LSP') 'LSPam'
模式匹配:
>>> import re >>> m = re.match('Hello[ \t]*(.*)World','Hello Python World') >>> if m: m.group(1) 'Python '这个例子的目的是搜索子字符串,这个字符串以Hello开始,后面跟着零个或几个制表符或空格,接着有任意字符并将其保存至匹配的group中最后以World结尾。
注意:如果没有if语句对m进行判断其是否为None,会报
Traceback (most recent call last):
File "<pyshell#168>", line 1, in <module>
m.groups()
AttributeError: 'NoneType' object has no attribute 'groups'
这种错误。
解决办法及其原因请参考:
1. 通过re.compile生成正则表达式对象
2. 调用正则表达式对象的match或者search方法生成match或search对象
3. 判断match或search对象对否为None,如果不为None,通过group方法获取分组匹配字符串。
注意: 如果不做判断的话,当匹配失败调用group方法会报异常(AttributeError: 'NoneType' object has no attribute 'group')退出。
类似的例子:
[b]>>> import re
[/b]
>>> match = re.match('/(.*)/(.*)/(.*)','/user/home/people')
>>> if match:
match.groups()
输出:('user', 'home', 'people')
相关文章推荐
- Python字符串知识点总结(字符串的一些用法)
- python一些基本知识点之列表(二)
- python一些基本知识点之字典(三)
- python 的一些知识点(列表解析、打包、装饰器、type、slots)
- C#中的字符串的一些知识点
- 最近碰到一些python的小知识点,容易错的地方
- Python的一些字符串内建函数
- 关于oracle的一些基本知识点和操作
- python字符串、元组和列表常用的一些方法
- 设计模式-关于模式的一些很基本的知识点
- 关于字符串操作的一些常用户到的一些基本东西..
- python3实例手册-基本类型-字符串
- python字符串操作的一些例子
- python 的一些知识点
- .net一些知识点的记录之字符串
- Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
- 学习字符串时的一些知识点(来源书上,仅供个人学习使用)
- monkeyrunner其他测试例子收集,便于理解python一些基本用法
- python--序列的基本概念和操作(序列:列表、元组、字符串)
- 二进制和字符串之间的转换(包含一些小知识点运用)