python的数据类型及操作

python的数据类型

一、基础语法

terminal 系统终端,命令行
python console python命令
# 单行注释
“”" “”" 多行注释
快捷多行注释 ctrl+/
输入:input

name = input("请输入:")
print(name ,"他是个厉害的人")

变量的作用:存储数据
变量名规则:
1、字母 数字 _ 组成 不能以数字开头、
2、不要使用python的关键字
在python console可以查看所有的关键字

import keyword
keyword.kwlist

变量名规范:
见名知义
下划线连接
驼峰命名法

二、数据类型

1、标识符:在python 里面自己命名的东西叫标识符
变量名称是不是标识符? 是
函数名称、类名称、模块名、包名 均为标识符
2、数据类型
1)整型
age = 18 #数字、整数、小数
2)字符串
3)布尔类型 True False
4)列表 list a = [‘yuyan’,1]
5)元祖 tuple b = (‘yuyan’,1)
6)字典 dict c = {“name”:“xiaojing”,“age”:1}
7)集合 set

三、字符串

1、字符串数据左右两边必须加引号  ' "  """
2、三引号可以多行打印
name_two = """ hhhhhhhh 
wozai 
"""
如果字符串内部有双引号,那么用单引号表示字符串
如果字符串内部有单引号,那么用双引号表示字符串
name_three = "'小美'很好看"
# TODO: 如果想要用字符串表示windows系统下面的路径
在字符串前加一个r'D:\test\'
file_path = r'D:\test\1.txt'

1、字符串的操作

1)字符串的拼接 +

name_one = ' bad'
name_two = ' bay'
nane_full = name_one +'' + name_two
print(nane_fu1l)

2)字符串重复多次 *

name = "badboy"
print(name * 5)

3)获取字符串的某个字符
判断字符长度:len()
打印:print(len())

name = "你好 世界"

读取数据索引从0开始

name_one = name[0] 

从右面开始从-1 开始

name_two = name[-1]

切片

a = "今天很好,是不是"
a_01 = a[start: end: step]  取左边,不取右边
print(a[0:2])  #今天

步长
获取所有print(a[:])
prin t(a[::2]) 步长为2 跳一个
步长如果为正,左边往右边。步长为负,右边往左边数
4)数据类型转换

age = "4"
money = "5"
将字符串转化为数字 int(str)
print(int(age)*int(money)) #20
age = 4
money = 5
将数字转化为字符串 str
print(str(age)*str(money)) #45

5)复制
可以通过索引复制,切片复制

str1 = "cainaio 666"
str2 = str1[0:]

2、字符串的内置函数操作

str1  = "my baby i love you "
print(len(str1))                       #  获取字符串长度
print(str1.upper())                    #小写转大写
print(str1.upper().lower())            #在转为小写
str2 = "hapyy NEW Year"
print(str2.swapcase())                 #大小写转化

1、查找 :用find
当查找不到find会报-1

if_snow = str1.find("wo")
print(if_snow)                        #  -1

当find找到指定元素的时候,返回它的索引值,必须是连续的字符

if_snow1 = str1.find("i")
print(if_snow1)

2、index 和find 用法一样
不同的是 index 找不到时会报 ValueError

 if_snow3 = str1.index("wo")
print(if_snow3)

3、替换replace 字符串一旦定义 除非重新赋值 不然不会发生变化

dl_name = "本本"
new_dl = dl_name.replace("本","哈")     
print(dl_name)    #本本
print(new_dl)     #哈哈
new_dl2 = dl_name.replace("本","哈",1)   
print(new_dl2)    #哈本

4、统计 count

str3 = "我爱你 我爱你 我爱 我爱你 我爱你"
print(str3.count("爱"))       #5

5、join 字符串拼接 正规方式 代替 +

s1 = "wo "
s2 = "我的理想"
s3 = "hhh "
print("".join([s1,s2,s3]))       #wo 我的理想hhh 

6、字符串分割 split

a = "hello world"
b = a.split("w")            #以w 为界限分割
print(b)                    #['hello ', 'orld ']
c = a.split(" ")            #['hello', 'world']
print(c)                    #['hello', 'world']
a1 = "hello/world/soft/sfh"
b1 = a1.split("/")
print(b1)                 #['hello', 'world', 'soft', 'sfh']

7、strip 用的多 去掉左右两边的指定字符

str3 = " 我爱你 "
print(str3.strip(' 你'))             # 我爱

