python——数据类型(一)

一、概括

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

  1. 数值类型:int,float,bool
  2. 序列类型:字符串,列表,元组
  3. 散列类型:集合,字典

序列类型可以通过下标来取值;散列类型无法通过下标来取值,如果写了,则代码运行时会报错。

dic = {'语文': 88, '数学': 130, '英语': 90,'政治':74,'物理':82}
se = {1, 2, 3, 4, 5, 6, 7, 8}
print(dic[0])  # KeyError: 0
print(se[0])  # TypeError: 'set' object is not subscriptable

二、序列类型

2.1 序列索引

定义:序列是一块可以存放多个值的连续空间,这些值按照一定的顺序排列着,可以根据每个值所在的编号来访问它们,这种访问方法称之为索引。

索引有两种,一种是正向索引,即从左到右序列索引,索引值范围:0 ~ n-1;另外一种是反向索引,即从右到左序列索引,索引值范围: -1 ~ -n

以下的表格里列出正向、反向索引和下标的区别,使用时不要弄混,下标是从1开始算。

序列CSDN
正向索引值01234567
反向索引值-8-7-6-5-4-3-2-1
下标       12345678
# 正向索引和反向索引
s = 'CSDN博客论坛'
print(s[0], '=', s[-8])  # C = C
print(s[7])  # 坛

2.2 可变类型和不可变类型

可变概念:值在发生改变时,内存地址(id)不变

不可变概念:值在发生改变时,内存地址也变了

不可变类型:数值,字符串,元组

可变类型:列表,字典,集合

# 可变类型,修改列表元素前后,其id不变
li = [0,1,2,3,4,5,6]
print(f'原列表:{li}',f'id={id(li)}')  # 原列表:[0, 1, 2, 3, 4, 5, 6] id=2617433116288
li[0] = 100
print(f'修改后列表:{li}',f'id={id(li)}')  # 修改后列表:[100, 1, 2, 3, 4, 5, 6] id=2617433116288
# 不可变的序列,无法修改其中的值
s = 'hello'
s[0] = 'a'
print(s)  # 报错

2.3 字符串

定义:字符串是一个有序的字符集合,用于存储和表示基本的文本信息。

2.3.1 常用方法

操作数据的基本方法:增删改查

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

2.3.1.1 find()

功能:范围性查找子串,返回索引值,没有找到则返回-1

语法:

  str.find(str1,beg=0,end=led(string))

  • str1 --> 指定检索的字符串

  • beg --> 开始的索引,默认值为0

  • end --> 结束的索引,默认字符串的长度

# 检测字符串中是否包含子字符串
s = 'hello world'
print(s.find('h'))  # 0  可以找单个字符
print(s.find('world'))  # 6  也可以找一个子串
print(s.find('worldd'))  # -1

# 指定查找的开始位置
s = 'python,helloworld,java,php'
print(s.find('h'))  # 3  默认从索引0开始找
print(s.find('h',4))  # 7 , 也可以从下标 4 之后开始找
print(s.rfind('h'))  # 24 , rfind()从后面往回找
2.3.1.2 index()

功能:检测出字符串中是否包含子字符串str,和find差不多,但是如果str找不到,则会报错

语法:

  str.index(str1,beg=0,end=led(string))

  • str1 --> 指定检索的字符串

  • beg --> 开始的索引,默认值为0

  • end --> 结束的索引,默认字符串的长度

s = 'python,helloworld,java,php'
print(s.index('h'))  # 3
print(s.index('java'))  # 18
print(s.index('o',6))  # 11,从下标 5后面开始找
print(s.index('oo'))  # 报错
2.3.1.3 count()

功能:返回找到的子串个数,找不到返回0。

语法:

  str.count(str1,beg=0,end=led(string))

  • str1 --> 指定检索的字符串

  • beg --> 开始的索引,默认值为0

  • end --> 结束的索引,默认字符串的长度

# 计算子字符串出现的次数
s = 'python,helloworld,java,php'
print(s.count('h'))  # 3
print(s.count('python'))  # 2
2.3.1.4 strip()

功能:去除字符串两边的空格,换行符,制表符,返回一个新的字符串

语法:

  str.strip()

# 去除字符串前后的空格
s = '            python,helloworld,java,php,python     '
print(s)          #             python,helloworld,java,php,python     
print(s.strip())  # python,helloworld,java,php,python
2.3.1.5 startswich() 和endswith()

功能:

  • startswich(),判断字符串是否以XXX开始,得到一个布尔值

  • endswith(),判断字符串是否以XXX结束,得到一个布尔值

# 判断字符串的开头和结尾
s = '123python,helloworld,java,php,python321'
print(s.startswith('123'))  # True
print(s.endswith('321'))  # True
print(s.startswith('abc'))  # False
print(s.endswith('abc'))  # False
2.3.1.6 isdigit()

功能:判断字符串是否是由数字组成,返回True和False

# 判断输入两个数是否纯数字,如果是则输出两个数相加结果
v1 = input('请输入第一个数:')
v2 = input('请输入第二个数:')
if v1.isdigit() and v2.isdigit():
    print(int(v1) + int(v2))
else:
    print('请输入正确的数字')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值