《“Python”学习手册》_08_面向过程_数据类型之字符串类型(string)

数据类型之字符串类型(string)


字符串分两个部分:字符(char)和字符串(string),字符是字符串的更小单位。字符串这种类型的存在就是为了处理人们在表达除数字之外,比如语言、文字、符号和词语的内容而载入到内存中。字符串并不是像数字(数值)一样,可以由计算机非常方便的转换(因为数字跟计算机的二进制比较接近),因此我们前面提到过的ASCII和Unicode编码就是把上述内容对应编码方便计算机记录、查找和操作。

所谓字符串:以单引号或者双引号括起来的任意文本,把用单引号或者双引号包裹起来的字面量称作字符串或者字符。

在前面我们见到过:

' ' :单引号的表示

" " :双引号的表示

""" """ :三引号的表示

\t :转义字符

b'xb00' :二进制的表示

等等。

这些都是字符或字符串的表示方式。

另外,还有一种更加高级的字符串处理方式:“正则表达式”,在后面会有讲述。

=============================================================================

小贴士:

字面量:所谓字面量(literal)是和变量相对应的。比如x = 'ABC',其中'ABC'就是字面量,x叫做变量。字面量就是指的这个量本身。

=============================================================================

第一部分:字符串的简单应用

1. 创建字符串

我们创建字符串是和前面的定义一样。通过双引号和单引号进行创建。、

..........................................................................................................................................

str1 = “Thomas is my name”

str2 = 'My name is Thomas'

...........................................................................................................................................

这样就创建了一个字符串。

2. 转换成字符串

我们在前面学过将一个数字转换成为字符串。我们也是可以通过转换函数进行字符的创建。

3. 字符串的运算(字符串的拼接和字符串的重复操作)

字符串并不是像数字一样存在加减乘除的运算。所谓字符串的运算就是对字符串进行拼接和重复的操作。

4. 字符串大小比较

字符串大小的比较和数字类型的大小比较是不同的。字符串大小是不能直接比较的,字符串的比较其实质是字符串对应多的ASCII码或Unicode码之间比较,另外字符串的比较是有一定的规则:

规则1:从第一个字符开始比较大小,谁的ASCII码数字大谁就打。

规则2:如果相等会比较下一个字符的ASCII码,谁的数字大谁就打。

规则3:返回结果和数字类型的结果一样,相同返回True,不相同放回False

5. 字符串的查找(访问)

字符串的查找是通过下标的方式进行查找的。

下标的格式为:[ ] ([start]:[end]:[step])

下标的值可以为正也可以为负,如果为负数那么表示为从右向左进行查找。

其中用冒号进行分割,下标是从0开始。

=============================================================================

小贴士:

有一个笑话:程序员属羊总会少一只,因为几乎所有的计算机语言计数都是从0开始的。在字符串中,0表示字符串的第一个字符位置。另外,如果有空格或者其他字符也算一个位置。

=============================================================================

6. 判断某个字符是否是字符串的一部分。

这里就用到了2个成员运算符和2个身份运算符,他们分别是:

   符号:"in"、"not in" 和 "is"、"is not"

   成员运算符:判断左边的成员是否属于右边的集合,如果是返回为True;如果非,返回为False。相反的是not in,如果是返回为False,如果非返回为True。

  身份运算符:判断左边的成员是否和右边成员相等,如果是返回为True;如果非,返回为False。相反的是is not,如果是返回为False,如果非返回为True。

第二部分:字符串常用的内建函数

内建函数通常是可是实现字符串的“增删改查”。"增删改查"是对数据类型常用的四类

操作方式,后面我们会学到列表、字典等数据类型,也要学会他们对应的这四种操作方式。

=============================================================================

小贴士:

内建函数也叫:bult-in函数。是和外建函数对应的概念。也就是语言本身自有或者"出厂时"自带的函数,通常是不允许修改的。

=============================================================================

1. eval

函数:eval。

用法:这个函数在前面学到过,复习一下。

2. len

函数:len

语法:len(string)

用法:返回字符串的长度,一般用于查找字符串的循环中

3. lower、upper

函数:lower、upper

语法:lower(string)、upper(string)

用法:将字符串中的大写字母转换为小写字母,中文不变;将字符串中的小写字母转换成大写字母,中文不变。

4. swapace

函数:swapace

语法:swapace(string)

用法:字符串大小写的互相转换,将大写字母转换成小写字母,将小写字母转换成大写字母。

5. capitalize、tile

函数:capitalize、title

语法:capitalize(string)、title(string)

用法:将字符串中的首句首字母大写,其他字母位置转换成小写;将每个单词(或者字母)第一个单词大写。

6. center

函数:center

语法:center(self,width,fillchar)  fillchar = character

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

7. ljust、rjust

函数:ljust、rjust

语法:ljust(width, fillchar) fillchar = character、rjust(width,fillchar) fillchar = character

用法:l=left,返回一个指定宽度的左对齐字符串,fillchar为填充字符,默认为空格。

   r=right,返回一个指定宽度的右对齐字符串,fillchar为填充字符,默认为空格。

8. zfill

函数:zfill

语法:zfill(width)

用法:z = zero,返回一个长度为width的字符串,元字符右对齐,左侧填充0。

9. count

函数:count

语法:count(str,[,start] [,end])

用法:返回字符串中str出现的次数,可以指定一个start和end字符串中的范围,默认从头到尾。

10. find、rfind

函数:find、rfind

