Python基础数据类型

时间:2022-10-19 18:04:51

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

String(字符串)

1.字符串

Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。

str = '我是字符串'

 

2.字符串索引

索引值以 0 为开始值,-1 为从末尾的开始位置。

str = '我是字符串'
#输出字符串中的''
print(str[1])

#输出字符串中的''
print(str[2])

3.字符串切片

切片是顾头不顾尾,切记

str = '我是字符串'
#请输出字符串的前三位
print(str[:3])
#打印结果>>>'我是字'

4.字符串步长

str = '我是字符串'
#请输出'我字串'
print(str[::2])

5.一些小操作

str = '猪是我念着倒'
#把字符串全部倒过来念
print(str[::-1])

2.1字符串的方法

s = 'Python'
s1 = s.capitalize()  # 首字母大写
print(s1)

s2 = s.upper()       #  全部大写
print(s2)

s3 = s.lower()       # 全部小写
print(s3)

print(s.count('L'))  # 返回字符串中有几个L

print(s.endswith('x'))  # 以什么结尾
print(s.startswith('a'))  # 以什么开头

print(s.find('p'))  #通过元素查找下标  查找的没有返回-1
print(s.index('p'))   #通过元素查找下标  查找的没有就报错




print('_'.join(s))   #用_连接字符串

print(s.split('x'))  #分割
print(s.strip('   a'))   #脱  脱头尾两边的空格 换行符 \n

print(s.replace('a','s'))  #第一个放要被替换的 第二个是替换的内容
print(s.swapcase())    # 大小写转换



print(s.title())  # 特殊符号分割的每个单词首字母大写

is 系列
print(s.isdigit())  # 判断是不是纯数字
print(s.isalpha())    # 判断是不是汉字和字母

3.for循环

for 关键字 i 变量 in 关键字 要迭代的对象 冒号:
缩进for 结构体

s = '好嗨哟!'
for i in s:
    print(i)
#输出结果:
好
嗨
哟
!

 

练习

1.有变量name = "Python NB" 完成如下操作:
  name = "Python NB" 
1.移除 name 变量对应的值两边的空格,并输出处理结果
s = name.strip()
print(s)
2.移除name变量左边的"Py"并输出处理结果
s = name.strip('Py')
print(s)
3.移除name变量右面的"NB",并输出处理结果
s = name.strip('NB')
print(s)
4.移除name变量开头的a"与最后的"B",并输出处理结果
s = name.strip('aB')
print(s)
5.判断 name 变量是否以 "al" 开头,并输出结果
s = name.startswith('al')
print(s)
6.判断name变量是否以"NB"结尾,并输出结果
s = name.endswith('NB')
print(s)
7.将 name 变量对应的值中的 所有的"y" 替换为 "p",并输出结果
s = name.replace('y','p')
print(s)
8.将name变量对应的值中的第一个"y"替换成"p",并输出结果
s = name.replace('y','p',1)
print(s)
9.将 name 变量对应的值根据 所有的"y" 分割,并输出结果。
s = name.split('y')
print(s)
10.将name变量对应的值根据第一个"y"分割,并输出结果。
s = name.split('y',1)
11.将 name 变量对应的值变大写,并输出结果
s = name.upper()

12.将 name 变量对应的值变小写,并输出结果
s = name.lower()
13.将name变量对应的值首字母"P"大写,并输出结果
s = name.capitalize()
14.判断name变量对应的值字母"y"出现几次,并输出结果
s = name.count('y')
15.如果判断name变量对应的值前四位"y"出现几次,并输出结果
s = name.count('y',0,3)
16.从name变量对应的值中找到"N"对应的索引(如果找不到则报错),并输出结果
s = name.index('N')
17.从name变量对应的值中找到"N"对应的索引(如果找不到则返回-1)输出结果
s = name.find('N')
19.请输出 name 变量对应的值的第 2 个字符?
print(name[1])
20.请输出 name 变量对应的值的前 3 个字符?
print(name[:3])
21.请输出 name 变量对应的值的后 2 个字符?
print(name[-2:])

List(列表)

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

#list    python关键字
lst = [1,2,3]   # 存储一些数据,数据量比较大
print(lst)

列表的增删改查

增:

lst = ['1']

lst.append('牛爱花')   # 追加  在末尾的位置加一个
print(lst)

lst.insert(3,'包夜')   # 插入  第一个要插入的位置索引,第二个是要插入的内容
print(lst)

