python基本数据类型之字符串(四)

判断方法

python中有一类用来判断字符串形式的方法,该类方法有两个特点:(1)方法名都是is开头(除了startswith和endswith);(2)返回值都是bool类型(True\False)。

方法包括:startswith\endswith、isalnum\isalpha、isdecimal\isdigit\isnumeric、isidentifier、isprintable、isspace

1、startswith、endswith

这两个方法是用来判断字符串是否是以某个子串开头或结尾。这两个方法都有3个参数(prefix, start=None, end=None),prefix是要查找的子串,start和end参数用来指定查找的起始和结束位置。prefix还可以是一个有子串组成的tuple。

s = 'appGojoendkfengap'
v = s.startswith('joe', 5, 8)
print(v)

打印结果:True

当传入元组作为参数时,只要其中包含开头的子串,就会返回True。

s = 'appGojoendkfengap'
v = s.endswith(('joe', 'ap', 'ha'))
print(v)

打印结果:True

2、isalnum、isalpha

isalnum方法是判断字符串中是否仅包含语言字符(无论是英文还是其他语言)和数字;isalpha用来判断字符串中是否仅包含语言字符。

s = 'ni哈喽123'
v = s.isalnum()
v1 = s.isalpha()
print(v)
print(v1)

打印结果:

True
True

当字符串中包含除了语言字符和数字之外的字符时,isalpha和isalnum都会返回False。

s1 = '*haoe$$'
v2 = s1.isalpha()
print(v2)

打印结果: False

3、isdecimal、isdigit、isnumeric

这三个方法用来判断字符串是否仅包含数字,但三个方法所能判断的范围不同。在python中可能被识别为数字的字符包括3种:纯阿拉伯数字(如'2');语言中的数字(如'二');特殊的数字符号(如'②'),对于这三种数字字符的判断结果如下所示:

s1 = '2'
s2 = '二'
s3 = '②' v1_1 = str(s1.isdecimal())
v1_2 = str(s2.isdecimal())
v1_3 = str(s3.isdecimal()) print('isdecimal的判断结果为:', '2:' + v1_1, '二:' + v1_2, '②:' + v1_3) v1_1 = str(s1.isdigit())
v1_2 = str(s2.isdigit())
v1_3 = str(s3.isdigit()) print('isdigit的判断结果为:', '2:' + v1_1, '二:' + v1_2, '②:' + v1_3) v1_1 = str(s1.isnumeric())
v1_2 = str(s2.isnumeric())
v1_3 = str(s3.isnumeric()) print('isnumeric的判断结果为:', '2:' + v1_1, '二:' + v1_2, '②:' + v1_3)

输出结果为:

isdecimal的判断结果为: 2:True 二:False ②:False
isdigit的判断结果为: 2:True 二:False ②:True
isnumeric的判断结果为: 2:True 二:True ②:True

isnumeric可以将3种数字字符都识别出来;isdigit可以识别出阿拉伯数字和特殊字符,但是识别不出语言中表示数字的字符;isdecimal仅能识别出阿拉伯数字。因此三个方法的判断范围:isnumeric>isdigit>isdecimal。

在实际的编程应用中,最常用的是isdigit,如果要对文本进行章节划分,则要使用isnumeric来识别其他语言的字符。

对于英文语言中代表数字的单词,3种方法都会返回False。

s4 = 'two'
v1_1 = str(s4.isdecimal())
v1_2 = str(s4.isdigit())
v1_3 = str(s4.isnumeric())
print('对于英文单词,三种方法的识别结果为:','isdecimal:' + v1_1, 'isdigit:' + v1_2, 'isnumeric:' + v1_3)

打印结果:

对于英文单词,三种方法的识别结果为: isdecimal:False isdigit:False isnumeric:False

4、isidentifier

该方法用来判断某个字符串是否是合法的标识符。

s  = '123hallo'
v = s.isidentifier()
print(v) s1 = 'fhe_fj'
v1 = s1.isidentifier()
print(v1)

打印结果:

False
True

5、isprintable

该方法用来判断所输入的字符串是否能够全部被打印出来。如果字符串中包含不能被打印的字符(如'\t'、'\n'等转义字符),该方法会返回False。

s = 'ahou'
v = s.isprintable()
print(v) s1 = 'haloua\n'
v1 = s1.isprintable()
print(v1)

打印结果:

True
False

6、isspace

该方法是来判断该字符串是否仅含有空格。如果字符串中仅包含空格,那么该方法就会返回True。

s = ' hah ooo '
v = s.isspace()
print(v) s1 = ' '
v1 = s1.isspace()
print(v1)

打印结果:

False
True

需要注意的是,该方法也会对空字符串返回False。因此该方法只能判断字符串中是否仅包含空格。

s2 = ''
v2 = s2.isspace()
print(v2)

