一:学习内容

  • 字符串运算
  • 字符串函数-strip()
  • 字符串函数-大小写互换
  • 字符串函数-字符串对齐
  • 字符串函数-搜索
  • 字符串函数-替换
  • 字符串函数-split切割
  • 字符串函数-连接join
  • 字符串函数-统计count
  • 字符串函数-字符串映射
  • 字符串函数-测试字符串

二:字符串运算

1. +加,拼接

a='a'

b='b'

print a+b

2. *星号,重复输出字符串

print '*'*20

3. [],通过索引输出字符串

a='dsafdsaf'

a[3]

4. [:],截取字符串

s='dsafldsal'

s[::-1]   #逆序输出

s[2:5:2]   #输出索引位置为2到索引位置为5的数据,不包括位置3,且步长为2,即输出索引位置为2,4的数据即s[2],s[4]

s[-3:-6:-1]   #输出索引位置为-3到索引位置为-6的数据,不包括位置-6,步长为-1,s字符串最右边的位置索引为-1,往右为-2,-3..,即输出字符串从右往左位置第3位到第5位的数据

s='abcdefghijk'

s[::2]  #偶数

s[1::2]  #奇数

s[::-1]   #逆序输出

s[:]    #全部输出

s[::3]   #步长为3

s[-1:-6:-1]   #取倒数第一个到第5个

5. in、not in,成员运费符包括、不包括

'a' in 'dsalla'

'c' in 'dlsaa'

'c' not in 'dsalla'

6. r、R-原始字符串

print r'\\'

print R'\\'

7. %-格式化字符串

%s为字符串

%d为数字

%c为char,只能为一个字符

%f为float,为浮点型

print 'i am %s' % 'yml'

print 'i am %s,my age is %d' % ('yml',25)

print 'i have %.2f apple' % 7.9   #保留两位小数

print 'it is %c' % '0'

print 'i have %x apple' % 16

print 'i have %o apple' % 16

print 'i have %c apple' % '1'     #%c格式化字符及其ASCII码

print 'i have %5s apple' % 45   #%s格式化字符串

print 'i have %2d apple' % 3    #%d格式化整数

print 'i have %u apple' % 3      #%u格式化无符号整型

print 'i have %o apple' % 15    #%o格式化无符号八进制数

print 'i have %x apple' % 15    #%x格式化无符号十六进制数

print 'i have %.2f apple' % 15   #%f格式化浮点数,可指定小数点后的位数默认6位

print 'i have %e apple' % 15    #%e用科学技术法格式化浮点数

print 'i have %E apple' % 15   #%E用科学技术法格式化浮点数

print 'i have %g apple' % 15    #%f和%e的简写

三:字符串函数-strip()函数

1. strip()-去掉首尾不可见字符

将前后包含的空格和不可见字符去掉

可以看到不仅去掉了空格还去掉了tab、\r、\n、\t等不可见字符

data=raw_input('请输入一个字符串:')

data

print data

print data.strip()

输入:\n\t\r fda das\t\n,输出的效果就是去不掉\n\t等不可见字符

后来发现,raw_input输入进来的\n\t等不可见字符存在内存中会自动加上\来避免转义,我之前用print所以看不见那个多出来的\

这点需要注意。

2. lstrip()-去掉左侧不可见字符

'\na   b\r'.lstrip()

3. rstrip()-去掉右侧不可见字符

'\na   b\r'.rstrip()

3. strip('')-去掉首尾中指定字符

'*badsafd5'.strip('*')

四:字符串函数-大小写互换

1. lower()-将字符串大写转小写

'ABdd'.lower()

2. upper()-将字符串小写转大写

'ABdd'.upper()

3. swapcase()-将字符串小写转大写,大写转小写

'ABdd'.swapcase()

4. capitalize()-将字符串第一个字母变大写

'abcded'.capitalize()

'i am girl'.capitalize()

5. capwords()-将字符串每个单词的首字母变大写

import string

string.capwords('i am a girl')

