(小甲鱼python)字符串系列笔记合集三 第三课、字符串III总结 判断字符串参数是否出现在字符串起始/结束位置 字符串中字母大小变换 否都是大写字母 只由字母组成 空字符串 所有字符都是可打印的

一、字符串III总结

1.判断字符串参数是否出现在字符串起始位置

startswith(prefix[,start[,end]])

开始位置

>>> x="我爱python"
>>> x.startswith("我")
True
>>> x.startswith("小甲鱼")
False

下标索引从1开始找

>>> x.startswith("我",1)
False
>>> x.startswith("爱",1)
True

在元祖(“你”,“我”,“她”)里面找

>>> x="她爱python"
>>> if x.startswith(("你","我","她")):
	print("总有人喜爱python")

总有人喜爱python

2.判断参数指定的字符串是否出现在字符串结束位置

endswith(suffix[,start[,end]])

下标索引从0到4

>>> x="我爱python"
>>> x.endswith("py",0,4)
True
>>> x.endswith("python")
True

3.字符串中字母大小变换
3.1判断字符串中所有单词是否都是大写字母开头

x.istitle()

>>> x="I love Python"
>>> x.istitle()
False
>>> x="I Love Python"
>>> x.istitle()
True
>>> x="I love Python"
>>> x.istitle()
False

3.2判断所有字母是否都是大写字母

x.isupper 判断所有字母是否都是大写字母
x.upper() 将字符串中所有元素全都改为大写
x.lower() 将字符串中所有元素全都改为小写

>>> x="I love Python"
>>> x.isupper()
False
>>> x.upper().isupper()   #先将字符串全都改为大写再判断
True

4.判断字符串中是否只由字母组成

x.isalpha()

>>> x="I love Python"
>>> x.isalpha()            #中间不能有空格
False
>>> "ILovePython".isalpha()
True

5.判断字符串是否为空字符串

“字符串”.isspace()

>>> "        \n".isspace()
True

6.判断一个字符串中是否所有字符都是可打印的

x.isprintable ()

x="I love Python"
>>> x.isprintable ()
True
>>> "I Iove Fishc\n".isprintable()  # /n不是一个可转义字符
False
>>> "I love FishC\s".isprintable()
True

7.字符串是数字时判断字符串

x.isdecimal()
x.isdigit()
x.isnumeric()

>>> x="12345"
>>> x.isdecimal()
True
>>> x.isdigit()
True
>>> x.isnumeric()
True
>>> x="12345"
>>> x="2²"
>>> x.isdecimal ()
False
>>> x.isdigit()
True
>>> x.isnumeric()
True
>>> x="Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ"
>>> x.isdecimal()
False
>>> x.isdigit()
False
>>> x.isnumeric()
False
>>> x="一二三四五"
>>> x.isdecimal()
False
>>> x.isdigit()
False
>>> x.isnumeric()
True

8.判断字符串是否是一个合法的标识符

“字符串”.isidentifier()

>>> "I am a good gay".isidentifier()  #字符串之间不能有空格
False
>>> "I_am_a_good_gay".isidentifier()
True
>>> "Fishc520".isidentifier()
True
>>> "520Fishc".isidentifier()    #标识符由字母或者下划线开头
False
>>> "一二三木头人".isidentifier()
True

9.判断字符串是否为保留标识符(if for while)
keyword模块的iskeyword()

keyword.iskeyword()

>>> import keyword
>>> keyword.iskeyword("if")
True
>>> keyword.iskeyword("py")
False
>>> x="I Love Python"

课后题:
1. 请问下面代码执行的结果是?

>>> x = "我爱Pyhon"
>>> x.startswith(["你", "我", "她"])

答:会报错
解析:startswith(prefix[, start[, end]]) 方法的 prefix 参数支持字符串或者元组(如果是提供多个备选字符串,那么使用元组包裹)。
2. 请问下面代码执行的结果是?

>>> "I love FishC\s".isprintable()

答:True。
解析:你一定以为 \s 是一个转义字符,所以应该打印 False 对不对?上当啦,\s 不是转义字符~
3. isdecimal()、isdigit() 和 isnumeric() 这 3 个方法都是判断数字的,那么请问这其中哪一个方法 “最严格”,哪一个又是 “最宽松” 的呢?
答:isdecimal() 方法是最严格的,只有真正意义上的数字才能得到 True;isnumeric() 方法是最宽松的,罗马数字、中文数字都不在话下。
解析:一般都是用于判断输入是否合法,能否进行下一步的运算,所以 isdecimal() 方法最严谨,使用的频率也相对会更多一些。
4.请问下面代码执行的结果是?

>>> "一二三四五上山打老虎".isalnum()

答:True。
解析:isalnum() 方法则是集大成者,只要 isalpha()、isdecimal()、isdigit() 或者 isnumeric() 任意一个方法返回 True,结果都为 True。

>>> "一二三四五上山打老虎".isdecimal()
False
>>> "一二三四五上山打老虎".isdigit()
False
>>> "一二三四五上山打老虎".isnumeric()
False

三个判断数字的肯定是没戏,那我们试试判断字母的方法:

>>> "一二三四五上山打老虎".isalpha()
True

这是因为 isalpha() 方法判断的 “字母” 是 Unicode 编码中定义的字母,不止是 26 个英文字母哈
5. 请问下面代码执行的结果是?

>>> "一二三木头人".isidentifier()

答:True。
解析:由于对 Unicode 编码的支持,Python 是可以使用中文作为合法标识符的。
题目来自链接: 小甲鱼python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值