python string用法学习ing

#!/usr/bin/env python
#-*- coding:UTF-8 -*-
#####################################################
# Author: sunfx   [email protected]
# Last modified:  2014/11/11
# Filename:  string.py
# Q  Q  群:  236147801
#####################################################
import re
import string

str = ‘I love python‘

#1.生成20个字符长度

print str.center(20)

#2.字符左对齐

print str.ljust(20)

#3.字符右对齐

print str.rjust(20)

#4.str右对齐,左边填充0

print str.zfill(20)

#5.所有字符大写

print str.upper()

#6.所有字符转小写

print str.lower()

#7.所有单词的首字母大写

s = ‘Thi quick brown fox jumped over the lazy  dog.‘

print s
print string.capwords(s)

#8.大小写对换

print str.swapcase()

#9.已分割符为标记,首字符大写,其余小写

print str.title()

#10.模版转换 字符替换 比replace更有效率

leet = string.maketrans(‘abegiloprstz‘,‘463611092572‘)
s = ‘Thi quick brown fox jumped over the lazy  dog.‘

print s
print s.translate(leet)

str = ‘0123‘

#11.是否全部是字母和数字,并至少有一个字符

print str.isalnum()

#12.是否全部是数字,并至少有一个字符

print str.isdigit()

#13.判断是否全是字母,并且至少一个字符

print str.isalpha()

#14.判断是否是小写,当全是小写和数字一起时候,也判断为True

print str.islower()

#15.判断是否是空白字符,并且至少有一个字符

print str.isspace()

#16.判断字符是否以str开头

print str.startswith(‘str‘)

#17.判读字符是否以str结尾

print str.endswith(‘str‘)

str = ‘string 1EAMD‘

#18.查找字符,没有返回-1,有责返回查到第一个匹配的索引

print str.find(‘a‘)

#19.查找字符,没有返回-1,有责返回查到最后一次匹配的索引

print str.rfind(‘a‘)

#20.查找字符,如果没有报错,有责返回查到第一个匹配的索引

print str.index(‘s‘)

#21.查找字符,没有报错,有责返回查到最后一次匹配的索引

print str.rindex(‘s‘)

#22.查找字符串在字符中出现的次数

print str.count(‘s‘)

#23.替换匹配的字符

print str.replace(‘s‘,‘A‘)

#24.删除字符串首尾匹配的字符,通用用于删除回车符

print str.strip(‘n‘)

#25.删除左边匹配的字符

print str.lstrip(‘n‘)

#26.删除右边匹配的字符

print str.rstrip(‘n‘)

#27.把制表符转为空格

str = ‘    tab‘
print str.expandtabs()

str = ‘我在学习‘

#28.解码过程,将utf-8解码为unicode

print str.decode(‘utf-8‘)

#29.编码过程,将unicode编码为gbk

print str.decode(‘utf-8‘).encode(‘gbk‘)

#30.讲unicode编码为utf-8

print str.decode(‘utf-8‘).encode(‘utf-8‘)

#31.字符分割

str = ‘Learn string‘

print ‘-‘.join(str)

#32.以什么为分割

print str.split(‘ ‘)

#33.模版Template 

values = {‘var‘:‘foo‘}

t = string.Template("""
    Variale       : $var
    Escape        : $$
    Variable in text: ${var}iable
	""")

print ‘TEMPLATE:‘,t.substitute(values)

s = """
    Variale       : %(var)s
    Escape        : %%
    Variable in text: %(var)siable
	"""

print ‘INTERPOLATION:‘, s % values

#34.Template 异常处理

t = string.Template("$var is here but $missing is not provided")

try:

    print ‘substitute() :‘,t.substitute(values)

except KeyError, err:

	print ‘ERROR:‘,str(err)

print ‘safe_substitute():‘,t.safe_substitute(values) 

#36.高级模版

template_text = ‘‘‘
    Delimiter : %%
    Replaced  : %with_underscore
    Ignored   : %notundersocred
