Python字符串,,字符串:数据类型的分
Python字符串,,字符串:数据类型的分
字符串:
数据类型的分类
可变(不可哈希)的: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前面的数字即4print(s3)
我爱PythonPython我爱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)
1234543254321
常用方法
全部变大写--- .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-eF0.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)
52
find ---查找字符串出现的索引
s = "哈嗝哈哈大家好,我在这里哈哈"s1 = s.find("哈哈") #找到第一个出现的索引print(s1)s2 = s.find("不") #,如果找不到会返回-1print(s2)s3 = s.find("哈哈",10) #切片找,这里是从索引为10到最后print(s3)
2-112
is系列
isalnum() 字符串由字母或数字组成
isalpha() 字符串只由字母组成
注意:
对于unicode string,isalnum()和isalpha()会根据字符串中的字符是否属于Unicode编码的LETTER区域来判断是否都由字母组成。所以得出的结果为True,不一定表示只有26个英文字母。s = "Faye123"s1 = "哈哈哈"print(s.isalnum())print(s1.isalnum())
TrueTrue
isdigit() 字符串只由数字组成
isdecimal() 字符串只由十进制的数字组成
isnumeric() 这个方法很神奇,能识别罗马数字、中文数字
num = "12①一Ⅰ"print(num.isdigit())print(num.isdecimal())print(num.isnumeric())
FalseFalseTrue
isdecimal可以用于:
if s1.isdecimal(): s1 = int(s1) else: print("输入错误!请输入一个整数!")
注意:这三种方法都只是判断数字,不能有负号,不能有小数点。
num = "20.19"print(num.isdigit())print(num.isdecimal())print(num.isnumeric())
FalseFalseFalse
那要是是小数或者是负号怎么判断,我写了一个函数,可能写得不够简单,请大家指教!
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) #一定要是连续的字符串在里面才是Trueprint("天上" not in s)
TrueFalseTrue
列表里是以引号为单位的
s = ["你好","Python"]print("Python" in s)print("Py" in s)
TrueFalse
len() ---计算字符串的长度
a = "哈hh哈哈 123,"print(len(a))
10
不管中文还是英语还是数字还是空格还是标点,都是1个长度
Python字符串
相关内容
- python---选择排序,, 感觉没有简单多少
- python操作sql server数据库,,pyodbc库可用于
- Python常用中文字体对应名称,,Python常用中文
- python二维图像输出操作大全(非常全)!,,//2019.07.
- Python_re模块,,一、re简介 正则
- Python3 tkinter基础 Entry validatecommand 获取输入框的值,,
- [Python 多线程] 详解daemon属性值None,False,True的区别 (五
- python正则表达式re.match函数,,re.match 尝
- python基本语法,,近期,我会把pyth
- python序列类型包括哪三种,,python序列类型
评论关闭