字符串表示方式
第一种方式:
str1 = 'redhat'
第二种方式:
str2 = "redhat"
第三种方式:
str3 = """redhat"""
字符串类型转换
str() 将其他类型内容转换为字符串
int() 将字符串转换为为整数
float() 将字符串转换为浮点型
long() 将字符串转换为长整型
字符串常用操作1
字符串属于序列,序列支持如下操作:
1.索引
索引(s[i]):获取特定偏移的元素
给出一个字符串,可以输出任意一个字符,如果索引为负数,就相当于从后向前数
In [48]: s[0]
Out[48]: 'h'In [49]: s[-1]
Out[49]: 'o'In [50]: s[0]+s[-1]
Out[50]: 'ho'
2.切片
切片(s[i:j]):提取对应的部分作为一个序列:
上边界并不包含在内
如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度
In [51]: num='asdfgh'In [52]: num[0:2]
Out[52]: 'as'In [53]: num[:2]
Out[53]: 'as'
扩展:
s[i:j:k],其中i,j含义同上,k为递增步长
In [55]: num[0:5:2]
Out[55]: 'adg'
s[:]表示获取从偏移量为0到末尾之间的元素
In [56]: num[:]
Out[56]: 'asdfgh'
s[1:]表示获取从偏移量为1到末尾之间的元素
In [57]: num[1:]
Out[57]: 'sdfgh'
s[::-1]表示倒序显示所有元素
In [58]: num[::-1]
Out[58]: 'hgfdsa'
3.成员操作符(判断子串)
判断一个字符串是不是属于s字符串
In [59]: a='hello'In [60]: 'o' ina
Out[60]: True
In [61]: 'o' not ina
Out[61]: False
4.连接操作符
In [62]: a='hello'In [63]: b='world'In [64]: a+b
Out[64]: 'helloworld'
5.重复操作符
In [65]: "#"*10 #将#重复显示10次
Out[65]: '##########'In [66]: print "#"*10+"SYSTEM"+"#"*10
##########SYSTEM##########
字符串常用操作2
注:[]里面的内容表示可要可不要
str.capitalize()
将字符串首字母大写,并返回新的首写字母大写后的字符串
In [67]: str='admin enzo'In [68]: str.capitalize()
Out[68]: 'Admin enzo'
str.center(width[,fillchar])
返回一个新的字符串:原本的字符串居中显示在一个长度为width的字符串中。填充是使用指定的fillchar(默认是ASCII中的空格' ')完成的。如果width小于或等于len(s),则返回原始字符串
In [83]: str='admin'In [84]: str.center(11,'#')
Out[84]: '###admin###'
str.count(sub[,start[,end]])
返回sub在str中出现的次数,如果start与end指定,则返回指定范围内的sub出现次数
In [91]: str='aaaaaaa'In [92]: str.count('a',0,2)
Out[92]: 2
str.startswith(suffix[,start[,end]])
判断字符串是否以suffix开始,如果start和end指定,则返回str中指定范围内str子串是否以suffix结尾,如果是,返回True,否则返回False
str.endswith(suffix[,start[,end]])
判断字符串是否以suffix结束,如果start和end指定,则返回str中指定范围内str子串是否以suffix结尾,如果是,返回True,否则返回False
In [93]: str='i am enzo'In [94]: str.endswith('zo')
Out[94]: True
In [95]: str.endswith('zo',0,5)
Out[95]: False
str.find(sub[,start[,end]])
判断sub是否在str中,存在返回索引值,不存在返回-1
str.index(sub[,start[,end]])
与find方法函数功能相同,如果sub不存在时抛出ValueError异常
str.isalnum()
判断是否都是字母或数字
str.isalpha()
判断是否都是字母
In [104]: str='admin'In [105]: str.isalpha()
Out[105]: True
str.isdigit()
判断是否都是数字
str.islower()
判断是否都是小写
str.isspace()
判断是否都是英文空格
str.istitle()
判断是不是都是标题(有大小写)
str.isupper()
判断是不是都为大写字母
str.join(seq)
以str作为分隔符,将序列seq中的所有元素合并为一个新的字符串
In [107]: str='123'In [108]: seq='abc'In [109]: str.join(seq)
Out[109]: 'a123b123c'
str.replace(old,new[,count])
将str中的old字符串替换为new字符串,并将替换后的新字符串返回,如果count指定,则只替换前count个字符串
In [110]: str='h e llo'In [111]: str.replace(" ","")
Out[111]: 'hello'
str.split([sep[,maxsplit]])
以sep字符串作为分隔符对str进行切割,默认为空字符(包括空格、换行(\n)、制表符(\t)等)
maxsplit代表切割maxsplit+1次,默认为-1,即切割所有
In [127]: str='admin enzo tom'In [128]: str.split()
Out[128]: ['admin', 'enzo', 'tom']
In [129]: str.split(" ")
Out[129]: ['admin', 'enzo', 'tom']
str.strip([chars])
返回一个将str中首尾包含指定的chars字符删除的字符串,未指定时,删除首尾的空格
In [135]: str='admin enzo tom'In [136]: str.strip('m')
Out[136]: 'admin enzo to'In [137]: str.strip('am')
Out[137]: 'dmin enzo to'
str.lower()
将大写字母转换为小写
str.upper()
将小写字母转换为大写
str.ljust(width[,fillchar])
返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
width -- 指定字符串长度。
fillchar -- 填充字符,默认为空格
In [138]: str='hello'In [139]: str.ljust(10,'*')
Out[139]: 'hello*****'
str.rjust(width[,fillchar])
返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
width -- 指定字符串长度。
fillchar -- 填充字符,默认为空格
练习1:
用户输入一个变量名,判断是否合法(使用字符串常用操作)
变量名的命名规则:由数字、字母、_组成并且不能以数字开头
#!/usr/bin/env python#coding:utf-8
whileTrue:
name=raw_input("输入一个变量名:")ifname[0].isdigit():print "变量名不合法(error 1)"
else:for i in name[1:]:if not(i.isalnum() or i == "_"):print "变量名不合法(error 2)"
break
else:print "变量名合法"
执行结果:
练习2:
用户输入一个变量名,判断是否合法(使用string模块)
变量名的命名规则:由数字、字母、_组成并且不能以数字开头
注:
In [48]: import string
In [49]: string.digits
Out[49]: '0123456789'
In [50]: string.letters
Out[50]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
#!/usr/bin/env python#coding:utf-8
importstringwhileTrue:
name=raw_input("输入一个变量名:")if name[0] instring.digits:print "变量名不合法(error 1)"
else:for i in name[1:]:if not(i in string.digits or i in string.letters or i == "_"):print "变量名不合法(error 2)"
break
else:print "变量名合法"
执行结果: