Python基础01
一、基础数据类型
1、数字类型
int 整数类型:
- 整数类型与数学中整数的概念一致,整数类型共有4种进制表示:十进制,二进制,八进制,十六进制。默认情况下采用十进制,其他进制需要增加引导符号。
float 浮点型 :
- 浮点数类型与数学中实数的概念一致,表示带有小数的数值。Python语言要求所有浮点数必须带有小数部分,小数部分可以是0,这种设计可以区分浮点数和整数类型。
- float是不精确的,没有整数快。
如:
s = 0.1 + 0.2
print(s) # 0.30000000000000004
complex 复数:
- 复数类型在科学计算中十分常见,基于复数的运算属于数学的复变函数分支,该分支有效支撑众多科学和工程问题的数学表示和求解。python直接支持复数类型,为这类运算求解提供了便利。
- python语言中,复数的虚数部分通过后缀’J’和’ j’来表示
如:
s = 12.3+4j
print(‘s的类型是:’,type(a1))) # class'complex'
数字类型之间的转换
a = 8 print(type(a)) # <class'int'>
b = 5.1 print(type(b)) # <class'claot'>
c = "3" print(type(b)) # <class'str'>
d = 11.2 + 2j print(type(b)) # <class'complex'>
a1 = float(a) print(type(a1)) # <class'float'>
b1 = int(b) print(type(b1)) # <class'int'>
c1 = complex(c) print(type(c1)) # <class'complex'>
d1 = str(d) print(type(d1)) # <class'str'>
2、bool 布尔值
只有两个值,True和False(判断用)对和错
a = 2 print(bool(a)) # True
b = 3.14 print(bool(b)) # True
c = "2" print(bool(c)) # True
d = 0 print(bool(d)) # False
e = "" print(bool(e)) # False
布尔值为False的数:
- None,False (注意,这两个不要加引号,加上引号为字符串,会输出为True)
- 所有值为0的数,包括:0(整数),0.0(浮点数),0.0+0.0j(复数)
- “”(空字符串)
- [] (空的列表)
- {} (空的字典)
- () (空的元祖)
3、Str 字符串
简述:
-
字符串是字符的序列表示,可以由一对单引号(’),双引号(“)或三引号(’’’)构成。
-
其中单引号和双引号都可以表示单行字符串,两者作用相同。使用单引号时,双引号可以作为字符串的一部分,反之亦然。
-
三引号可以表示单行或多行字符串。
常用功能:
a、移除空白:strip() (经常用)
b、分割:split() (经常用)
c、长度:len()
d、索引:s[0],s[1]…
s、切片:s[0:2]
e、拼接:join
如:
s = "hello,TZ"
print(len(s)) # 8 长度
a1 = s[4] # o 索引
a2 = s[2:4] # ll 切片 (左闭右开 最后一位取不到)
a3 = s[-2] # T 反向索引
a4 = s[-6:-3] # llo 反向切片
b1 = s[::2] # hlor 步长(第三个参数是步长)
s = " hello,TZ "
s.strip() # hello,TZ 移除空格
s.lstrip() # hello,TZ 移除左边空格
s.rstrip() # hello,TZ移除右边空格
s = "=hello,TZ="
s.strip("=") # hello,TZ 移除指定字符
s = "hello,TZ"
s.split(",") # ['hello','TZ'] 分割(传一个参数)
s.split() # ['hello,TZ'] 不传参数,整个字符串当做列表一个项
s.split("l",1) # ['he','lo,TZ]第一个是切割字符,第二个是切割次数
s.split("l",2) #['he','','o,TZ']
s = ['hello' , 'python' ,'!']
s1 = a[0] +" "+ a[1] +" " +a[2] # hello pethon ! 索引相加
s2 = " ".join(s) # hello pethon ! 拼接最简单方法python自带
4、list [ ] 列表
有序的可变的元素集合(字符串,数字,列表,布尔值)
例:a = [1,“a”,[ ],True]
常用功能:
- 索引:通过位置去取字符
L = ["a","b","c"]
print(L[0]) #a
print(L[1]) #b
print(L[2]) #c
index: 通过字符去取位置,字符串相同
L = ["a","b","c","b"]
print(L.index["a"]) #0
print(L.index["b"]) #1
print(L.index["c"]) #2
print(L.index["b", 2]) #3 有2个相同值从第2个字符开始取值
- 长度 len():
L = ["a","b","c","b"]
print(len(L)) #4
count:元素的个数,字符串相同
L = ["a","b","c","b"]
print(L.count("b")) #2
- 切片 : 包头不包尾
L = ["a","b","c","b"]
print(L[:2]) #["a","b"]
print(L[:-1]) #["a","b","c"]
print(L[-3:-1]) #["b","c"]
print(L[::-1]) #["b","c","b","a"]
sort: 排序
L = ["a","b","c","b"]
L.sort() #["a","b","b","c"] 正序
L.sort(reverse=True) #["c","b","b","a"] 倒序(按顺序)
L.reverse() #["b","c","b","a"] 倒序
- 增 append() ,extend() ,insert()
L = ["a","b","c"]
L.append("d") #["a","b","c","d"] 添加一个
L1 = [1,2,3]
L.extend(L1) #["a","b","c",1,2,3] 批量添加
# 都是默认添加到最后一位
L.insert(2, "d") #['a', 'b', 'd', 'c']指定插入位置
# 前一个表示插入位置,后一个表示插入字符
- 删 pop(),remove(),del(),clear()
L = ["a","b","c"]
a = L.pop() #c 接收删除的元素
L.pop() #["a","b"] 删除最后一个元素
L.remove("a") #["b","c"] 删除第一个指定元素
del(L[1]) #["a","c"] 删除指定索引元素python自带
L.clear() #[] 删除全部
- 包含 in :元素是否存在于列表
L = ["a","b","c"]
s1 = "c"
s2 = "d"
s1 in L #True L存在于列表
s2 in L #False L没有存在于列表
5、tuple () 元组
有序的不可变的元素集合(字符串,数字,列表,布尔值,元组)
例:a = (1,"a",[],True,['a','b'])
但是元组中有可变的元素时 里面可变的元素可以改变
例:a = (1, 2, [3, 4]) [3, 4]可变
元组的常用功能和列表是一样的
6、dict {} 字典
简介:
-
字典是由键值对构成(key、value)的无序集合(不像字符串、列表和元祖那样有固定的位置)。
-
键(key)的数据类型一般为数字或字符串,且必须是唯一的,不能重复。
-
值(value)可以是任意数据类型。
如:
b = {
1: 2, #key:数字 value:数字
2:'hello', #key:数字 value:字符串
'k1': 'v1', #key:字符串 value:字符串
'k2': [1,2,3], #key:字符串 value:列表
('k3',):('a', 'b'), #key:元组 value:元组
'k4': { #key:字符串 value:字典
'name': ["院庆”,“金立”],
‘age': 18
}
}
dict常用功能:
- 获取值:
D = {
'K1'= 'v1'
'k2'= 'v2'
'k3'= 'v3'
}
print(len(D)) #3 长度
print(D.items()) #([('k1', 'v1'),('k2','v2'),('k3','v3')])
# 拿到字典里所有的元组
print(D.keys()) #(['k1','k2','k3']) 拿到所有的键key
print(D.valuse()) #(['v1','v2','v3']) 拿到所有的值value
# 通过key取value
print(D['k2']) #v2
# get获取
print(D.get('k3')) #v3
print(d.get('k4')) #None 没有K4所以获取的是空的
print(d.get('k4',‘falsel)) #false 但是可以修改默认值 来达到目的
- 增加:setdefault()
print(D.setdefault('k3')) #v3
print(D.setdefault('k4')) #None 没有K4就是空
print(D) # {'k1':'v1','k2':'v2','k2':'v3':None} 改变字典同时增加None
print(D.setdefault('k5', 'v5')) #v5
# 获取V5并在字典中增加'k5':'v5'
print(D) #{'k1':'v1','k2':'v2','k2':'v3':None,'k5':'v5'}
- 修改
D['k2']= 'v8' # 替换
# {'k1':'v1','k2':'v8','k2':'v3':None,'k5':'v5'}
D['k6']= 'v6' # 增加
# {'k1':'v1','k2':'v8','k2':'v3':None,'k5':'v5',‘k6':'v6'}
- 删除
# pop(k):获取并在字典中删除指定的key值
a = D.pop('k5')
print(a) #v5
print(D) #{'k1':'v1','k2':'v8','k2':'v3':None,‘k6':'v6'}
# popitem():获取并在字典中删除最后一项
b = D.popitem()
print(b) #(’k6','v6')
print(D) #{'k1':'v1','k2':'v8','k2':'v3':None}
# clear(): 删除字典内所有
D.clear()
print(D) #{}
7、set {} 集合
简介:
不同元素组成,无序的,不可变的。元素类型同列表,元素可以使用任何数据类型。
如:
d = {} #空字典
s = set() #空集合
s1 = {1, 2, 3, 4}
print(type(s)) #class 'set'
print(type(s1)) #class 'set'
set常用功能:
- 添加 add() update()
s = {1, 2, 3, 4}
s.add("hello") # {'hello', 1, 2, 3, 4} 无序的添加
s.update("hello") # {1, 2, 3, 4, 'l', 'h', 'e', 'o'}
# 无序的把添加内容拆分成一个个字符
- 删除 remove() pop() discard()
s = {1, 2, 3, 4, 'l', 'h', 'e', 'o'}
s.remove(2) # {1, 3, 4, 'l', 'h', 'e', 'o'} 如果有就删没有会报错
s.pop() # {2, 3, 4, 'e', 'o', 'h', 'l'} 随机删除,没有会报错
s.discard(5) # {2, 3, 4, 'e', 'o', 'h', 'l'} 如果有就删没有不会 报错不做任何操作
- 交集 & :两个集合的共同部分
s1 = {1, 2, 3, 4, 8, 9}
s2 = {5, 6, 7, 8, 9}
s3 = s1 & s2 #{8, 9}
- 并集 | :由所有属于集合A或者属于集合B的元素组成的集合
s1 = {1, 2, 3, 4, 8, 9}
s2 = {5, 6, 7, 8, 9}
s4 = s1 | s2 #{1, 2, 3, 4, 5, 6, 7, 8, 9} 相同部分只保留一份
- 差集 - :由所有属于前集合,不属于后面集合的元素组成的集合
s1 = {1, 2, 3, 4, 8, 9}
s2 = {5, 6, 7, 8, 9}
s5 = s1 - s2 #{1, 2, 3, 4,}
- 相对差集 ^ :由所有只属于A和只属于集合B的元素(除了集合外的元素)
s1 = {1, 2, 3, 4, 8, 9}
s2 = {5, 6, 7, 8, 9}
s6 = s1 ^ s2 #{1, 2, 3, 4, 5, 6, 7,}
- 去重
s = [1, 2, 3, 4, 5, 6, 7, 8, 9, 5, 6, 8, 4, 2, 5]
s1 = set(s) # 列表转集合自动取重复
print(s1) #{1, 2, 3, 4, 5, 6, 7, 8, 9,}
print(type(s1)) #class'set'
print(type(list(s1)))#class'list' 集合转列表
s = (1, 2, 3, 4, 5, 6, 7, 8, 9, 5, 6, 8, 4, 2, 5)
s1 = set(s) # 元组转集合自动去重复
print(s1) #{1, 2, 3, 4, 5, 6, 7, 8, 9,}
print(type(tuple(s1)))#集合转元组