day2-字符串

字符串可以理解为是单个字符的列表

相同点:

对列表的许多操作,也可以作用于字符串:

按下标取值

切片

用于for循环

len()

in 和not in操作符

1.定义字符串

name = ''   #空字符串
>>> name = "dick"  #非空字符串
>>> name[1]  #通过下标取值
'i'
>>> name[2] = 'q'  #不能修改字符串的值,否则会报错
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: 'str' object does not support item assignment

2.切片

>>> name = "dick hu"
>>> name[1:4] #取1到4之间的字符,包括1,不包括4
'ick'
>>> name[1:-1] #取1到-1之间的字符,包括1,不包括-1
'ick hu'
>>> name[0:3]
'dick'
>>> name[:3] #从头开始取,0可以省略
'dick'
>>> name[3:] #从3取到最后一个值
'k hu'
>>> name[0::2] #后面的2表示:每隔一个字符就取一个
'dc u'
>>> name[::2] #从头开始0可以省略,效果和上一句一样
'dc u'

3.capitalize()

用法:将字符串第一个字母转换为大写,其他都转为小写

name = "my name is Huwei and 22 years old"
print(name.capitalize())
#输出
My name is huwei and 22 years old

4.count()

用法:返回str在string里出现的次数

name = "my name is {name} and {year} years old"
print(name.count("i"))
#输出
1

5.center(width,fillchar)

用法:返回一个指定的宽度width居中的字符串,fillchar为填充字符,默认为空格

name = "my name is huwei and 22 years old"
print(name.center(50,"-"))  #不够50个字符,两边使用-填充
#输出
------my name is huwei and 22 years old------

6.encode()

用法:在python 3中encode编码的同时会把string变成bytes类型,decode同时会把bytes变成string类型

name = "my name is huwei and 22 years old"
print(name.encode())   #转换成2进制
#输出
b'my name is huwei and 22 years old'

7.endwith(obj)

用法:检查字符串是否以 obj 结束,如果是,返回 True,否则返回 False

name = "my name is huwei and 22 years old"
print(name.endswith("me"))
#输出
False

8.find(str)

用法:检测 str 是否包含在字符串中 中,如果是,返回开始的索引值,否则返回-1

name = "my name is huwei and 22 years old"
print(name.find("name"))  #字符串也可以切片
#输出
3

9.format()

用法:函数可以接受不限个参数,位置可以不按顺序

#不设参数
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序 
'hello world' 

>>> "{0} {1}".format("hello", "world") # 设置指定位置 
'hello world' 

>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置 
'world hello world'

#也可以设置参数
name = "my name is {name} and {year} years old"
print(name.format(name = 'dick',year = 19))
#输出
my name is dick and 19 years old

10.foramt_map()

用法:格式化字符串

name = "my name is {name} and {year} years old"
print(name.format_map({'name':'dick','year':19}))
#输出
my name is dick and 19 years old

11.isalnum()

用法:如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False

name = "my name is huwei and 22 years old"
print(name.isalnum()) 
#输出
False          #字符串有空格
name = "mynameishuweiand22yearsold"
print(name.isalnum())
#输出
True           #字符串没有空格

12.isspace()

用法:如果 string 中只包含空格,则返回 True,否则返回 False

>>> age = ' age'
>>> age.isspace() 
False      #不是空格

>>> age = ' '
>>> age.isspace()
True  #是空格

13.isalpha()

用法:如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

name = "my name is {name} and {year} years old"
print(name.isalpha()) #判断只是字符
#输出
False

14.isdigit()

用法:如果 string 只包含数字则返回 True 否则返回 False.

name = "my11"
print(name.isdigit()) #判断只是数字
#输出
False

15.isidentifier()

用法:判断是不是一个合法的标识符

name = "my name is {name} and {year} years old"
print(name.isidentifier())
#输出
False

16.islower()

用法:如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

name = "my name is {name} and {year} years old"
print(name.islower()) #判断是不是全是小写
#输出
True

17.istitle()

用法:如果 string 是标题化的(见 title())则返回 True,否则返回 False

name = "my name is {name} and {year} years old"
print(name.istitle()) #判断只是首字母大写
#输出
False

18.isupper()

用法:如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

print("name.isupper:",name.isupper()) #判断是不是全是大写
#输出
False

19.string.join(seq)

用法:以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

print(",".join(['1','2','3','4'])) #把列表变成字符串
#输出
1,2,3,4

20.ljust()

用法:返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串

name = "my name is {name} and {year} years old"
print(name.ljust(50,"-")) #50个字符,不够50,字符在左边,右边使用-填充
#输出
my name is {name} and {year} years old------------

21.rjust()

用法:返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

name = "my name is huwei and 22 years old"
print(name.rjust(50,"-")) #50个字符,不够50,字符在右边,左边使用-填充
#输出
------------my name is huwei and 22 years old

22.lower()

用法:转换 string 中所有大写字符为小写

name = "MY NAME IS HUWEI AND 22 YEARS OLD"
print(name.lower()) #变小写
#输出
my name is huwei and 22 years old

23.upper()

用法:转换 string 中所有小写字符为

name = "my name is huwei and 22 years old"
print(name.upper()) #变大写
#输出
MY NAME IS HUWEI AND 22 YEARS OLD

24.lstrip()

用法:截掉 string 左边的空格

print('\nhuwei'.lstrip()) #去掉左边的回车、空格
#输出
huwei

25.rstrip()

用法:截掉 string 右边的空格

print('huwei\n'.rstrip()) #去掉右边的回车、空格
#输出
huwei

26.strip()

用法:截掉 string 两边的空格

print('\nhuwei\n'.strip()) #去掉两边的回车、空格
#输出
huwei

27.replace(old,new,max)

用法:把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次

print("Hue wei.replace:",'Hue Wei'.replace('e','E',1))
#输出
HuE Wei

28.split(str)

用法:通过指定分隔符str对字符串进行切片,返回分割后的字符串列表

name = "my name is huwei and 22 years old"
print(name.split()) #按照空格将字符隔开并转换成列表
#输出
['my', 'name', 'is', 'huwei', 'and', '22', 'years', 'old']

29.swapcase()

用法:翻转 string 中的大小写

name = "my nAme iS Huwei and 22 yeARs old"
print(name.swapcase())
#输出
MY NaME Is hUWEI AND 22 YEarS OLD

30.title()

用法:返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写

name = "my name is huwei and 22 years old"
print(name.title()) #首写字符变大写
#输出
My Name Is Huwei And 22 Years Old
posted @ 2017-07-27 11:30  Mr.hu  阅读(157)  评论(0)    收藏  举报