01,python基础数据类型

top0,变量的定义

变量的定义: 变量名 = 值
name = 'Blank'
print(name)
print(type(name))  # <class 'str'>
num = 1
print(num)
print(type(num))  # <class 'int'>
name = 'Blank', 1
print(name)

1,列表

特性:
1.存储多种元素类型
2.存储多个数据
lst = [1, 2, 3, 4]
print(type(lst))

# 从左往右下标从0开始
lst2 = [1.88, 9, 'Carrey', '流星']
print(type(lst2))
print(lst2[1])
# 从左往右取
print(lst2[2])
# 从右往左取
print(lst2[-2])
切片 [开始下标:结束下标:步长]   结束下标取不到  步长就是你跨得步子
lst2 = [1.88, 9, 'Carrey', '流星','神铭','清华北大']
print(lst2[1:7:2])   # 切片超出范围不会报错,能取到最后一位
列表的相关操作
1,增
1. 增
+   列表的合并
ban1 = ['Carrey', '流星']
ban2 = ['神铭','清华北大']
# 合班
he_ban = ban1+ban2
print(he_ban)

append() 把元素添加到末尾
lst1 = [1,2,3]
lst1.append('9502')
# print(lst1)    # [1, 2, 3, '9502']
lst1.append(['音之韵','随缘'])
print(lst1)    # [1, 2, 3, '9502', ['音之韵', '随缘']]

extend() 把元素添加到末尾,但是会展开元素添加
lst1 = [1,2,3]
# lst1.extend('无念')  # [1, 2, 3, '无', '念']
print(lst1)
lst1.extend(['音之韵','随缘'])  # 添加列表
print(lst1)  # [1, 2, 3, '无', '念', '音之韵', '随缘']

insert(索引位置,插入元素)  插队   ---往后挤
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
lst3.insert(2, '兮云')
print(lst3)      # [1, 2, '兮云', 3, '无', '念', '音之韵', '随缘']
lst3.insert(-2, 'carrey')
print(lst3)      # [1, 2, '兮云', 3, '无', '念', 'carrey', '音之韵', '随缘']
lst3.insert(1, ['carrey','哈哈'])
print(lst3)
2,删
删除
del
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
del lst3
print(lst3)
del lst3[2]
print(lst3)   # [1, 2, '无', '念', '音之韵', '随缘']

pop() 指定下标删除
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
lst3.pop(4)
print(lst3)
# 不指定下标时,默认删除最后一个
lst3.pop()
print(lst3)

remove(元素值)  通过元素值删除
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
lst3.remove(3)
print(lst3)   # [1, 2, '无', '念', '音之韵', '随缘']
lst3.remove(3)
print(lst3)   # 如果删除的值在列表中没有,则会报错

clear()  清空
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
lst3.clear()
print(lst3)   # []
3,改
3. 修改  本质是赋值
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
print(lst3[4])
lst3[4] = '无念'
print(lst3)
4,查
4.查
index(查询元素,开始下标,结束下标)
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
print(lst3.index('音之韵'))
print(lst3.index('音之韵', 3, 7))
print(lst3.index('音之韵', 0, 3))   # 指定范围内查找不到时会报错

count() 统计次数
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘',1,4,1]
# 求1出现的次数
print(lst3.count(1))  # 3
5,排序
5.排序
lst4 = [7, 9, 3, 6]
# 倒置---颠倒
lst4.reverse()
print(lst4)  # [6, 3, 9, 7]
# sort()
lst4.sort()
print(lst4)  # [3, 6, 7, 9]  默认从小到大进行排序
# 从大到小进行排序
lst4.sort(reverse=True)
print(lst4)  # [9, 7, 6, 3]
 6,列表去重
# 列表去重(不保持原来的顺序)

l_1 = list(set(l1))
print(l_1)  # [1, 2, 3, 4, 5, 6, 7, 8]
# 列表去重(保持原来的顺序)

l0 = []
for i in l1:
    if i not in l0:
        l0.append(i)
print(l0)

2,元组

元组:元素不能修改(纯元组形式) --- 提高代码的安全性
tup1 = (1, 2, 3)
print(type(tup1))   # <class 'tuple'>
只有一个元素的元素, 一定要加一个逗号
tup2 = (1)
print(type(tup2))   # <class 'int'>
tup2 = (1,)
print(type(tup2))   # <class 'tuple'>
 元组的查询
