python数据类型进阶一

数据类型进阶

python的数据类型可以分为三类:数值类型,序列类型,散列类型

数值类型:int , float , bool

2.1 序列类型

元素1  元素2   元素3  元素4 元素。。。。 元素n
 0      1      2       3    4         n-1
-n

# 元素下面的是索引取值
s = 'CSDN博客论坛'
print(s[0],'=',s[-8])
print(s[-1],'=',s[7])

C = C
坛 =

2.2 字符串 str

字符串是一个有序的字符集和,用于存贮和表示基本的文本信息

2.2.1 常用方法

操作数据最本质的行为是什么?== 》增删改查

字符串.方法名
2.2.1.1 find

find的作用:范围性查找子串,返回索引值,没有则返回-1

语法:

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

find常用于检测字符串中是否包含子字符串str

s = 'hello world'
print(s.find('o'))  #o 的索引值就是4
print(s.find('hello')) # 找到hello则返回首个字符的索引
print(s.find('worldd')) # 找不到返回-1

s = ('python,helloworld,java,php')
print(s.find('h'))  # 返回的是首个h的下标
print(s.find('h',4))  # 从下标为4的地方开始找
print(s.rfind('h'))  # 从后往前找
2.2.1.2 index()

检测字符串中是否包含子字符串str,如果指定beg和end范围,则检查是否包含在指定范围内,和find差不多,只不过如果子str不在str中会报错

s = ('python,helloworld,java,php')
print(s.index('world'))  # 12 索引值
print(s.index('worldd'))  # 报错
2.2.1.3 count()

返回找到的子串个数

s = ('python,helloworld,java,php')
print(s.count('h'))  # 3 h的个数
2.2.1.4 strip()

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

code = input('请输入4位的验证码:')
data = code.strip()
if data == 'ABCD':
    print('验证码正确')
else:
    print('验证码错误')
2.2.1.5 startswith(), endswith()
  • 判断字符串是否已xx开头,得到一个布尔值
dizhi = input('请输入住址:')
if dizhi.startswith('北京市'):
    print('北京人口')
else:
    print('非北京人口')
  • 判断字符串是否已xx结尾,得到一个布尔值
dizhi = input('请输入住址:')
if dizhi.endswith('村'):
    print('农业户口')
else:
    print('非农业户口')
s = '北京市朝阳区'
print(s.startswith('北京市'))
2.2.1.6 isdigit()
  • 判断字符串是否是数字组成,返回的结果是布尔值
v1 = input('请输入第一个值:')
v2 = input('请输入第二个值:')
if v1.isdigit() and v2.isdigit():
    data = int(v1)+int(v2)
    print(data)
else:
    print('请输入正确的数字')
2.2.1.7lower() 和 upper()

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

lower()==》转小写

upper()==》转大写

s = 'C'
print(s)
s1 = s.lower()
print(s1)
s2 = s1.upper()
print(s2)

C
c
C
2.2.1.8 split()

切分字符串,将字符串类型转成列表,默认以空格切分,也可以指定字符切分

s = 'my name is zuoshou'
print(s.split())
s1 = 'python,helloworld,java,php'
print(s1.split(','))

['my', 'name', 'is', 'zuoshou']
['python', 'helloworld', 'java', 'php']
2.2.1.9 replace()

字符串内容的替换,得到一个新的字符串

s = input('请输入评论信息:')
s1 = s.replace('草','*')
print(s1)
2.2.1.10 join()

用于将序列中的元素以指定的字符串连接生成一个新的字符串

常用于将列表转为字符串

a = ['左手', '和', 'look', '是', '好朋友']
print(''.join(a))  # 常用于转化列表为字符串时使用
print('-'.join(a))

左手和look是好朋友
左手--look--好朋友

2.2.2 字符串的公共功能

2.2.2.1正向取(从左往右),反向取(从右往左,负号)

s = 'hello python'
# 正向取值
print(s[0])  #  取值为 h
print(s[5])  #  空格,空格也算是字符串里的一个字符
# 反向取值
print(s[-4]) # 取值为 t

len的用法
len 是从1开始数  计量字符串长度
print(s[len(s)-1])  # 最后一个值
print(len(s))   # len  计算字符串的长度
print(s[-len(s)])  # len 前面加负号 是从右到左取值
2.2.2.2 切片(顾头不顾尾,步长)
s = 'hello python'
print(s[::2])