打印结果:True

python基本数据类型之字符串(四)的更多相关文章

  1. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

  2. python基本数据类型之字符串(五)

    python基本数据类型之字符串(五) 遍历与查找 python中的字符串属于可迭代对象,通过一些方法可以遍历字符串中的每一个字符.而查找的方法主要有两个:find与index. 1.字符串的遍历 字 ...

  3. python基本数据类型之字符串(三)

    python基本数据类型之字符串(三) 转换和判断方法 在python中,有一些内置方法可以将字符串转化特定形式,而与之对应的一些方法可以判断字符串是否符合某些形式.因此,在这篇文章中,笔者把转换方法 ...

  4. python基本数据类型之字符串(二)

    python基本数据类型之字符串(二) 替换方法 python中字符串的替换方法主要有:center.rjust\ljust.expandtabs.format\format_map(格式化).str ...

  5. python自学笔记(二)python基本数据类型之字符串处理

    一.数据类型的组成分3部分:身份.类型.值 身份:id方法来看它的唯一标识符,内存地址靠这个查看 类型:type方法查看 值:数据项 二.常用基本数据类型 int 整型 boolean 布尔型 str ...

  6. Python基本数据类型之字符串、数字、布尔

     一.数据类型种类 Python中基本数据类型主要有以下几类: Number(数字) String(字符串) Bool (布尔) List(列表) Tuple(元组) Sets(集合) Diction ...

  7. Python基础 数据类型 (字符串、列表、字典、元组、集合、堆、栈、树)

    数据类型有整型.布尔.字符串.列表.字典.元组.集合.堆.栈和树. 1.整型: 整型就是数字 数字表示 python2 64位机器,范围-2^63~2^63-1 超出上述范围,python自动转化为l ...

  8. Python基础数据类型str字符串

    3.3字符串str ' ' 0 切片选取 [x:y] 左闭右开区间 [x:y:z] 选取x到y之间 每隔z选取一次(选取x,x+z,....) z为正 索引位置:x在y的左边 z为负 索引位置:x在y ...

  9. Python - 基本数据类型_str 字符串

    前言 字符串是编程中最重要的数据类型,也是最常见的 字符串的表示方式 单引号 ' ' 双引号 " " 多引号 """ ""&quo ...

随机推荐

  1. shell脚本(一)

     shell脚本(一) 定义:脚本就是一条条命令的堆积.常见脚本有:js asp,jsp,php,python Shell特点:简单易用高效 Shell分类:图形界面(gui shell) 命令行界面 ...

  2. volatile适用场景之二

    1.volatile最适用一个线程写,多个线程读的场合. 如果有多个线程并发写操作,仍然需要使用锁或者线程安全的容器或者原子变量来代替.(摘自Netty权威指南) 疑问:如果只是赋值的原子操作,是否可 ...

  3. rpc调用过程

    在openstack中,各个组件之间的调用遵循RESTful风格,而组件内部各服务之间的相互调用采用rpc远程调用,比如nova-conductor和nova-compute rpc原理: 首先了解什 ...

  4. 学习excel的使用技巧四显示正常的数字

    记得之前在excel中输入一些数字比如输入手机号 就会变成1.E几类似这种 那么怎样显示正常的数字呢 先选中要操作的输入框 1  找到 数字 这个功能的地方 2 设置为 数值  并且小数点为0 3  ...

  5. CSS: pseudo-classes and pseudo-elements

    1.Definition: pseudo-classes The pseudo-class concept is introduced to permit selection based on inf ...

  6. 自动滚动标签marquee

    <marquee>标签,它是成对出现的标签,首标签<marquee>和尾标签</marquee>之间的内容就是滚动内容.<marquee>标签的属性主要 ...

  7. Python爬虫中文小说网点查找小说并且保存到txt(含中文乱码处理方法)

    从某些网站看小说的时候经常出现垃圾广告,一气之下写个爬虫,把小说链接抓取下来保存到txt,用requests_html全部搞定,代码简单,容易上手. 中间遇到最大的问题就是编码问题,第一抓取下来的小说 ...

  8. 2019.3.28 S21 day02pyth笔记总结

    昨日内容补充: 1.字符串:'中国'    'Hello' 字符:中是一个字符,e是一个字符 字节:中是3个字节,e是1个字节 位:01010101是8位,其中0或1分别是1位 unicode用于内存 ...

  9. “AS3.0高级动画编程”学习:第四章 寻路(AStar/A星/A*)算法 (下)

    在前一部分的最后,我们给出了一个寻路的示例,在大多数情况下,运行还算良好,但是有一个小问题,如下图: 很明显,障碍物已经把路堵死了,但是小球仍然穿过对角线跑了出来! 问题在哪里:我们先回顾一下ASta ...

  10. python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )

    1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...