8、判断字符串是不是正整数

a = '2345a678'
print(a.isdigit())          # f

四、列表的操作

1、列表 存储很多数据
列表可以存储不同数据类型的数据
字符串不可以修改
列表可以被修改,可变的数据类型
2、列表的操作
1、添加
1)、添加一个元素append

list1 = ["小米"]
#添加新的元素 , append 一次只添加一个 添加到最后
list2 = list1.append("小红")
#打印list1
print(list1)                #结果['小米', '小红']
# 注意: 如果打印list2  报None
print(list2)               #None

2)添加多个元素 extend
extend 添加多个元素 添加到最后

list1.extend(["小明","小黑","小白","小美"])       #添加的是列表所以用【】
print(list1)          #结果:['小米', '小红', '小明', '小黑', '小白', '小美']
#注意:不可以连续使用2次append
# l1 = list1.append("小区").append("很好")
# print(list1)         #报错

3)、向指定的位置添加 insert
输入索引及内容 list1.insert(索引值,内容)

list1.insert(1,"小小")
print(list1)  #['小米', '小小', '小红', '小明', '小黑', '小白', '小美']

2、删除
1)删除指定的值 remove

list1.remove("小小")
print(list1)  #['小米', '小红', '小明', '小黑', '小白', '小美']

2)删除指定的索引 pop

list1.pop(2)
print(list1)  #['小米', '小红', '小黑', '小白', '小美']
#pop()没有参数时默认删除最后一个
list1.pop()
print(list1)   #['小米', '小红', '小黑', '小白']
a = list1.pop(1)
print(a)  #小红   可以用变量接收

3)删除所有的元素 clear

list1.clear()
print(list1)  #[]

4)del 不要去用

del list1
print(list1) #NameError: name 'daolaos' is not defined  没有定义
# del 从内存中全部清空

3、修改

list3 = ['小米', '小红', '小黑', '小白']
list3[1] = ['花花']
print(list3) #['小米', ['花花'], '小黑', '小白']

4、列表的函数
1)index 获取索引

print(list3.index("小米"))  #0

2)count 获取出现的次数

list4 = ['小米', '小红', '小黑', '小白']
print(list4)
print(list4.count('小')) #4

3)逆序 reverse 直接修改原来的变量

list4.reverse()
print(list4)  #['小白', '小黑', '小红', '小米']

3)逆序2 重新创建一个变量 不会修改原来的变量

a = list4[::-1]
print(list4)  #['小白', '小黑', '小红', '小米']
print(a)      #['小米', '小红', '小黑', '小白']

4)排序 sort

list5 = ["p","k","l","a"]
list5.sort()
print(list5)  #['a', 'k', 'l', 'p']

数学排序

list1 = [1,3,5,6,2,8,7]
list1.sort()
print(list1)#[1, 2, 3, 5, 6, 7, 8]
list1.sort(reverse = True)           #reverse:反转、逆序
print(list1) #[8, 7, 6, 5, 3, 2, 1]

五、字典Dict

1、列表 存储多个数据,想获取单个元素可读性不强

zxx_info=[zxx,17,"女","西游记","还珠格格","庆余年","彭于晏","宝强"]
如果要获取最喜欢的电视   获取麻烦   可读性差

字典 存储多个数据,想获取单个元素 用字典
有标记位 key : value
key :key值不可变类型 唯一 一般用字符串表示key值

字典表示:dict1[key值] 直接获取

zxx_info = {"name":"祝","age":17,"fava_tv":"西游记","sex":"女","most_tv":"还珠格格"}
age  =  zxx_info["age"]
print(age)

2、字典操作
获取字典的长度 len

zz_info = {"name":"祝","age":17,"fava_tv":"西游记","sex":"女","most_tv":"还珠格格"}
print(len(zz_info))     #5

总结:
字典是无序的数据类型
那些有序 :list 有顺序,索引 字典没有索引

print(zz_info(2))  报错

3、字典可变类型 可进行增删改查

1)增
添加最喜欢的明星

zz_info = {"name":"祝","age":17,"fava_tv":"西游记","sex":"女","most_tv":"还珠格格"}
zz_info["mingx"] = ["周杰伦","五月天"]
print(zz_info)  #{'name': '祝', 'age': 17, 'fava_tv': '西游记', 'sex': '女', 'most_tv': '还珠格格', 'mingx': ['周杰伦', '五月天']}

