python数据类型进阶——字符串及其内置方法

数据类型进阶(一)

数据类型包括:

  1. 数值类型:int、float、bool——》存储一个数值的数据类型
  2. 序列类型:str、list、tuple——》存储多个数据的数据类型
  3. 散列类型:无序、内部元素不重复

2.1 序列类型

一块可以存放多个值的连续的内存空间,这些值按照一定的顺序排列,可以通过每个值所在位置的编号(称之为索引)访问它们。
从左到右序列索引是从0开始 正索引值
从右到左序列索引是从-1开始 负索引值

s = "CSDN博客论坛"
print(s[0] == s[-8])
print(s[7] == s[-1])
#结果
True
True

2.2 可变类型和不可变类型

不可变类型:数字、字符串、元组
可变类型:列表、字典、集合
概念:
可变:值在发生改变时,内存地址不变,即id不变,证明在改变原来的值
不可变:值在发生改变时,内存地址也发生改变,即id也变,证明是乜有在改变原来的值,是产生了一个新的值

2.3 字符串

2.3.1 内置功能

语法:
字符串.方法名()

2.3.1.1 find()

范围性查找子串,返回索引值,没有则返回-1
语法:

s.find(str,begin=0,end=len(string))
#str——》指定检索的字符串
#beg——》开始索引,默认为0
#end——》结束索引,默认为字符串的长度

s = "hello,world"
print(s.find("h"))  # h的索引值为0
print(s.find("world"))  # 找到world则返回首个字符的索引
print(s.find("worldd"))  # 找不到就返回-1

s = "python,helloworld,java,php"
print(s.find("h"))  # 返回的是首个h的索引值  3
print(s.find("h",4))  # 从下标4开始找  7
print(s.rfind("h"))  # rfind从后往前找
2.3.1.2 index()

检测字符串中是否包含子字符串了,如果指定beg(开始)和end(结束)范围,则检查是否包含在指定范围内,和find一样,只不过子字符串不在字符串中会报异常

s = "python,helloworld,java,php"
print(s.index('world'))  # 12
print(s.index('worldd'))  # 找不到就报错
2.3.1.3 count()
返回找到的字符串的个数,没有就返回0
s = "python,helloworld,java,php"
print(s.count("h"))  # 3
2.3.1.4 strip()

去除字符串两边的空格、换行符、制表符,得到一个新的字符串

a = input("请输入:")
data = a.strip()    #去除a字符串两边的空格、换行符、制表符
if data =='abcd':
    print("正确")
else:
    print("错误")
###
结果:
请输入:      abcd
正确
2.3.1.5 startwith()、endswith()

判断字符串是否以指定字符开头、结尾,返回的结果是bool

startwith()#判断字符串是否以xx开头,得到一个布尔值
aa='西瓜'
print(aa.startswith('西'))
## True

endswith()#判断字符串是否以xx结尾,得到一个布尔值
aa = '苹果'
print(aa.endswith("果"))
##True

2.3.1.6 isdigit()

判断字符串是否以整数组成,返回的结果为bool

num1 = input("请输入值:")
num2 = input("请输入值:")
if num1.isdigit() and num2.isdigit():     #判断num1 num2 是否以整数组成
    data = int(num1)+int(num2)
    print(data)
else:
    print("请输入正确的数字")
2.3.1.7 lower()、upper()

字符串变大写\小写,得到的是一个新的字符串

#upper()——》转大写
#lower()——》转小写

s = "a"
s1 = s.upper()
print(s1)
s2 = s1.lower()
print(s2)
2.3.1.8 split()

切分字符串,默认以一个或者一个以上的空格(\t或者\n)切分,也可以指定字符切分
切完之后是字符串类型转列表类型

s = 'Wellcome to CSDN'
print(s.split())
s = "python,helloworld,java,php"
print(s.split(","))
##结果
['Wellcome', 'to', 'CSDN']
['python', 'helloworld', 'java', 'php']
2.3.1.9 replace()

字符串内容替换,得到一个新的字符串
两个参数,第一个参数是原来的字符,第二个是要替换的字符

content = input("请输入评论信息:")
content1 = content.replace("草","*")  把‘草’替换成‘*print(content1)
##结果
请输入评论信息:草长头上了
*长头上了
2.3.1.10 join()

用于将序列中的元素以指定的字符连接生成一个新的字符串
常用于列表类型转为字符串

arr = ["Wellcome","to","CSDN"]
print("".join(arr))  #无字符连接
print("-".join(arr))  #用—连接字符
##结果
WellcometoCSDN
Wellcome-to-CSDN

2.3.2 字符串的公共功能

2.3.2.1 正向取(从左往右)、反向取(从右往左、负号)
s = 'hello python'  
# 正向取
print(s[0])  # h
print(s[5])  # 空格
# 反向取
print(s[-4])  # t

正着数从0算,倒着数从-1算,如果超出了 报错 下标越界

扩展:len()——》求长度
s = 'hello python'
print(len(s))  # 12
print(s[len(s)-1]) # 字符串的最后一个n(len(s)是长度 长度-1反正字符串的下标位置取值)  # n
print(s[-len(s)])  # 字符串的第一个值 h
2.3.2.2 切片(顾头不顾尾,步长)

顾头不顾尾:取出索引为0到8的所有字符

s = 'hello python'
print(s[0:9])  # hello pyt
print(s[:9])  # 开始的下标不写的话默认为0  hello pyt
print(s[:])  # 从头到尾  hello python

步长:0:9:2 第三个参数2代表步长,会从下标0开始,每次累加一个2即可,所以会取出索引0 2 4 6 8 的字符

s = 'hello python'
print(s[0:9:2])  # hlopt
反向切片
print(s[::-1])  # 从右到左反向取值 步长为-1就是从右到左,首尾不给值就是所有的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值