6. title()-将字符串每个单词的首字母变大写,类似上面的capwords

'i am girl'.title()

'I am girl'.title()

五:字符串函数-字符串对齐

1. ljust(length,[s])-左对齐补齐字符串达到length的长度,不写s默认用空补充,如果字符串本身的长度比length要长,则默认全部输出字符串

'abc'.ljust(10)

'abc'.ljust(10,'*')

'abcsalfdsafdsfdsa'.ljust(3)

2. rjust(length,[s])-右对齐补齐字符串达到length的长度,不写s默认用空补充,如果字符串本身的长度比length要长,则默认全部输出字符串

'abc'.rjust(5)

'abc'.rjust(5,'#')

'abcsalfdsafdsfdsa'.rjust(3)

3. center(length,[s])- 居中对齐补齐字符串达到length的长度,不写s默认用空补充,如果字符串本身的长度比length要长,则默认全部输出字符串

'abc'.center(10)

'abc'.center(10,'*')

'abcedfds'.center(5,'*')

'abcedfds'.center(5)

4. zfill(length)-只能填充0,参数只有一个,而且是前面补0,如果字符串本身长度比length长,则默认输出全部字符串

'abc'.zfill(5)

'abcddddfas'.zfill(5)

'abcddddfas'.zfill(5,'*') #此法不可取,zfill只能补0不能指定字符进行补充

六:字符串函数-搜索

1. find(s,[start,end])-从字符串中找s的索引位置,start和end代表寻找区间,为闭开区间,找到则返回索引位置,找不到返回-1

a='test learn'

a.find('learn')

a.find('ea',5)

a.find('ea',5,10)

a.find('te',0,15)

a.find('xx',0,15)

* 小练习-在字符串找到所有满足的字符串

lis=[]

def find_str(s,f):

temp =0

while f in s:

index = s.find(f)

lis.append(index+temp)

s = s[:index] + s[index+len(f):]

temp+=2

return lis

s='iamymlamtezamamamster'

f='am'

print find_str(s,f)

运行结果:在s中找到f字符串的位置

2. index(s,[start,end])-可在指定字符串范围内查找字符串出现的位置,找不到返回错误

a='abcdefsg'

a.index('de')

a.index('de',1,45)

3. rfind(s,[start,end])-可在指定字符串范围内从右边开始查找字符串出现的位置,找不到返回-1,如果查找的字符串有多个,则会找到从右边开始第一出现的位置

a='abcdefsg'

a.rfind('g')

a.rfind('j',0)

a.rfind('e',1,6)

a=’iamymlamlearning’

a.find(‘am’)

a.rfind(‘am’)

find是从左边开始找发现am的位置为1,而rfind是从右边开始找,位置为6

七:字符串函数-替换

1. replace(old,new,count)-从字符串中old替换成new,count为替换次数,不写默认全部替换

a='iamymlamleanring'

a.replace('am','*')    #全部替换

a.replace('am','*',1)  #指定替换次数

import string

string.replace(a,'am','*')  #string中的replace方法

2. expandtabs([tabsize])-将字符串中每个tab替换成指定tabsize的空格数量,tabsize不写默认为8个-此函数一般不用很少用,了解即可

s='a\t\tbc'

s.expandtabs()

s.expandtabs(1)

s.expandtabs(3)

s.expandtabs(2)

八:字符串函数-split切割

1. split (s,count)-将字符串以s进行切割,count为切割次数,不写默认全部切割

a.split('am')

a.split('am',1)

a.split('am',2)

* 输出一个字符串的单词个数

#encoding=utf-8

def count_string(s):

s=s.replace(","," ").replace('!',' ')

b=s.split()

return len(b)

s='I am a boy,and   handsome!'

print count_string(s)

法二:

len("i am a boy,and handsom !".replace(","," ").replace("!","").split())

2. rsplit (s,count)-将字符串从右边以s进行切割,count为切割次数,不写默认全部切割

a='iamymliamlearing'

a.rsplit('am',1)