2)修改

zz_info["mingx"] = "小妹"
print(zz_info)    #{'name': '祝', 'age': 17, 'fava_tv': '西游记', 'sex': '女', 'most_tv': '还珠格格', 'mingx': '小妹'}

字典里面的单引号双引号没有区别 自动使用单引号
使用元素修改和元素添加的方式是一样的
当key值不存在是就添加,key值存在时,修改就会覆盖原来的数据
3)删除
随机删除

zz_info.popitem()    #不带参数
print(zz_info)      #{'name': '祝', 'age': 17, 'fava_tv': '西游记', 'sex': '女', 'most_tv': '还珠格格'}

删除指定的key

zz_info.pop("age")

print(zz_info)  #{'name': '祝', 'fava_tv': '西游记', 'sex': '女', 'most_tv': '还珠格格'}

其他方式 清除

zz_info.clear()

print(zz_info)                  #{}

通过元组存储数据

zz_info.items()
print(zz_info.items())#   dict_items  ([('name', '祝'), ('fava_tv', '西游记'), ('sex', '女'), ('most_tv', '还珠格格')])

获取所有的key

print(zz_info.keys())    #dict_keys(['name', 'fava_tv', 'sex', 'most_tv'])

获取所有的value

print(zz_info.values())   #dict_values(['祝', '西游记', '女', '还住格格'])

总结

字典: 1、无序 可变的类型
2、key 唯一不可变类型 value随意
3、增删改
4、items()以元组形式存储数据, keys()获取key ,values()获取value

六、元组 tuple

1、元组和列表
列表表示
list1 = [“小米”,“小红”,“哈哈”,“喜喜”]
元组表示

tuple1  = ("小米","小红","哈哈","喜喜")
print(tuple1)

2、获取
获取某一个元素,索引 和列表一样
获取多个元素,切片,和列表一样
3、元组 可以添加修改删除?
不能 只能重新赋值,因为元组不可变
4、元组中含有列表 可以添加删除修改吗

tuple2 =  ("小米","小红","哈哈","喜喜",["小花","宝宝","嘿嘿"])
tuple2[4] = ["风","雨","电"]
print(tuple2)#报错  不可以修改

5、修改元组中的列表

tuple2[4][0] = ["风"]
print(tuple2)  #('小米', '小红', '哈哈', '喜喜', [['风'], '宝宝', '嘿嘿'])

元组的不可变性 是相对的 不是说 里面的所有的内容完全不变
只要看修改的索引的前面是不是一个可变类型
例如:

tuple3 =  ("小米","小红",{'name': '祝', 'age': 17, 'fava_tv': '西游记'})
#索引前是元组  肯定不可修改
tuple3[2] = " 呵呵"
#tuple[2]是字典  可变
tuple3[2]["name"] = "呵呵"
print(tuple3)  #('小米', '小红', {'name': '呵呵', 'age': 17, 'fava_tv': '西游记'})
zx = [ "小米","小红",("哈哈","喜喜")]
#zx[2]前面是列表  可变
zx[2] = "呵呵"
print(zx)#  ['小米', '小红', '呵呵']
#元组不可变
zx[2][1] = "hehe"
print(zx)  报错
空元组
tuple4 = ()
print(tuple4)  #是元组
注意:
1个元素的元素表示,不是一个元组,而是去掉括号后原始的数据类型
如果想表示一个元素的元组  在元素后面加一个逗号,
tuple4_1 = (2)
print(tuple4_1) # <class 'int'>
tuple4_2 = (2,)
print(tuple4_2)  #是元组
print(len(tuple4_2))  #1 长度为1

七、集合 set

set1 = {"小米","小红","哈哈","喜喜"}
print(set1)  #{'喜喜', '小红', '小米', '哈哈'}

1、集合不是键值对 是无序的 不能通过索引获取
主要作用:重复的元素直接丢掉

set2 = {"小米","小红","哈哈","喜喜","小米","小红","哈哈","喜喜"}
print(len(set2))  #4

2、集合转换成列表

set2 = list(set(["小米","小红","哈哈","喜喜","小米","小红","哈哈","喜喜"]))
print(set2) #['喜喜', '小红', '小米', '哈哈']

总结:
元组: 1、一个元素的元组必须要加, 2、元组不可变和列表的可变性
集合: 主要 1、去重 2、无序

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值