语法:find(str, [,start] [,end])、rfind(str, [,start] [,end])

用法:从左向右,检测str字符串是否在包含的字符串中,可以指定范围,默认从头到尾。得到的是第一次出现的开始下标,只不过如果str不存的,返回为-1。

  从右向左,检测str字符串是否在包含的字符串中,可以指定范围,默认从尾到头。得到的是第一次出现的开始下标,只不过如果str不存的,返回为-1。

11. index、rindex

函数:index、rindex

语法:index(str,, [,start] [,end])、rindex(str,, [,start] [,end])

用法:用法与find和rfind一样,但是如果str不存的话,会报告一个异常。

12. operator.eq

函数:operator.eq(cmp)

语法:operator.eq(str1, str2)

用法:比较两个字符串的大小,在Python3中,原先的cmp函数比较字符大小的方式被取代,调用operator库的方式来比较两个字符串的大小。

13. lstrip、rstrip、strip

函数:lstrip、rstrip、strip

语法:lstrip(char)、rstrip(char)、strip(char)

用法:高级切片功能。从左侧开始截取指定的字符、从右侧开始截取指定的字符、从任意位置截取指定的字符(默认为空格,包括换行符\n,也包括制表符\t等)。

14. join

函数:join

语法:"(拼接内容)".join([拼接变量A,拼接变量B])

用法:字符串拼接函数

15. startswith、endswith

函数:startswith、endswith

语法:startswith(str [,start] [,end])、endswith(str [,start]  [,end])

用法:判断以什么字符串(字符)作为开头、判断以什么字符串(字符)作为结尾。

17. expandtabs

函数:expandtabs

语法:expandtabs(tabsize = 10)

用法:与\t结合使用,在字符串中\t的位置加入空格。

18. replace

函数:replace

语法:replace(“被替换”,“替换内容”)

用法:用一个字符串(字符)去替换字符串(字符)当中的内容。

19. split、rsplit

函数:split、rsplit

语法:split("", section) section = 0、split("", section) section = 0

用法:按照什么分割, 按照第几次出现分割字符的位置开始分割,section=分割成次数、从右侧开始按照什么分割, 按照第几次出现分割字符的位置开始分割,section=分割成次数。

20. is... 几种判断字符串的函数(返回的都是True和False两种结果)

在Python中有非常多is打头的函数,基本上都是用来判断是否为真或者假的一种判断函数,在这里也要学会举一反三。

20.1 isnumeric、isalpha、isalnum

函数:isnumeric、isalpha、isalnum

语法:isnumeric(str)、isalpha(str)、isalum(str)

用法:判断是否是包含或全包含数字,是返回为真,否则为假。

      判断是否是包含或者全包含字母,是返回为真,否则为假。

         拆分:is alpha number,如果字符串中包含或全包含字母、数字、中文返回为真,否则返回为假。其他诸如里面有空格或者其他字符,返回都为假。

20.2 isdecimal

函数:isdecimal

语法:isdecimal(str)

用法:判断字符串中是否是一个十进制数

20.3 isdigit

函数:isdigit

语法:isdigit(str)

用法:判断字符串中是否是一个数字(必须是数字,和isnumeric用法一样)

20.4 islower、isupper

函数:islower、isupper

语法:islower(str)、isupper(str)

用法:判断字符串中是否都是小写(忽略里面有空格情况);判断字符串中是否都是大写(忽略里面有空格情况)

20.5 isspace

函数:isspace

语法:isspace(str)

用法:判断字符串是否是一个只包含空格的字符串,如果里面存在字符返回为假,否则为真。

20.6 istitle

函数:istitle

语法:istitle(str)

用法:判断字符串中是否每个单词都是大写,如果是返回为真,否则为假。

20.7 isinstance

 函数:isinstance

语法:isinstance(object, (classinfo1,classinfo2,classinfon))

用法:判断一个对象是否是已知的类型,类似于type()。其中object---实例对象;classinfo---可以是直接或者间接类名、基本类型或者有他们组成的元组。如果object判断为真,返回为True,如果object判断为假,返回为False。其中classinfo可以是一个单独进行判断,如果是多个表示object的类型是括号里面的其中一个(用括号括起来是表示由classinfo组成的元组)。

=============================================================================

小贴士:

isinstance和type的区别:

1.type可以只接受一个参数,打印位置所属的类型;isinstance只能判断是否属于某个已知类型(已知和未知的区别)

2.isinstance可以判断子类对象是否继承父类;而type不可以(高级内容,后面教程)

=============================================================================

20.8 isatty

函数:isatty

语法:isatty()

用法:返回是否是一个终端设备(不常用)

举例:略

第三部分:字符串的映射

字符串还可以通过映射的方式进行修改。

1. makestrans、translate 

函数:maketrans  translate

语法:str.maketrans  str.translate

用法:创建表字符串映射转换表(不常用)

  str.maketrans(x:intab , y:outtab, z:delchars)   

  inttab -- 字符串中要替代的字符组成的字符串。

  outtab -- 相应的映射字符的字符串

  delchars -- 可选参数,表示要删除的字符组成的字符串(Python3有,Python2没有)

  str.translate(self, table:dict[int,Any])

前言


第一部分:

Python



..........................................................................................................................................

int add(int a, int b)

...........................................................................................................................................


=============================================================================

小贴士:11111111111111111111111111111111111111111111111111111111111111111111111111111

=============================================================================

你可能感兴趣的:(《“Python”学习手册》_08_面向过程_数据类型之字符串类型(string))