a.rsplit('am')

3. splitlines ([bool])-按照分隔符分隔字符串bool默认为false

a='1\n2\n'

print a.splitlines()

print a.splitlines(False)

print a.splitlines(True)

print a.splitlines(1)

* 统计文件有多少行内容,多少字符

#encoding=utf-8

with open("C:\\Users\\yumeiling\\Desktop\\a.txt") as fp:

content=fp.read()

print u'行数:',len(content.splitlines())   #文件有多少行

print u'个数:',len("".join(content.splitlines()))   #文件有多少个字母

九:字符串函数-连接join()、统计count()

1. rule.join(list):按rule来连接list ,要求list中每项要为字符串

a=['4','s','ds']

''.join(a)

'','.join(a)

'+'.join(a)

2. count(s):统计字符串中s出现的次数

'abcab'.count('a')

'abcab'.count('ab')

'abcab'.count('abc')

九:字符串函数-字符串映射

1. translate (rule,[delstr]):将字符串按rule规则进行映射,并且可用删除delstr字符串,默认delstr为空即不删除,先删除后rule

import string

s=string.maketrans('abc','def')

'iamabcgh'.translate(s)

'abcabcabc'.translate(s)

将a映射成d,将b映射成e,将c映射成f

import string

rule=string.maketrans('abc','def')

'iamymliamlearingabc'.translate(s,'am')   #删除字符串中的所有‘am’字符

2. str和string的区别

str是类型,string是模块,python3以后就没有string了,因为3中都是unicode了。

十:字符串函数-字符串解码和编码

1. encode()编码,decode()解码

str = "this is string example....wow!!!";

str = str.encode('base64','strict');

print "Encoded String: " + str;

print "Decoded String: " + str.decode('base64','strict')

十一:字符串函数-测试字符串

1. startswith(s):判断字符串是否以s开头

a='iamymliamlearing'

a.startswith('i')

a.startswith('b')

2. endswith(s):判断字符串是否以s结尾

a='iamymliamlearing'

a.endswith('b')

a.endswith('g')

3. isalnum ():判断是否为字母或数字,是返回True,否返回False,且至少有一个字符

'abc2'.isalnum()

'abcd'.isalnum()

4. isalpha (s):判断s是否为字母,是返回True,否返回False,且至少有一个字母

'abcd'.isalpha()

'abc3'.isalpha()

5. isdigit ():判断s是否为数字,是返回True,否返回False

'abc2'.isdigit()

'442'.isdigit()

6. isspace ():判断是否为空格,是返回True,否返回False,不可见字符也会返回True

'abc3 '.isspace()

' '.isspace()

'           '.isspace()

'   \r\n\t  '.isspace()

7. islower ():判断是否为小写,是返回True,否返回False,字符串中有数字不影响结果

'abc'.islower()

'abC'.islower()

8. isupper ():判断是否为大写,是返回True,否返回False,字符串中有数字不影响结果

'abC'.isupper()

'ABC'.isupper()

'ABC1234'.isupper()

9. istitle ():判断每个单次的首字母是否为大写,是返回True,否返回False

'I Am Is Yml23'.istitle()

'I Am Is yml23'.istitle()

