数据类型
字符串
1、列举python中的基本数据类型
数字:int
布尔值:bool
字符串:str
列表:list
元组:tuple
字典:dict
集合:set
然后我们需要了解一些运算符,应为这些基本类型常常会用于一些运算等等
一、运算符
运算度可以根据最终获得的值不同,可以分为两类,即结果为具体的值,结果为bool值,那么那些结果为具体的值--> 算数运算, 赋值运算,那些结果又为bool值
--> 比较运算、逻辑运算和成员运算
1、算数运算
2、赋值运算
3、比较运算
4、逻辑运算
5、成员运算
二、基本数据类型
1、数字 ---> int
在 python2 中,整数的大小是有限的,即当数据超过一定的范围不再是 int 类型,而是 long 类型,而在 python3 中,无论值针对整数的大小长度为多少,统称为整形int。
2、布尔值 ---> bool类
对于bool 值,只有两种结果即 True 和 False ,期分别对应与二进制中的 0 和 1,而对于真即 True 的值太多了,我们只需要了解加急假 即 False 的值 有哪些
---> None 、空(即【】/()/“”/{})、0
# 以下结果为假 >>>bool(None) False >>> bool(‘’) False >>>bool([]) False >>>bool(0) False >>>bool({}) False
3、字符串 --> str
关于字符串是python 中最常用的数据类型,其用途也很多,我i们可以使用单引号‘’ 或者 "" 类创建字符串
字符串是不可修改的,所有关于字符我们可以从索引、切片、长度、遍历、删除、分割、清除空白、大小写转换,判断以什么开头等方面对字符串进行介绍。
创建字符串
name = “little_five” print(name)
切片
# 获取切片,负数戴白哦倒数第几个,从 0 开始 >>> name = ‘little_live’ >>> name[1] 'i' >>> name[0: -2] # 从第一个到倒数第二个, 不包含倒数第二个 ‘little_fi’
索引 --> index()、find()
name = ‘little_five’ # index -> 获取索引,第二个参数指定获取该字符串或者子序列的第几个 print(name.index('i'm, 2)) # 结果为 4 # find 其作用与index 相似 print(name.find('i', 2)) # 结果为 4
index 和 find 的不同之处在于:若索引的该字符或者序列不在字符串中,对于 index --> ValueError: subdtring not found, 而 对于 find --> 返回 -1
长度:len()
删除: del
判断字符串内容 --.> isslnum()、isalpha()、isdigit()
# 判断是否全为数字 >>> a = "123" >>>a.isdigit() True >>> a = "a123" >>>a.isdigit() False # 判断是否全为字母 >>>d = 'alx--e' >>>d.isalpha() False >>>c = 'alex' >>>c.isdigit() True # 判断是否全为数字或字母 >>> e = "abc123" >>> e.isalnum() True
join()
# joni() 连接字符串。将字符串,元组、列表中的元素以指定的字符(分隔符),连接生成一个新的字符串 # 字符串 >>>name = “littlefive” >>> ‘-’。join(name) 'l-i-t-t-e-f-i-v-e' # 列表 >>> info = ['xiaozhou', 'say','hello', 'world'] >>> '--'.join(info) 'xiaowu--say--hello--world'
5、元组 ---> tuple()
元组即为不可修改的列表、其特性跟list相似、其使用远括号而不是方括号来标识
# 元组 name = ('hello', 'world') print(name[0])
6、字典 -- dict
字典是一系列的 键值对,每个键值对用逗号隔开,每个建都与一个值相对应,可以通过键来获取值,字典是无序的
键的定义必须是可变的,既可以数字、字符串、也可以是元组,还有布尔值等等
而值的定义可以是任意的数据类型
# 字典的定义 info = { 1:""Hello world“, # 键为 数字 (”hello world"):1, # 键为元组 False:{ ”name“:"james", } , "age": 26 }
遍历 --> items 、 keys、 values
7、set 集合
关于集合set的定义,在我看来集合就像一个篮子,你可以往里面村东西也可以从里面取东西,但是这些东西又是无序的,你很难指定单独取某一样东西,同时它又可以通过一定的人方法选取获得您需要的那部分东西
故集合可以创建、增、删、改、关系运算
集合的特性:
1、去重
2、无序
3、每个元素必须是不可变类型(hashable类型,可作为字典的key)
创建:set、frozenset
# 1、创建、将会自动去重、其元素为不可变数据类型、即数字,字符串、元组 rest1 = {”zhangsan“, "list1", '666',("hello", 'world', ), True} test2 = set({”zhangsan“, "list1", '666',("hello", 'world', ), True}) # 2 、不可变集合创建 test = frozenset(”zhangsan“, "list1", '666',("hello", 'world', ), True)
增: add、 update
# 更新单个值 names = {'zhangsan', 'lisi', "wangwu "} names.add("james") # 其参数类型必须是hashtable类型 print(names) # 更新多个值 --> update() names = {"zhangsan", 'luisi', 'wangwu'} names.update({'alex'},'james') # 其参数必须为集合 print(names)
删除:pop、remove、discard
# 随机山输 pop names = {"zhangsan","lisi","wangwu","alex","james"} names.pop() perint(names) # 指定删除,若要删除元素不存在,则报错 names = {"zhangsan","lisi","wangwu","alex","james"} names.remove('lisi') print(names) # 指定删除,如要删除元素不存在,则无视改方法 names = {"zhangsan","lisi","wangwu","alex","james"} names.discard('hello') print(names)
关系运算:交集、并集|、差集-、交集补集^, issubset、issuperset
比如两个班英语班和数学班,我们需要统计两个班中的报名情况,例如即报名了英语班又报名了数学班的同学名字等等,这是后就可以应用到集合的关系运算:
endlish_c = {’zhangsan‘, lisi‘, 'wangeu', 'James', 'Alex'} math_c = {"wangwu", 'liudehua', 'james', 'alex'} # 1、交集 --> in a and in b # 统计即报了英语班又报了数学班的同学 print( english_c & math_c) print(english_c.intersection(math_c)) # 输出为: {’Alex‘, 'James'} # 并集 in a or in b # 统计报名了两个班的所有同学 print(english_c | math_c) print(english.union(math_c)) # 差集 in a not in b # 统计只报了英语班的同学 print(english_c - math_c) print(english_c.difference(math_c)) # 交差集 # 统计值报名一个班的同学 print(englisj_c ^ math_c)
判断两个集合关系是子集、父集 --> issubset、 issuperset
# issubset -- > n 是否为 m 的子集 # n 是否为 m 的父集 n = {1,2,3,4,8,10} m = {2,4,6} i = {1,2,11} print(n >= m) print( m <= n)