第二章 Python 基础数据类型

本文详细介绍了Python中的基本数据结构,包括字符串的定义、操作、方法,如字符串拼接、索引访问、切片、转换等;列表的查找、新增、删除和修改操作;元组的特性及操作;以及字典的增加、查询、修改和删除等操作。内容涵盖了数据类型的常用功能,适合初学者学习。
摘要由CSDN通过智能技术生成

一、字符串(string)

1.1字符串定义

①定义单行字符串:一对引号字符串(单引号,双引号)

name1 = 'Tom' 
name2 = "Rose"

②定义多行字符串:三对单引号或双引号

name1 = '''Tom''' 
name2 = """Rose""" 
a = '''
i am Tom, 
nice to meet you
''' 
b = """
i am Rose,
nice to meet you,too
"""

③转换字符串:使用str()方法强制转换;如 print(str(10))

④使用input() 方法输入字符串;如 name = input(‘请输入用户名:’)

⑤字符串拼接

var1 = '字符串' 
var2 = str(1) 
print(var1 + var2) 
print(type(var1 + var2))

1.2字符串操作

①字符串的访问:1).索引访问;2).正序访问:索引从0开始;3).倒序访问:索引从-1开始

#取到不同下标对应的数据
 name = 'testfan' 
 print(name[0]) 
 print(name[1]) 
 print(name[2]) 
 #下标也可以写负数 
 print(name[-1]) 
 print(name[-2])

②字符串切片:
切片是指对操作的对象截取其中一部分的操作,字符串,列表,元组都支持切片
语法:字符串[开始位置下标:结束位置下标:步长] 步长是控制方向的,正数从左往右取,负数是从右到左取
注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),如果不写步长默认是1.

name = 'testqiepian' 
print(name[2:5:1]) # 下标2到5,步长是1
print(name[2:5]) # 默认步长是1 
print(name[:5]) # 不写起始,则认为是从头开始 
print(name[2:5:2]) # 步长为2就后面元素的索引-前面的索引=步长
print(name[::]) # testfan 
print(name[:]) # testfan 
print(name[-5:-1]) # 倒叙截取,从-5个字符(重点)
print(name[-5:]) 
print(name[:-1]) 
print(name[::-1]) 
print(name[-3:]) 
print(name[2:-3])

小结:
1).[:]提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串
2).[start:]从start提取到结尾
3).[:end]从开头提取到end-1
4).[start:end]从start提取到end-1
5).[start🔚step]从start提取到end-1,每step个字符提取一个
6).[::-1]逆序

1.3 字符串方法

① 对字符串遍历

for i in str:
    print(i)

②获取字符串的长度,字符个数

lenth = len(str)
print(lenth)

③获取字符串索引

for i in range(lenth):
    print(str[i])

④查询字符串中的字符是否存在

for i in str:
    if i == 't':
        print('ture')

⑤find 查找字符串索引:返回第一个找到的字符索引,如果没有找到返回-1
语法:字符串序列.find(子串,开始位置下标,结束位置下标)

str = 'dfadfasdfasd'
print(str.find('a'))

⑥字符串替换 :替换全部符合的字符串
语法:字符串序列.replace(旧子串,新子串,替换次数)

new_str = str.replace('df','123')
print(new_str)

替换字符串次数

str = 'dfadfasdfasd'
new_str1 = str.replace('df','456',2)
print(new_str1)

⑦分割符split(分隔符,分割次数) 返回列表。将分割以后的各个元素安装顺序存储在列表中;分隔符不填写,默认分割空格
语法:字符串序列.split(分割字符,num)

str1 = 'asdfadfasfdsadsfssda'
print(str1.split('a'))
str1 = 'hello world and testfan and yaoyao'
print(str1.split(' ',2))

⑧字符串中字母的转换,首字母大写

print('hello'.capitalize())

首个单词字母大写

print('hello world'.title())
print('hello_world'.title())
print('hell_dsf-fdsafd'.title())

字符串大写

print('adb'.upper())

字符串小写

print('AdB'.lower())

去除字符串空格 两端空格 左边空格 右边空格

print(' hello '.strip())
print(' hello '.lstrip())
print(' hello '.rstrip())

字符串判断方法 返回bool:startswith():检查字符串是否是以指定子串开头,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查

print('hello'.startswith('h'))
print('hello'.endswith('o'))

判断字符串只包含数字

print('123'.isdigit())

判断字符串是否是纯空白

print(' '.isspace())
print(' 12 '.isspace())

判断字符串是否是纯字母

print('adb'.isalpha())

判断字母或者数字,不支持符号

print('123'.isalnum())

二、列表

2.1 列表特性

1)列表由一系列按特定顺序排列的组合。
2)列表中的元素是有序的;
3)列表长度不确定,在使用列表时不需要提前声明长度;
4)列表中的存储元素类型可以不唯一,元素之间没有任何关系;
5)列表中可以有重复元素。
6)列表是python中内置有序可变序列,列表的所有元素放在一对中括号[ ]中,并用逗号分隔开。

