标签:选择 不可变 文字 开头 好久不见 nic 查找 string 区域
数据类型的分类
可变(不可哈希)的:list dict set
不可变(可哈希)的:str bool int tuple
? str[start : end : step]
? step步长默认为1
? start或者end不写的话默认为第一个值与最后一个值
s = "我爱Python"
s1 = s[:]
print(s1) #这是切片整个字符串,相当于是copy了
s2 = s[2:] #只写了开头没有写结尾,所以是从索引为2的字符开始到最后
print(s2)
s3 = s[:5] #这里只写了结尾没有写开头,所以是从第一个字符到索引为4的字符,注意:end这里是开区间,是取不到这个值的,只能取到5前面的数字即4
print(s3)
我爱Python
Python
我爱Pyt
易错点:python切片一定是从左往右走的,要让它从右往左走,step步长就要设置为负数
s = "987654321"
s1 = s[-1:-5] #这里是打不出来东西的,因为python默认步长是1,只能从左往右走。
print(s1)
s2 = s[-1:-5:-1] #要把步长设置为-1,才会倒着走!而且倒着只能走到索引为-4的字符这里
print(s2)
s3 = s[-5:-1] #这里走不到最后,怎么办呢
print(s3)
s4 = s[-5:] #直接用:表示最后
print(s4)
s5 = s[::-1] #倒序打印全部
print(s5)
1234
5432
54321
全部变大写--- .upper()
全部变小写--- .lower()
大小写转换--- .capitalize()
s = "Hello,I'm Faye!"
s1 = s.upper()
print(s1)
print(s)
HELLO,I'M FAYE!
Hello,I'm Faye!
不会对原字符串产生任何影响
P.S: 在做验证码的时候就可以用这个:
if your_code.upper() = code.upper()
以什么为开始--- .startswith()
以什么为结尾--- .endswith()
s = "欢迎来到Faye的博客"
print(s.startswith())
.replace() ---替换
s = "今天你学习了吗?今天你更博学了吗?今天你瘦了吗?"
s1 = s.replace("今天","昨天")
s2 = s.replace("今天","昨天",2) #可以选择替换几个,这里是2表示只替换前面两个
print(s)
print(s1)
print(s2)
今天你学习了吗?今天你更博学了吗?今天你瘦了吗?
昨天你学习了吗?昨天你更博学了吗?昨天你瘦了吗?
昨天你学习了吗?昨天你更博学了吗?今天你瘦了吗?
去除首尾的空白--- .strip()
去除左边的空白--- .lstrip()
去除右边的空白--- .rstrip()
空格、\t 、\n都属于空白
strip还能去掉首尾的指定字符,注意是首尾的!
s = "abc你好22abcPython520"
s1 = s.strip("5aonb20") #strip里的字符顺序不重要
print(s1)
c你好22abcPyth
split ---默认按照空格分隔,返回一个列表
s = "我 喜欢 Python"
s1 = s.split()
print(s)
print(s1)
我 喜欢 Python
['我', '喜欢', 'Python']
也可以指定字符串分隔
s = "我,一直,都,很喜欢,学习," #注意结尾有个“,” 分隔出来是空字符串
s1 = s.split(",")
s2 = s.split(",",2) #2表示就分隔前两个
print(s1)
print(s2)
['我', '一直', '都', '很喜欢', '学习', '']
['我', '一直', '都,很喜欢,学习,']
join ---联合字符串?返回一个字符串
s = "Faye"
s1 = "-".join(s)
print(s1)
s2 = "0.0"
s3 = s2.join(s)
print(s3)
F-a-y-e
F0.0a0.0y0.0e
如果是列表,列表内容只能是字符串,不能是数字,不能是布尔型
s = ['haha','你好',"好久不见"]
s1 = ",".join(s)
print(s1,type(s1))
haha,你好,好久不见 <class 'str'>
如果是数字或者布尔型则会报错.
count ---数出字符串某个字符出现的次数
s = "今天天气不错,希望天天都能有这样的天气"
s1 = s.count("天")
s2 = s.count("天气")
print(s1)
print(s2)
5
2
find ---查找字符串出现的索引
s = "哈嗝哈哈大家好,我在这里哈哈"
s1 = s.find("哈哈") #找到第一个出现的索引
print(s1)
s2 = s.find("不") #,如果找不到会返回-1
print(s2)
s3 = s.find("哈哈",10) #切片找,这里是从索引为10到最后
print(s3)
2
-1
12
is系列
isalnum() 字符串由字母或数字组成
isalpha() 字符串只由字母组成
注意:
s = "Faye123"
s1 = "哈哈哈"
print(s.isalnum())
print(s1.isalnum())
True
True
isdigit() 字符串只由数字组成
isdecimal() 字符串只由十进制的数字组成
isnumeric() 这个方法很神奇,能识别罗马数字、中文数字
num = "12①一Ⅰ"
print(num.isdigit())
print(num.isdecimal())
print(num.isnumeric())
False
False
True
isdecimal可以用于:
if s1.isdecimal():
s1 = int(s1)
else:
print("输入错误!请输入一个整数!")
注意:这三种方法都只是判断数字,不能有负号,不能有小数点。
num = "20.19"
print(num.isdigit())
print(num.isdecimal())
print(num.isnumeric())
False
False
False
那要是是小数或者是负号怎么判断,我写了一个函数,可能写得不够简单,请大家指教!
def fun(a):
flag = 1
a = str(a)
if a[0] == "-":
a = a.replace("-","0",1)
flag = 0
if a.isdecimal():
if flag == 1:
print("是正整数!")
else:
print("是负整数!")
elif a.count(".") == 1 and not a.startswith(".") and not a.endswith("."):
print("是小数")
else:
print("输入的不是数字!")
fun(23.4)
fun(-57.2)
fun(-12)
fun(2019)
是小数
是小数
是负整数!
是正整数!
in,not in
s = "好好学习,天天向上"
print("天天" in s)
print("天上" in s) #一定要是连续的字符串在里面才是True
print("天上" not in s)
True
False
True
列表里是以引号为单位的
s = ["你好","Python"]
print("Python" in s)
print("Py" in s)
True
False
len() ---计算字符串的长度
a = "哈hh哈哈 123,"
print(len(a))
10
不管中文还是英语还是数字还是空格还是标点,都是1个长度
标签:选择 不可变 文字 开头 好久不见 nic 查找 string 区域
原文地址:https://www.cnblogs.com/faye9898/p/FayeGu.html