查 index(元素值)
tup3 = (1,2,3)
t = tup3.index(2)
print(t)

元组"可变"的情况

        元素中有可变类型(列表,字典等)的数据

t3 = (1, 2, 3, ['hehe', 88])
print(t3[3])     # ['hehe', 88]
print(t3[3][0])  # hehe
t3[3][0] = 'haha'
print(t3)  # (1, 2, 3, ['haha', 88])
列表和元组的区别:
    1.列表是动态数组,它们可变且可以重设长度(改变其内部元素的个数)。
    2.元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。
    3.元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。

3,字符串

str = 'qwert12345'
print(type(str))        # <class 'str'>
字符串的操作
*增
join:添加
s1 = 'alex'
s = '+'.join(s1)   # 输出的结果是a+l+e+x
print(s)
s1 = ['a1', 'a2', 'a3', 'a4']
s = ':'.join(s1)  ## 列表转换成字符串 a1:a2:a3:a4 <class 'str'>  前提:s1中的元素都必须是字符串
print(s, type(s))
*删
print(s.strip())  # lstrip消除左侧的,rstrip消除右侧--消除字符串空格,制表符,换行符
upper,lower,capitalize,title:字母的大小写变化
s = 'I love python'
s1 = s.upper()  ##  字母全部大写  实际中应用于验证码的认证
s2 = s.lower()  ##  字母全部小写
s3 = s.capitalize()  ## 第一个单词第一个字母大写其他小写
s4 = s.title()  ## 每个单词第一个字母大写
print(s1)  # I LOVE PYTHON
print(s2)  # i love python
print(s3)  # I love python
print(s4)  # I Love Python
替换
replace:替换
msg = 'alex很厉害,alex是老男孩教育的创始人之一'
msg1 = msg.replace('alex','abc')  ## 默认全部被替换(新,旧,次数(不定义时默认全部替换))
msg2 = msg.replace('alex','abc',1)  # 替换一个
print(msg1)  # abc很厉害,abc是老男孩教育的创始人之一
print(msg2)  # abc很厉害,alex是老男孩教育的创始人之一
切片
split:切片,分割---将字符串分割成列表
s = 'a1:a2 a3 a4:a5'
l = s.split()  #按照空格将字符串分割转化成列表
l = s.split(':')  #按照:将字符串进行分割转化成列表
print(l)
s = 'pyTHon全栈期'
s2 = s1[-1:-5:-1]  # 分片
print(s2, type(s2))
*查
find(),index()用法一样
s = 'I love python'
b = s.find('lo',0,)
b = s.index('lo')
print(b)  # 2
count:计算
s1 = 'sdfsdgsjighwuedvsjhgs;udfhgo'
print(s.count('g'))  # 4


startswith(),endswitch(),isupper(),islower(),isdigith():判断
s = 'taiBAi'
print(s.startswith('t'))    # True # 判断s字符串以t开头
print(s.endswith('i'))  # True #  判断字符串以i结尾
print(s.startswith('B', 3, 6))  # True #  判断3-6的子字符串是不是以B开头
print(s.islower())  # False # 判断是否都是小写组成
print(s.isupper())  # False # 判断是否都是大写组成
print(s.isdigit())  # False # 判断是否都是数字组成

4,字典

字典的创建三种方式
方式一
dic1 = dict((('one', 1), ('two', 2), ('tree', 3)))      # 利用dict函数将元组转化为字典
print(dic1)  # {'one': 1, 'two': 2, 'tree': 3}
方式二
dic2 = dict(one=1, two=2, tree=3)       # 利用dict函数将键值对转化为字典
print(dic2)  # {'one': 1, 'two': 2, 'tree': 3}
方式三
dic3 = dict({'one':1,'two':2,'tree':3})
print(dic3)     # {'one': 1, 'two': 2, 'tree': 3}
基础操作
求长度
dic1 = {'name': '老余', 'age': 18, 'sex': '男'}
print(dic1)
# len()  求长度
print(len(dic1))
增、改
增,改
dic1['sex'] = '女'           # 改
print(dic1)

