Python笔记(3)-字符串

字符串表示方式

第一种方式:
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' in a
Out[60]: True

In [61]: 'o' not in a
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
while True:
    name=raw_input("输入一个变量名:")
    if name[0].isdigit():
        print "变量名不合法(error 1)"
    else:
        for i in name[1:]:
            if not(i.isalnum() or i == "_"):
                print "变量名不合法(error 2)"
                break
        else:
            print "变量名合法"

执行结果:

Python笔记(3)-字符串_第1张图片

练习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
import string
while True:
    name=raw_input("输入一个变量名:")
    if name[0] in string.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 "变量名合法"

执行结果:

Python笔记(3)-字符串_第2张图片

 

转载于:https://www.cnblogs.com/vaon/p/10905716.html

你可能感兴趣的:(python)