hlopto

步长:0:9:2 第三个参数2代表步长,会从下标0开始,每次累加一个2就可以
print(s[0:9:2])

hlopt

print(s[::-1]) # 从右到左依次取值 反向取值 步长为负数就是从右到左 首尾不给值就是取所有
nohtyp olleh

2.3 列表 list

可以存放多个不同类型的元素,记录多个同种属性的值

列表:存贮同一个类别的数据,方便操作

字符串,不可变类型:创建好之后内部无法修改[内置功能都是新创建一份数据]
name = 'zuoshou'
data = name.upper()
print(name)
print(data)

zuoshou
ZUOSHOU  
列表,可变类型:创建好之后内部元素可以修改[独有功能基本上都是直接操作列表内部的,不会创建一份新的数据]

list1 = ['车子', '房子']
list1.append('妹子')  # append  ’添加‘的方法
print(list1)

['车子', '房子', '妹子']

列表的创建

列表名 = []
2.3.1 增
1.append:添加一个数据,添加到列表的最后一位
   语法: 列表名.append('左手')
li..append('左手')
print(li)
[2, 3, 4, 5, 6, 7, 8, 9, 10, '左手']

2.insert: 添加一个数据到指定位置
    语法:列表名.insert(下标位置,内容)
   li.insert(0,'look')
print(li)
['look', 2, 3, 4, 5, 6, 7, 8, 9, 10, '左手']

3.extend:添加一个序列类型到最后一位,并且吧序列类型拆分
    语法:列表名.extend(序列类型)
  li.extend('吸血鬼')
print(li)
li.extend(['吸血鬼'])
print(li)
['look', 2, 3, 4, 5, 6, 7, 8, 9, 10, '左手', '吸', '血', '鬼']
['look', 2, 3, 4, 5, 6, 7, 8, 9, 10, '左手', '吸', '血', '鬼', '吸血鬼']
2.3.2 删
pop:删除一个值,默认从最后一个开始删,也可以指定位置
    语法:列表名.pop()
    列表名.pop(下标)
    li.pop(-1)
print(li)
['look', 2, 3, 4, 5, 6, 7, 8, 9, 10, '左手', '吸', '血', '鬼']

remove:删除一个指定的值,如果有多个,从第一个开始删
    语法:列表名.remove(删除对象)
    li.remove(3) # 删除对象
print(li)

['look', 2, 4, 5, 6, 7, 8, 9, 10, '左手', '吸', '血', '鬼']

clear :清空列表里面的所有数据
    语法:列表名.clear()
    li.clear()
print(li)

[]
del : 全局删除,可以删除一个变量
    语法:del 列表名[下标]
del li[3]  # 下标
print(li)

['look', 2, 4, 6, 7, 8, 9, 10, '左手', '吸', '血', '鬼']
2.3.3 改
单个修改:直接通过下标进行修改
语法:列表名[下标] = 内容
li[1] = '阿尔法'
print(li)
['look', '阿尔法', 4, 6, 7, 8, 9, 10, '左手', '吸', '血', '鬼']

多个修改:通过切片的方式进行修改
语法: 列表名[起点:终点] = 数值1, 数值2
li[1:3] = 70,20
print(li)
['look', 70, 20, 6, 7, 8, 9, 10, '左手', '吸', '血', '鬼']
2.3.4查
index:根据内容获取指定数据的下标
    语法:列表名。index(要找的内容)
    print(li)
print(li.index(8)) 
5
列表名。index(要找的内容,起点值)
print(li.index(20,5)) #报错,显示20不在列表中

count:统计数据出现的次数
    语法:列表名.count(要找的内容)
    print(li.count(10))
          1
2.3.5 其他
排序(int的列表才可以排序)
sort:让列表的内容按照降序/升序的方式来排序
    列表名.sort()——》升序
li1 = [1,85,6,8,61,3,45321,1965]
li1.sort()
print(li1)

[1, 3, 6, 8, 61, 85, 1965, 45321]

    列表名.sort(reverse=True)——》降序
li1 = [1,85,6,8,61,3,45321,1965]
li1.sort(reverse=True)
print(li1)

[45321, 1965, 85, 61, 8, 6, 3, 1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习的小初雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值