dic1['weight'] = '50kg'      # 增(有则修改,无则添加)
print(dic1)
setdefault()
dic1.setdefault('hobby', '球类运动')
dic1.setdefault('sex', 20)   # 已经有age不会改变
print(dic1)     # {'name': '老余', 'age': 18, 'sex': '男', 'hobby': '球类运动'}
*删 del,pop(),clear()
del.dic1['weight']           # 删
print(dic1)
ren1 = dic1.pop('age')  # 删
ren2 = dic1.pop('hobby','没有此键')
print(ren2)     # 没有此键
print(dic1)
dic1.clear()    # 清空字典
print(dic1)   # {}
print(dic1['name'])            # 查
*get()
s1 = dic1.get('hobby','没有此键')    # 用来查找
print(s1)       # 没有此键
print(dic1.get('id', 'id不存在'))    # 查寻时如果没有可以返回指定的语句而不报错
update 的用法--有主键就更新,没有主键就添加
dic1.update({'weight': 50})      # 添加
print(dic1)
dic1.update(weight=60)          # 更新
print(dic1)
fromkeys、keys、values、items
fromkeys
dic = dict.fromkeys('abc',100)      # {'a': 100, 'b': 100, 'c': 100}
dic = dict.fromkeys([1, 2, 3], [])
dic[1].append(666)  # {1: [666], 2: [666], 3: [666]}  共用一个,一个变全都变
print(dic)

print(dic1.keys())  # 返回字典的键值
for key in dic1.keys():
    print(key)
print(dic1.values())  # 返回字典的值
for value in dic1.values():
    print(value)
print(dic1.items())  # 返回字典的所有值 生成列表
for i in dic1.items():
    print(i)
批量删除
批量删除
dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18}
把主键含有‘k’的元素删除
方法一
l1 = []
for key in dic:
    if 'k' in key:
       l1.append(key)
for i in l1:
    dic.pop(i)
print(dic)

方法二
for key in list(dic.keys()):
    if 'k' in key:
        dic.pop(key)
print(dic)
循环一个字典时,如果这个改变字典的大小,就会报错。

5,集合

集合--集合是可变的但是元素是不可变的(可哈希)不能是列表,字典    用处--数据之间的关系,列表去重
创建集合
集合的创建
set1 = {1, 2, 3, 'Barry', False, 74}  # {False, 1, 2, 3, 'Barry', 74} 顺序会变
set = set()  # 空集合
print(set1, type(set))
增:
add()
set1.add('xx')
print(set1)

update()--迭代增加(字符串,列表,元组)
set1.update('sdtjfgmvxnfs')   # {False, 1, 2, 3, 's', 'f', 'v', 74, 'g', 't', 'x', 'Barry', 'd', 'j', 'm', 'n'}
print(set1)
remove()--按照元素删除
set1.remove('Barry')        # {False, 1, 2, 3, 74}
print(set1)
# pop()--随机删除
set1.pop()
print(set1.pop())  # 显示删除  1
print(set1)  # {2, 3, 74, 'Barry'}
#改(变相改值--先删再改)
set1.remove('Barry')
set1.add('女神')
print(set1)

集合的运算

# 集合的运算
# 交集
set2 = {1, 2, 3, 4, 5}
set3 = {4, 5, 6, 7, 8}
set4 = set2 & set3   #   '&'  {4, 5}
print(set4)

# 并集
set5 = set2 | set3
print(set2 | set3)
print(set5)     #   '|'  {1, 2, 3, 4, 5, 6, 7, 8}

# 差集--不同的元素 差集谁减谁结果不同
set6 = set2 - set3
set7 = set3 - set2
print(set6)  # {1, 2, 3}
print(set7)  # {8, 6, 7}

# 反交集'^'
set8 = set2 ^ set3      #   '^'  {1, 2, 3, 6, 7, 8}
print(set8)


# 子集issubset()
set_1 = {1, 2, 3}
set_2 = {1, 2, 3, 10}
set_3 = {1, 2, 3, 4, 5, 6}
print(set_1 < set_2)  # 输出的是布尔值True
print(set_1.issubset(set_2))

# 超子集issuperset()
print(set_2 > set_3)        # False
print(set_2.issuperset(set_3))

更多内容可以查看自己学python的过程,简单笔记。-CSDN博客

更多内容可以查看自己学python的过程,简单笔记。-CSDN博客

更多内容可以查看自己学python的过程,简单笔记。-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值