lst.extend([1,2,3])   # 扩展  --- 迭代添加  整型和布尔值不能迭代
print(lst)



lst1 = [1,2,3]
lst2 = [4,5,6]
lst3 = lst1 + lst2   # 列表合并  开辟了一块空间
print(lst1)
print(lst2)
print(lst3)

结果>>>
[1, 2, 3]
[4, 5, 6]
[1, 2, 3, 4, 5, 6]

删:

#第一种 del
lst = ['杨紫','高圆圆','刘亦菲','关晓彤']

del lst   # 删除了整个列表
print(lst)

del lst[-1]   # 配合下标删除
print(lst)

del lst[0:2]   # 配合切片删除
print(lst)

del lst[0:3:2] #配合步长我跳着删
print(lst)

#第二种通过内容删除
 lst.remove('高圆圆')   # 通过内容删除
print(lst)
        
#第三种 pop
lst.pop()  # 没有指定,默认删除最后一个
print(lst)

ret = lst.pop(0)   #可以指定下标删除   具有返回值
print(lst)
print(ret)    # 返回被删除的内容

#第四种 clear
lst.clear()   #清空
print(lst)

改:

lst = ['杨紫','高圆圆','刘亦菲','关晓彤']
lst[0] = '杨幂'   # 通过下标修改   
print(lst)

lst[0:3] = '你好美'       
print(lst)  # 结果 ['你', '好', '美', '关晓彤']



lst[0:4:2] = '好嗨'  # 切片+步长 长度要统一
print(lst)

查:

lst = ['杨紫','高圆圆','刘亦菲','关晓彤']
 for遍历
for i in lst:
    print(i)

ret = lst.index('高圆圆')  # 通过内容查找下标
print(ret)
print(lst.count('高圆圆'))  # 计数

lst.sort()   # 排序     默认升序
print(lst)
lst.sort(reverse=True)  # 降序
print(lst)

reverse         #翻转

 列表的嵌套:

lst = [1,2,34,[45,5,['好嗨哈']]]

Tuple(元组)

一个不可修改的列表  tuple tu = () 不可变数据  有序的

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

range

range 第一个元素是起始位置,第二个是终止位置,第三个是步长


python3 range是原生态
Python2 range是列表

 

dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

dic = {'周杰伦':'稻香','林俊杰':'江南','小沈阳':'大笑江湖','刘德华':'冰雨'}
print(dic['小沈阳'])    # 通过键去查找值
print(dic['刘德华'])    # 通过键去查找值

结果:

大笑江湖

冰雨
 

字典的增删改查:

增:

# dic = {}
# dic['黄秋生'] = "头文字D"             #第一种
# dic.setdefault("林俊杰")              #第二种
# print(dic)

#返回结果:
{'黄秋生': '头文字D', '林俊杰': None}

删:

dic = {"林俊杰":"江南","周杰伦":"稻香","李连杰":"黄飞鸿"}
del dic["林俊杰"]#选择key来删除
dic.pop("李连杰") #删除后返回剩下的字典
dic = dic.pop("李连杰") #删除后返回,删除key对应的值
dic.popitem()#随机删除
dic.clear()#清空
print(dic)

改:

dic = {"林俊杰": "江南", "周杰伦": "稻香", "李连杰": "黄飞鸿"}
dic2 = {"周星驰":"武状元苏乞儿","吴京":"战狼","甄子丹":"叶问","李连杰":"给爸爸的信"}
dic.update(dic2)              #把 dic2 添加到dic中,如果dic2中有dic中的值则覆盖

print(dic)

查:

dic = {"林俊杰": "江南", "周杰伦": "稻香", "李连杰": "黄飞鸿"}
print(dic["林俊杰"])    #直接用key查询,如果key不存在 ,则会报错.
print(dic.get("林俊杰")) #用get方法查询,如果key不存在返回None
setdefault() #先看看有没有key,有的话就不执行,没有的话就执行,根据key返回值

dic.setdefault("菲欧娜","无双剑姬")#先去执行新增的流程,查询结果.
print(dic)

个别小操作:

'''
1.keys()获取所有的键,这个返回的不是列表 2.values()获取所有的值 3.items()获取所有的键值对,返回的是元祖 结构,直接把元祖或者列表中的数据拿出了
'''
print(dic.values()) for key in dic.keys(): print(key) print(dic[key]) print(dic.items()) #拿到的是元祖 for k , v in dic.items(): print(k) print(v)