一、字符串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