黑马python学习记录
b站麦叔编程学习记录
菜鸟一枚,不喜勿喷
python中主要数据类型
python中的主要数据类型包括了:
(1) 数值型(int/float)
(2) 布尔型(True/False)
(3) 字符型(str)
(4) 列表(list)
(5) 元组(tuple)
(6) 集合(set)
(7) 字典(dict)
# 整数 --int
num1 = 10
print(num1)
# 浮点数 --float
num2 = 10.03
print(num2)
# 布尔型 --bool
num3 = True
print(num3)
# 字符型 --str
s1 = 'hello world'
print(s1)
# 列表 --list
lst = [1,2,'W',1,1.23,[1,2,3]]
print(lst)
# 元组 --tuple
tup = (1,)
print(tup)
# 集合 --set
set1 = {1,1,2,3,4}
print(set1) #集合的输出去重复
# 字典 --dict
dict1 = {'A':1,'B':2,'C':3}
print(dict1)
字符型(str)
# 字符串是Python中常用的数据类型,一般用单引号、双引号、三引号包括的数据
# 举个小例子
a = "hello,I'm Tom "
b = 'hello,I\'m tom'
print(a,'\n',b) # a 和 b打印的结果相同,hello,I'm Tom
# 数据在程序运行时存储在内存当中,这些数据会分配一个编号,使用索引可以方便吃查找,索引从默认从0开始。str2 = 'HELLO WORLD'
print(str2[0])
print(str2[-1])
print(str2[:: -1])
print(str2[0:10:2]) # 0到10,步长2
>>> H
>>> D
>>> DLROW OLLEH
>>> HLOWR
# str中的常用操作方法:(1)查找 (2)修改 (3)判断
# (1)查找
# find() 查找子串在字符串中的位置或者出现的次数
# 语法:字符串.find(字串,开始位置下标,结束位置下标),省略开始和结束下标,表示在这个序列中查找
mystr = 'if you saturate your mind with positive thoughts'
print(mystr.find('you'))
>>> 3 # 如果有多个符合条件的子串,返回第一个子串的索引
# rfind() 从字符串的右侧查找
print(mystr.rfind('you'))
>>> 16 # 右侧第一个符合条件的子串
# index()
print(mystr.index('you'))
>>> 3 # 返回第一个符合条件的子串的index
# rindex() 从右侧查找第一个符合条件的index,用法和index()相同
# (2)修改
# replace()
# 用法 :字符串序列.replace(旧子串,新子串,替换次数)
mystr2 = mystr.replace('you','we',2)
print(mystr2)
print(mystr)
>>> if we saturate wer mind with positive thoughts # you替代成了we
>>>if you saturate your mind with positive thoughts #原字符串没有修改,说明字符串是不可改变的数据类型
# split() 分隔字符串序列,返回一个列表
lst = mystr.split() #默认的是\t或者空格
>>> ['if', 'you', 'saturate', 'your', 'mind', 'with', 'positive', 'thoughts']
lst1 = mystr.split('you') # 以you作为分隔符
>>> ['if ', ' saturate ', 'r mind with positive thoughts'] # 注意字符串序列中的your的分隔情况
# join() 合并列表里的字符串数据为一个大的字符串
# 用法:''.join(list)
new_mystr = '---'.join(lst1)
print(new_mystr)
>>> if --- saturate ---r mind with positive thoughts # 以‘---’作为连接符
# (1) capitalize() 字符串序列的首字母大写
# (2) title() 每个单词的首字母大写
# (3) lower() 字符串序列中的大写字母变成小写
# (4) upper() 字符串序列中的小写变成大写
# (5) strip() 删除字符串序列中两侧的空白字符
# (6) lstrip() 删除左侧的空白
# (7) rstrip() 删除右侧空白
str1 = ' hello WorlD '
print(str1.capitalize())
print(str1.title())
print(str1.lower())
print(str1.upper())
print(str1.lower())
print(str1.strip())
print(str1.lstrip())
print(str1.rstrip())
# 输出结果
>>> hello world #开头是空格
>>> Hello World
>>> hello world
>>> HELLO WORLD
>>> hello world
>>> hello WorlD
>>> hello WorlD
>>> hello WorlD
# (8) rjust() 返回的字符串右对齐
# (9) ljust() 返回的字符串左对齐
# (10) center() 返回的字符串中间对齐
str2 = 'hello'
print(str2.rjust(10,'.')) #不满10个字符的话用 '.' 填充,不写的话默认为空格
print(str2.ljust(10,'.'))
print(str2.center(10,'.'))
# 输出结果
>>> .....hello
>>> hello.....
>>> ..hello...
# 判断
# (1) startwith() 检查字符串是否以指定的字符串开头,是则返回True,否则为False,如果设置开始和结束位置,则在指定的范围里查找
# (2) endwith() 检查字符串是否以指定的字符串结尾
str3 = 'hello world and litcast and itheima and python'
print(str3.startwith('hello'))
print(str3.endwith('python'))
# 返回结果
>>> True
>>> True
列表(list)
# 列表用来一次性存储多个数据 [数据1,数据2,数据3,数据4.....] 数据可以是不同类型,列表中的数据可以重复
# 常用的列表操作:增、删、改、查
# (1) 查找
# list.index(数据,开始下标,结束下标)
# list.count(数据)
# in/not in 判断数据是否在列表中,返回True或者False
name_list = ['Tom','Jack','Rose','Mark','Lili','Tom']
print(name_list[0])
print(name_list[0:4:2])
print(name_list[::-1]) #倒置列表
print(name_list.index('Tom'))
print(name_list.count('Tom'))
print('Tom' in name_list)
# 返回结果
>>> Tom
>>> ['Tom', 'Rose']
>>> ['Tom', 'Lili', 'Mark', 'Rose', 'Jack', 'Tom']
>>> 0
>>> 2
>>> True
# (2) 增
# list.append('数据') 在列表的末尾增加数据
# list.extend('数据') 在列表的结尾添加数据,数据是一个序列,则将这个序列数据逐一添加到列表
# list.insert(下标,数据)
name_list.append('xiaoming')
print(name_list)
>>> ['Tom', 'Jack', 'Rose', 'Mark', 'Lili', 'Tom', 'xiaoming'] # 列表可以修改
name_list.extend(['Huahua,'Weiwei'])
print(name_list)
>>> ['Tom', 'Jack', 'Rose', 'Mark', 'Lili', 'Tom', 'xiaoming', 'Huahua', 'Weiwei']
name_list.insert(0,'Deng') # 在第一个位置添加Deng
print(name_list)
>>> ['Deng', 'Tom', 'Jack', 'Rose', 'Mark', 'Lili', 'Tom', 'xiaoming', 'Huahua', 'Weiwei']
# (3) 删
# del()
# remove()
# clear()
# list.pop() 删除指定下标的数据,如果没有指定的下标,就默认会删除最后一个数据,pop函数都会返回被删除的数据
name_list = ['Tom','Jack','Rose','Mark','Lili','Tom']
del (name_list[0])
print(name_list)
>>> ['Jack', 'Rose', 'Mark', 'Lili', 'Tom']
name_list.remove('Jack')
print(name_list)
>>> ['Rose', 'Mark', 'Lili', 'Tom']
name_list.pop()
print(name_list)
>>> ['Rose', 'Mark', 'Lili']
name_list.clear()
print(name_list)
>>> []
# (4) 修
# reverse()
# sort()
# copy()
# 根据指定的下标修改数据
name_list = ['Tom','Jack','Rose','Mark','Lili','Tom']
name_list[0] = 'Kangkang'
print(name_list)
>>> ['Kangkang', 'Jack', 'Rose', 'Mark', 'Lili', 'Tom']
# 逆序排序
name_list.reverse()
print(name_list)
>>> ['Tom', 'Lili', 'Mark', 'Rose', 'Jack', 'Tom']
# sort()升序和降序
name_list.sort()
print(name_list)
>>> ['Jack', 'Lili', 'Mark', 'Rose', 'Tom', 'Tom']
name_list.sort(reverse=True)
print(name_list)
>>> ['Tom', 'Tom', 'Rose', 'Mark', 'Lili', 'Jack']
# 复制
name_list1 = name_list.copy()
print(name_list1)
>>> ['Tom', 'Tom', 'Rose', 'Mark', 'Lili', 'Jack']
# 列表嵌套
name_list2 = [[1,2],[2,3,4],[5,6,7],[8,9,10]]
print(name_list2[1][2])
>>> 4
# 列表中的数据可以嵌套
for i in name_list:
print(i)
元组(tuple)
# 列表的用途
# 如果想存储多个数据,数据不可以修改,并且存储的数据不可以修改,元组中的数据可以是不同的类型。
t1 = (1,) # 如果元组只有一个元素,在元素的末尾添加',' 不然默认为元素的类型
t2 = (1,'2','3',[1,2,3])
''' 元组中的常见操作: (1) 按照下标查找数据
(2) index() 查找数据
(3) count() 统计某个数据在元组中出现的次数
(4) len() 统计元组中元素的个数
'''
print(t2[0])
print(t2.index('2'))
print(len(t2))
print(t2.count('2'))
# 返回结果
>>> 1
>>> 1
>>> 4
>>> 1
## 注意:元组不可以修改,但是列表中存在可以修改的元素,如列表,则可以修改列表中的元素
t2[3][0] = 2
print(t2)
>>> (1, '2', '3', [2, 2, 3])
### 元组中的元素也是可以迭代的,可以通过循环遍历
字典(dict)
字典中的数据以键值对的形式存储数据,字典中的数据顺序没有关系,即字典不支持下标
### 字典的特点
(1) 符号为大括号
(2) 数据以键值对的形式出现
(3) 字典为可变数据类型
(4) 字典中的 key 为不可变数据类型
(5) 如果字典中相同的key,具有不同的value值的话,取靠后的key-value值
dict1 = {'A':1,'B':2,'C':3,'D':4}
dict2 = {} # 空字典
### 字典常见的操作:增、删、改、查
# (1) 增
dict1 ['小明'] = '5'
print(dict1)
>>> {'A': 1, 'B': 2, 'C': 3, 'D': 4, '小明': '5'}
# (2) 删
del() : 删除字典或者指定键值对
del(dict1['A']) # 删除字典中的指定键值对
print(dict1)
del(dict1) # 删除整个字典
print(dict1)
dict1.clear() # 清空字典,与删除整个字典有区别
print(dict1)
# 返回结果
>>> {'B': 2, 'C': 3, 'D': 4, '小明': '5'}
>>> NameError: name 'dict1' is not defined
>>>{} # 返回空字典
# (3) 查
(1) 按照key值进行查找
(2) dict.get(key,默认值) 如果查找的key不存在返回默认值,不设置默认值的话,返回none,否则返回相对的value值
(3) dict.keys() 返回字典的key值
(4) dict.values() 返回字典的value值
(5) dict.items() 返回字典的单个键值对,元组类型显示
dict1 = {'A':1,'B':2,'C':3,'D':4}
print(dict1['B']) # 按键值对查找
print(dict1.get('tine=a'))
print(dict1.keys())
print(dict1.value())
print(dict1.items())
# 返回结果
>>> 2
>>> none
>>> dict_keys(['A', 'B', 'C', 'D'])
>>> dict_values([1, 2, 3, 4])
>>> dict_items([('A', 1), ('B', 2), ('C', 3), ('D', 4)]) #返回的键值对用元组存储
#### 可以用循环遍历字典中的元素
In [72]: dict1_keys = []
In [73]: for i in dict1.keys():
...: dict1_keys.append(i)
...: print(dict1_keys)
集合(set)
### 创建集合用set()或者{},注意:如果创建空集合的话不能用{},用set()。{}用来创建空字典。
### 集合的特点:(1) 集合中不存在重复的数据
# (2) 集合中的数据没有顺序
set1 = set()
set2 = set('1,1,2,3,4,4,5,6')
set3 = set([1,2,3,4,2,3])
set4 = set('1,2,3,4,5')
set5 = set('abcdefg')
print(set1)
print(set2)
print(set3)
print(set4)
print(set5)
# 返回的结果
>>> set()
>>> {',', '5', '6', '4', '1', '2', '3'}
>>> {1, 2, 3, 4}
>>> {',', '5', '4', '1', '2', '3'}
>>> {'g', 'b', 'e', 'c', 'f', 'd', 'a'}
# 集合中的操作方法
# (1) 增加数据
# add() 用来增加单一数据
# update() 用来增加一个数据序列
s1 = {10,20,'30','40'}
s1.add(100)
print(s1)
s1.update([50,60,70])
print(s1)
# 返回的结果
>>> {'40', 100, 10, '30', 20}
>>> {'40', 100, 70, 10, '30', 50, 20, 60} # 从结果可以看出,集合没有顺序
# (2) 删除数据
# remove() 数据不存在的话,报错
# discard() 数据不存在的话,不报错
# pop() 随机删除某个数据,并返回 ,###列表中默认删除最后一个数据###
s2 = {10,20,30,40}
s2.remove(20)
print(s2)
>>> {40, 10, 30}
s2.discard(10)
print(s2)
>>> {40, 30}
print(s2.pop())
>>> 40
# (3) 判断数据是否存在 ----in/not in
s3 = {1,2,3,5,6}
print(1 in s3)
print(4 in s3)
#返回结果
>>> True
>>> False
#####因为集合中的数据没有顺序性,所以无法使用索引
# s3[1]
# TypeError: 'set' object does not support indexing
网友评论