‘‘‘
#37.可以自定义Templace 转换规则

d = { ‘with_underscore‘:‘replaced‘,
      ‘notundersocred‘:‘not replaced‘
}

class MyTemplate(string.Template):

	delimiter = ‘%‘
	idpattern = ‘[a-z]+_[a-z]+‘

t = MyTemplate(template_text)
print ‘Modified ID pattern:‘
print t.safe_substitute(d)

#38.自定义更复杂的规则

t = string.Template(‘$var‘)
print t.pattern.pattern

‘‘‘
    \$(?:
      (?P<escaped>\$) |   # Escape sequence of two delimiters #忽略的分隔符
      (?P<named>[_a-z][_a-z0-9]*)      |   # delimiter and a Python identifier #python分隔符的标识(也就是变量)
      {(?P<braced>[_a-z][_a-z0-9]*)}   |   # delimiter and a braced identifier #分隔符和一个支撑的标识
      (?P<invalid>)              # Other ill-formed delimiter exprs #无效的
    )
‘‘‘

class MyTemplate(string.Template):

	delimiter = ‘{{‘ #定义转义符
	pattern = r‘‘‘
	\{\{(?:
    (?P<escaped>\{\{) |
    (?P<named>[_a-z][_a-z0-9]*)\}\} |
    (?P<braced>[_a-z][_a-z0-9]*)\}\} |
    (?P<invalid>)  
	)
	‘‘‘

t = MyTemplate(‘‘‘
    {{{{
    {{var}}
	‘‘‘)	

print t.template #查看template的值
print ‘MATCHES:‘,t.pattern.findall(t.template) #查看正则匹配到的字符
print ‘SUBSTIITUTED:‘,t.safe_substitute(var=‘replacement‘) #使用替换
print MyTemplate.delimiter  #查看mytemplate转义符
print string.Template.delimiter  #查看string转义符

#http://legacy.python.org/dev/peps/pep-0292/

#格式化段落

#39.填充段落  左对齐,第一行缩进,行中空格继续保留
import textwrap

sample_text = ‘‘‘
     The textwrap modulde can be used to format text for output in
     situations where pretty-parinting is desired. It offers 
     programmatic functionality similar to the paragraph wrapping
     or filling features found in myany text editors.
‘‘‘

print ‘No dedent:\n‘
print textwrap.fill(sample_text,width=50)

#40.去除现有缩进(去除行中所有的空格)
dedemted_text = textwrap.dedent(sample_text)
print dedemted_text

#41.结合fill和dedent 指定输出文字的宽度

dedemted_text = textwrap.dedent(sample_text).strip()
print dedemted_text
for width in [45,70]:
	print ‘%d Columns:\n‘ % width
	print textwrap.fill(dedemted_text,width=width)
	print

#42.悬挂缩进

print textwrap.fill(dedemted_text,
	                initial_indent=‘‘,  #定义文本第一行缩进的长度
	                subsequent_indent=‘    ‘ * 4,  #定义其他行的缩进
	                width=50 #定义文本长度,默认75
	)	
时间: 2024-10-25 19:47:58

python string用法学习ing的相关文章

Python多重继承用法 Python周末学习

Python多重继承用法 Python周末学习 继承是面向对象编程的一个重要方式,通过继承,子类可以扩展父类的功能,Python也具有该特性,除此之外,Python还可以使用多重继承. 语法: class subClass(Base1,Base2) 该语法的含义是创建了一个subClass类,让它同时继承了Base1和Base2的相关特性,关于继承还有以下规则需要遵循: 1. 继承只会继承父类的方法,不能继承父类的变量: 2. 要想继承父类的变量,需要执行父类的__init__(self)方法:

【python标准库学习】thread,threading(二)多线程同步

继上一篇介绍了python的多线程和基本用法.也说到了python中多线程中的同步锁,这篇就来看看python中的多线程同步问题. 有时候很多个线程同时对一个资源进行修改,这个时候就容易发生错误,看看这个最简单的程序: import thread, time count = 0 def addCount(): global count for i in range(100000): count += 1 for i in range(10): thread.start_new_thread(ad

《灰帽Python-黑客和逆向工程师的Python编程》学习记录

ctypes是Python语言的一个外部库,提供和C语言兼容的数据类型,可以很方便的调用C DLL中的函数. 操作环境:CentOS6.5 Python版本:2.66 ctypes是强大的,强大到本书以后介绍的几乎所有库都要基于此.使用它我们就能够调用动态链接库中函数,同时创建各种复杂的C数据类型和底层操作函数.毫无疑问,ctypes就是本书的基础. 第一章 搭建开发环境 1.3.2 使用动态链接库 from ctypes import * libc = CDLL("libc.so.6"

【python标准库学习】re模块

1.什么是re 正则表达式一门相对通用的语言,在python中也有对正则表达式的支持,那就是的内置re模块.正则表达式就是一系列的规则去匹配字符串然后进行相应的操作,这些规则网上一搜一大片,而re则是运用正则表达式来提供一系列的功能强大的接口让我们来调用.通常我们在对日志文件进行操作的时候会对正则表达式运用的比较多来得到我们希望得到的数据. 2.python中的转义符 正则表达式中通常用反斜杠'\'来代表转义,'\d'代表数字等,但是python本身也是通过反斜杠'\'来表示转义,所以就和正则表

python网络爬虫学习笔记

python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章目录 1. 介绍: 2. 从简单语句中开始: 3. 传送数据给服务器 4. HTTP头-描述数据的数据 5. 异常 5.0.1. URLError 5.0.2. HTTPError 5.0.3. 处理异常 5.0.4. info和geturl 6. Opener和Handler 7. Basic Authentication 8. 代理 9. Timeout 设置 10. Cookie 11. Deb

C#中string用法实例详解

在进行C#程序设计时,用的最多的莫过于string了,但有些时候由于不仔细或者基础的不牢固等因素容易出错,今天本文就来较为详细的总结一下C#中string的用法.具体如下: 1.string是一个引用类型,平时我们比较string对象,比较的是对象的值而不是对象本身 如下面代码所示: string strA="abcde"; string strB="abc"; string strC="de"; Console.WriteLine(strA =

Python高级用法总结

Python很棒,它有很多高级用法值得细细思索,学习使用.本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式.迭代器和生成器.装饰器. 列表推导(list comprehensions) 场景1:将一个三维列表中所有一维数据为a的元素合并,组成新的二维列表. 最简单的方法:新建列表,遍历原三维列表,判断一维数据是否为a,若为a,则将该元素append至新列表中. 缺点:代码太繁琐,对于Python而言,执行速度会变慢很多. 针对场景1,我们首先应该想到用列表解析式来解决处理

python函数基础学习

函数的定义与调用: def 函数名(参数1,参数2): '''函数注释''' print('函数体') return 返回值 定  义:def关键字开关,空格之后接函数名和圆括号,最后冒号结尾 def 是固定且不可变的 函数名:函数名是包含字母.数字.下划线的任意组合,(不能以数字开头) 函数调用: 返回值 = 函数名 (参数1,参数2) 函数返回值: 1- return的作用:结束一个函数的执行 2- 首先返回值可以是任何的数据类型 3- 函数可以有返回值:如有返回值,必须要用变量接受才有效果

Python基础教程学习:深入 Python iter() 方法

今天我们来介绍下Python基础教程学习之iter() 方法另外的用法.据说很少有人知道这个用法! 一.上代码.学用法 我们都比较熟悉 iter(obj),会返现一个迭代器,如果 obj 不是可迭代对象,则会报错.但其实如果仔细看官方文档,会发现 iter() 方法其实是接受两个参数的,文档说明如下 iter(object[, sentinel]) sentinel 英文翻译为 哨兵. sentinel 参数是可选的,当它存在时,object 不再传入一个可迭代对象,而是一个可调用对象,通俗点说