2.2列表操作
1)查找
①下标:

name_list=['tom','lily','rose'] 
print(name_list[0]) # tom

②方法:
index(): 返回指定数据所在位置的下标
语法:列表序列.index(数据,开始位置的下标,结束位置的下标)

name_list = ['tom','lily','rose'] 
print(name_list.index('tom')) # 0 

count():统计指定数据在当前列表中出现的次数

name_list=['tom','lily','rose'] 
print(name_list.count('tom')) # 1 

len():可以获取列表的长度,即列表中数据的个数

name_list=['tom','lily','rose'] 
print(len(name_list)) # 3

in:判断指定的数据在某个列表序列,如果在返回True,否则返回False

name_list=['tom','lily','rose'] 
print('lily'in name_list) #True
print('yao' in name_list) #False

2)新增
①新增:append():列表尾部追加数据
语法:列表序列.append(数据)

list = ['a','b','c']
list1 = list.append('d')
print(list)

insert(): 指定位置新增数据
语法:列表序列.insert(位置下标,数据)

name_list = ['tom','lily','rose'] 
name_list.insert(0,'yaoyao') # 结果:['yaoyao', 'tom', 'lily', 'rose'] 
print(name_list)

extend(): 列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一加入列表中
语法:列表序列.extend(数据)

name_list = ['tom','lily','rose'] 
name_list.extend(['a','b','c']) #结果:['tom', 'lily', 'rose', 'a', 'b', 'c'] 
print(name_list)

3) 删除
①del:del 目标

name_list = ['tom','lily','rose'] 
#del name_list 删除整个列表
del name_list[0]

remove():删除列表中匹配到的第一个xxx的元素
pop():删除指定下标的数据(默认为最后一个),并返回该数据

name_list = ['tom','lily','rose'] 
del_name = name_list.pop(0) # 返回的是被删除的元素 #结果是tom 
print(del_name) #结果是['lily', 'rose'] 
print(name_list) # 不加索引,默认删除最后一个元素 
name_list.pop() # 结果是['lily'] print(name_list)

clear():清空列表

name_list = ['tom','lily','rose'] 
name_list.clear() #清除列表里面的所有元素 ; 结果是[] 
print(name_list)

4)修改
①通过索引修改指定值

name_list = ['tom','lily','rose'] 
name_list[0]='yaoyao' 
name_list[2]="yaoyao" #['yaoyao', 'lily', 'rose'] 
print(name_list)

②逆转列表:reverse()

name_list=['tom','lily','rose'] 
name_list.reverse() # ['rose', 'lily', 'tom'] 
print(name_list)

③列表排序

name_list=[1,7,3,2,8]
name_list.sort() # [1, 2, 3, 7, 8] 
print(name_list)

三、元组

3.1 元组特性:元组()

①元组内容可以重复
②元组本身不可修改(相对而言)
③元组创建的时候必须有多个元素,如果只有一个元素必须加逗号(英文模式)
3.2 元组操作
①元组定义

tuple1 = ('aa','bb','cc','dd') 
print(tuple1[0]) # aa
#多个数据元组 
t1 = (10,20,40) 
#单个数据元组 
t2 = (10,)

②按照下标查找数据

tuple1 = ('aa','bb','cc','dd')
print(tuple1[0]) # aa

③len() 统计元组中数据的个数

tuple1 = ('aa','bb','cc','dd') 
print(len(tuple1)) # 4

四、字典

4.1 字典特性

①字典用键值对来表示:{key:value}
②键不可以重复
③字典中的元素(键值对)是无序的

4.2 字典操作

①增加字典数据:字典序列[key]=值

dict1 = {}
dict1['name'] = 'lisi'
dict1['age'] = 33
print(dict1)

②字典查询:
通过key获取值

dict1 ={'name':'tom','age':20,'gender':'男'} 
print(dict1['name']) #tom 
print(dict1['id']) #报错

通过get()方法:dict.get(key,默认值)
获取数据,不能用索引 get函数方法如果没有取值,就是返回None

dict1 = {'name':'tom','age':20,'sex':'男'}
print(dict1['name'])
print(dict1.get('name'))

③修改字典值:字典序列[key]=值

dict1['name'] = '周杰伦'
print(dict1)

④ 删除:del()/del: 删除字典或删除字典中指定键值对

del dict1['name']
 print(dict1)

⑤字典遍历,遍历默认字典里面的key值,遍历keys values items

dict1 = {'name':'tom','age':20,'sex':'男'}
for i in dict1:
    print(i)
for i in dict1.keys():
    print(i)
    print(type(i))
for i in dict1.values():
    print(i)
for i,v in dict1.items():
    print(i,v)
    print(type(i))
#判断字典是否存在某个key
if dict1.get('namea') == None:
    print('不存在这个key')
if 'age' in dict1.keys():
    print('存在这个key')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值