笔记六:python字符串运算与函数的更多相关文章

  1. Python字符串必记函数

    Python字符串函数数不胜数,想要记完所有几乎不可能,下列几个是极为重要的一些函数,属于必记函数. 一.join 功能: 将字符串.元组.列表中的元素以指定的字符(分隔符)连接生成一个新的字符串 语 ...

  2. python学习笔记:python字符串

    二.python字符串操作符 1. 对象标准类型操作符 Python对象的标准类型操作符一共就三种:对象值的比较.对象身份的比较.布尔类型.其中对象值的比较主要是大于.小于.不等于等的数学比较符:对象 ...

  3. python字符串内置函数

    1.字符串 定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,‘’或“”或‘’‘ ’‘’中间包含的内容称之为字符串特性:1.只能存放一个值2.不可变3.按照从左到右的顺序定义字符集合,下标 ...

  4. python字符串相关的函数

    有些是字符串对象的方法,有些是内建库的方法 split分割字符串 find 查找字符串 for c in str:  遍历字符串 len 获取字符串长度 int    将字符串转换成int str   ...

  5. Python学习笔记(六)Python的列表生成式、生成器

    列表生成式 List Comprehensions 列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式. 简单的数值范围的list可以使用一下方式生成: >>> ...

  6. 笔记:Python 字符串小记

    1. 字符串是以''或""括起来的任意文本,如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK" >>> p ...

  7. python 字符串操作常用函数总结

    说明:并不完善,只是记录自己使用到的,没使用到或会用的不会出现在本文. 1.字符串截取 (1)基于索引 s = 'ilovepython' s[0]='i' s[-1] = 'n' (2)取其中一段 ...

  8. Python 数学运算的函数

    不需要导入模块(内置函数) 函数 返回值 ( 描述 ) abs(x) 返回绝对值 max(x1, x2,...) 最大值,参数可以为序列. min(x1, x2,...) 最小值,参数可以为序列. p ...

  9. Python 字符串常用判断函数

    判断字符串常用函数: S代表某字符串 S.isalnum()  所有字符都是数字或字母,为真返回Ture,否则返回False S.isalha()     所有字符都是字母,为真返回Ture,否则返回 ...

随机推荐

  1. Android-项目所有文件报红色j,状态栏无法Run 'app'

    项目所有文件报红色j,不可用状态 状态栏如下: 无法 Run 'app' 无法 Debug 'app' ........... 以下操作按钮灰色的,无法点击: 解决方案: 只需要:Sync Proje ...

  2. Android RelativeLayout属性介绍

    在Android开发当中,虽然有五大布局,但我推荐使用的是相对布局,Google也是推荐使用相对布局,所有对RelativeLayout布局,常用的属性做一个整理: android:layout_ma ...

  3. DBCC--常用命令

    ------------------------------------------------------ --1 DBCC FLUSHPROCINDB 清除SQL SERVER服务器内存中某个数据 ...

  4. 设计模式之适配器模式(Adapter Pattern)

    在正式开始之前,让我们先思考几个问题: 如果现有的新项目可以利用旧项目里大量的遗留代码,你打算从头开始完成新项目还是去了解旧项目的模块功能以及接口? 如果你了解过遗留代码之后,发现有几个重要的功能模块 ...

  5. C#: 线程间操作无效: 从不是创建控件“dataGridView”的线程访问它

    最近在修改自动化小工具,用多线程来解决后台拷贝导致WinForm界面卡死的情况,但是遇到过错:线程间操作无效: 从不是创建控件“dataGridView”的线程访问它. 这是因为在多线程程序中,新创建 ...

  6. Winform 搭建http服务器

    using System; using System.Collections; using System.IO; using System.Net; using System.Net.Sockets; ...

  7. Netty 源码中对 Redis 协议的实现

    原文地址: haifeiWu的博客 博客地址:www.hchstudio.cn 欢迎转载,转载请注明作者及出处,谢谢! 近期一直在做网络协议相关的工作,所以博客也就与之相关的比较多,今天楼主结合 Re ...

  8. pageadmin CMS网站制作教程:模板中的站点数据调用

    pageadmin CMS网站建设教程:模板中的站点数据调用 1.获取当前站点Id,返回int数字 Html.CurrentSiteId() 2.获取当前站点url地址,返回string字符串 Htm ...

  9. java入门——面向对象

    简介 对象具有自己的状态和行为: 描述一个对象具有什么状态和行为的过程叫做建模,不同的意图下我们对同一个事物的描述会产生不同的模型. 类 类描述一类对象的状态和行为的模板.可以把类想象成一个汽车设计图 ...

  10. django Form的回顾--手动档和自动挡

      from django.shortcuts import renderfrom django.forms import Formfrom django.forms import fieldsfro ...