字符串是什么呢?
说的直白点就是多个字符组合在一起就是字符串,它是由数字、字母、下划线组成的一串字符。在程序设计中,字符(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。但是,字符串跟字符还是有区别的(下节专门开一节区别)。
单引、双引号都可以定义字符串, 三引号允许一个字符串跨多行
Eg:
print('''hello
world\v
end\t''')
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。创建字符串很简单,只要为变量分配一个值即可。Eg:
var1 = 'Hello World!'
var2 = "Runoob"
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。Python 访问子字符串,可以使用方括号来截取字符串。
Eg:
var1 = 'Hello World!'
var2 = "Runoob"
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])
结果:var1[0]: H
var2[1:5]: unoo
那么'[:]'这代表了什么?
这叫切片字符串,可以使用中括号和下标来获取单个字符,或截取字符串:
示例展示:
结果展示:
由此可见他是按照从左往右的顺序走,根据自身定义来截取。特例:如果前面大于后面,则什么都不输出,其中最后一个参数代表步长。
另外字符串还有跟循环用在一起的例子:
in:判断是否在些字符串中存在 :如果用户设计一个登陆网站的项目,给定一组的用户和密码,那么你就需要用in来判断是否存在 ,存在才能执行下面语句,否则直接跳出循环。它的相反则是not in
not in:判断是否不在此字符串中
r/R:原样输出字符串,如一些特殊字符串"\n",'\t' EG:
mystr1=r'''abc"\<h1>'</h1>'''
print(mystr1)
那么会得到这样的结果:abc"\<h1>'</h1>
字符串中有格式化,分为四种:1、%s格式化字符串 2、%d 格式化整数 3、%f 浮点数 4、.format()格式化
username="张三"
age=21
print("我的姓名:%s,年龄:%d"%(username,age))
print("我的姓名{0},年龄:{1}".format(username,age))
print("我的姓名:{name},年龄:{age}".format(name=username,age=age))
print('aaa{{}}'.format("abc"))
结果为:我的姓名:张三,年龄:21
我的姓名张三,年龄:21
我的姓名:张三,年龄:21
aaa{}
在字符串中还会有类型转换因为有浮点型还有整型等
以下是字符串的一些函数:
|
序号 | 方法及描述 |
---|
1 | capitalize() 将字符串的第一个字符转换为大写 | 2 | center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 | 3 | count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 | 4 | bytes.decode(encoding="utf-8", errors="strict") Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 | 5 | encode(encoding='UTF-8',errors='strict') 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' | 6 | endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. | 7 | expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。 | 8 | find(str, beg=0 end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 | 9 | index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常. | 10 | isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False | 11 | isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False | 12 | isdigit() 如果字符串只包含数字则返回 True 否则返回 False.. | 13 | islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False | 14 | isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False | 15 | isspace() 如果字符串中只包含空白,则返回 True,否则返回 False. | 16 | istitle() 如果字符串是标题化的(见 title())则返回 True,否则返回 False | 17 | isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False | 18 | join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 | 19 | len(string) 返回字符串长度 | 20 | ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 | 21 | lower() 转换字符串中所有大写字符为小写. | 22 | lstrip() 截掉字符串左边的空格或指定字符。 | 23 | maketrans() 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 | 24 | max(str) 返回字符串 str 中最大的字母。 | 25 | min(str) 返回字符串 str 中最小的字母。 | 26 | replace(old, new [, max]) 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。 | 27 | rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找. | 28 | rindex( str, beg=0, end=len(string)) 类似于 index(),不过是从右边开始. | 29 | rjust(width,[, fillchar]) 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 | 30 | rstrip() 删除字符串字符串末尾的空格. | 31 | split(str="", num=string.count(str)) num=string.count(str))以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串 | 32 | splitlines([keepends]) 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 | 33 | startswith(str, beg=0,end=len(string)) 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 | 34 | strip([chars]) 在字符串上执行 lstrip()和 rstrip() | 35 | swapcase() 将字符串中大写转换为小写,小写转换为大写 | 36 | title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) | 37 | translate(table, deletechars="") 根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 deletechars 参数中 | 38 | upper() 转换字符串中的小写字母为大写 | 39 | zfill (width) 返回长度为 width 的字符串,原字符串右对齐,前面填充0 | 40 | isdecimal() 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。 |
|
---|
| |
|
|
范例:
mystr="abcdef123abc"
substr = "abc1"
mystr2="my name is niuke"
print(mystr2.capitalize())
print(mystr2)
print(mystr2.title())
My name is niuke
my name is niuke
My Name Is Niuke
find() vs index():如果找不到,index()产生异常,find()则返回-1:(还是借用上面的代码)
mystr="abcdef123abc"
substr = "abc1"
mystr2="my name is niuke"
print(mystr2.capitalize())
print(mystr2)
print(mystr2.title())
print(mystr.index(substr))
My name is niuke
Traceback (most recent call last):
my name is niuke
My Name Is Niuke
File "D:/python/py1/通讯录.py", line 70, in <module>
print(mystr.index(substr))
ValueError: substring not found
Process finished with exit code 1