数字
类型、布尔值
bool、字符串
str、列表
list、元组
tuple、字典
dict,集合
等
具体的值
—>算数运算、赋值运算bool值
—>比较运算、逻辑运算、成员运算。
① 算术运算(a=10 b=20)
② 赋值运算
③ 比较运算
幂运算易错点
-3 ** 2 # -(3×3)
-9
3 ** 2 # +(3×3)
9
2 ** -2 # (1/(2×2))
0.25
name = name = ['张三','李四','王五','孙六',['乔治','佩奇']]
# 用in 判断成员变量
'王五' in name
#输出 :True
# 访问列表中的列表
'乔治' in name
#输出 :False
'乔治' in name[4]
#输出 :True
# 用 not in 判断成员变量
'玛卡巴卡' not in name
#输出 :True
# 访问‘乔治’成员变量
name[4][0]
#输出 :'乔治'
int
整型、long
长整型、float
浮点数、complex
复数、以及布尔值
(0和1)Python3中
,无论整数的大小长度为多少,统称为整型int
。3.1 将字符串数据类型转为int类型, 注:字符串内的内容必须是数字
, int转换成str
#str→ int
a = "100"
#方法1:
a = int(a)
print(a)
print(type(a))
#方法二
print(type(eval(a)))
#int→str
a = 123
b =str(a)
b
# 输出:'123'
3.2 float类型转换成int类型小数点前截取--效率高
,float转成str
#float→int
a = 122.122
b = int(a)
b
# 输出:122
#float→str
a= 123.1
b= str(a)
b
# 输出:'123.1'
3.3 带科学计数法的类型转换
#正数
a = 1.5e50
b = str(a)
b
# 输出:'1.5e+50' 变+号
#负数
a = 1.5e-50
b = str(a)
b
'1.5e-50' 变-号
3.4 bit_length() -->将数字转换为二进制,并且返回最少位二进制的位数
a= 100
print(a.bit_length())
# 输出:7
3.5 查看类型
# type()
a= 12
print(type(a))
# 输出:
# isinstance()
a = 'ssss'
isinstance(a,str)
# 输出:True
在编译器里写布尔值
的时候首字母大写
None () [] {} 0 " " ' '
) bool(())
# 输出:False
bool('')
# 输出:False
bool(0)
# 输出:False
'单引号' "双引号"
创建字符串3.1 字符串的创建
name = 'Big_Boos'
print(name)
3.2 切片(截取字符串)
#获取切片,复数代表倒数第几个,从0开始
print(name[0])
# 输出:B
print(name[0:-2])
# 输出:Big_Bo
3.3 索引–>
只返回第一个
name = 'Big_Boos'
name.index("B",1,5)
# 输出:4
3.4 长度 -->len()
name = 'Big_Boos'
print(len(name))
# 输出:8
3.5 删除 --> del
name = 'Big_Boos'
del name
print(name)
# 输出:报错 NameError: name 'name' is not defined
3.6 判断字符串内容
# 定义四个字符串变量
aa = '123'
bb = 'qwer'
cc = '123qwe'
dd = '123qwe$'
#判断是否全为数字
aa.isdigit()
# 输出:True
aa.isalnum()
# 输出:True
#判断是否全为字母
bb.isalpha()
# 输出:True
#判断是否全为数字或者字母
cc.isalnum()
# 输出:True
dd.isalnum()
# 输出:False
3.7 字符转大小写转换
name ="little_five"
#首字母大写-->capitalize
name.capitalize()
# 输出:'Little_five'
#转为标题-->title
info ="my name is little_five"
info.title()
# 输出:'My Name Is Little_Five'
#全部转为小写-->lower
name ="LITTLE_FIVE"
name.lower()
# 输出:'little_five'
#全部转为大写-->upper
name = "little_five"
name.upper()
# 输出:'LITTLE_FIVE'
#大小写互相转换-->swapcase
name ="lIttle_fIve"
name.swapcase()
# 输出:'LiTTLE_FiVE'
3.8 删除 --> del
name = 'Big_Boos'
del name
print(name)
# 输出:报错 NameError: name 'name' is not defined
3.9 判断以那个字符
开头结尾
name ="little-five"
#判断以什么结尾
name.endswith("e")
# 输出:True
#判断以什么开头
name.startswith("li")
# 输出:True
3.10 格式化输出
变量名
或索引号
传值键值对
传值#forma方法
#方式一:根据变量名传值
info ="my name is {name},I'am {age} years old."
info.format(name="little-five",age=22)
# 输出:"my name is little-five,I'am 22 years old."
#方式二:根据索引号传值
info ="my name is {0},I'am {1} years old."
info.format("little-five",22)
# 输出:"my name is little-five,I'am 22 years old."
#format_map方法 : 根据键值对传值
info ="my name is {name},I'am {age} years old."
info.format_map({
"name":"little-five","age":22})
# 输出:"my name is little-five,I'am 22 years old."
3.11 jion方法
#字符串
name ="littefive"
"-".join(name)
# 输出:'l-i-t-t-e-f-i-v-e'
#列表
info = ["xiaowu","say","hello","world"]
"--".join(info)
# 输出:'xiaowu--say--hello--world'
3.12 分割
特殊标识
将字符串分割
成自定义几个部分
并返回列表特殊标识
将字符串分割
成三部分
并返回列表注意:字符串中是中文的特殊标识符也必须是中文的,保持一致
#partition :只能将字符串分为三个部分,生成列表
name ="little-five"
name.partition("-")
# 输出:('little', '-', 'five')
#split-->分割字符串,并且可以指定分割几次,并且返回列表
name ="little-five-hello-world"
name.split("-")
# 输出:['little', 'five', 'hello', 'world']
name.split("-",2) #指定分割几次
# 输出:['little', 'five', 'hello-world']
# 注意:特殊标识符与字符串保持一致
str1 = '12:34' # 中文冒号
str1.split (':') #英文冒号:未分割
输出:['12:34']
str1.split (':') #中文冒号:分割了
输出:['12', '34']
# 分割结果附给容器(元组)
str2 = '张三-教师'
(name,roal) = str2.split ('-')
(name,roal)
输出:('张三', '教师')
3.13 替代 -->replace
#替代
name ="little-five"
name.replace("l","L")
# 输出:'LittLe-five'
#也可以指定参数,替换几个
name.replace("i","e",2)
# 输出:'lettle-feve'
3.14 清除空白
去除
字符串左右两边
的空格
左边
的空格右边
的空格name =" little-five "
#去除字符串左右两边的空格
name.strip()
# 输出:'little-five'
#去除字符串左边的空格
name.lstrip()
# 输出:'little-five '
#去除字符串右边的空格
name.rstrip()
# 输出:' little-five'
3.15 替换 -->makestran 、translate
待补充。。。
4.1 定义
顺序排列
组成的元素
可以是任何数据类型
即数字、字符串、列表、元组、字典、布尔值等可修改
的。4.2 创建列表简单实例:
#方式1
person = ['name',20,('张三','李四'),False,[1,2,3],{
'str',12},{
'name':'zhang'}]
print(person )
# 输出:['name', 20, ('张三', '李四'), False, [1, 2, 3], {'str', 12},{'name':'zhang'}]
print(person[6])
# 输出:{'name': 'zhang'}
#方式2
names = list(['name',20,('张三','李四'),False,[1,2,3],{
'str',12},{
'name':'zhang'}])
names
# 输出 :['name', 20, ('张三', '李四'), False, [1, 2, 3], {'str', 12}, {'name': 'zhang'}]
4.3 索引、切片
0
开始,从右边是-1开始,(a,b)区间遵循左闭右开原则# [ :] 相当于复制列表
name = ['张三', '张三', '李四', '王尔瓦兹']
str1 = name[ : ]
print(str1)
# 输出:['张三', '张三', '李四', '王尔瓦兹']
#索引:从左边是`0`开始,从右边是-1开始,(a,b)区间遵循左闭右开原则
names = ["little-five","James","Alex"]
print(names[0:-1])
# 输出:['little-five', 'James']
#切片-->单写[ : ]中的一个,左输出后边的,右输出前边的
m1 =names[1:]
print(m1)
# 输出:['James', 'Alex']
m2 =names[:-1]
print(m2)
# 输出:['little-five', 'James']
4.4 #追加元素–>append()
整体
添加(一次只添加一个) name =["xiaowu","little-five","James"]
name.append("alex")
print(name)
# 输出:['xiaowu', 'little-five', 'James', 'alex']
4.5 extend() - 拓展
其他数据类型分解
添加到列表内(扩展多个)#一、将其他列表元素添加至列表内
name =["xiaowu","little-five","James"]
name.extend(["alex","green"])
print(name)
# 输出:['xiaowu', 'little-five', 'James', 'alex', 'green']
#二、将字符串元素添加到列表内
name =["xiaowu","little-five","James"]
name.extend("hello")
print(name)
# 输出:['xiaowu', 'little-five', 'James', 'h', 'e', 'l', 'l', 'o']
#三、将字典元素添加至列表内,注:字典的key。
name =["xiaowu","little-five","James"]
name.extend({
"hello":"world"})
print(name)
# 输出:['xiaowu', 'little-five', 'James', 'hello']
# 四 append()与extend()的不同
# append()
name =["xiaowu","little-five","James"]
name.append(["hello","world"])
print(name)
# 输出:['xiaowu', 'little-five', 'James', ['hello', 'world']] #不同
# extend()
name =["xiaowu","little-five","James"]
name.extend(["hello","world"])
print(name)
# 输出:['xiaowu', 'little-five', 'James', 'hello', 'world'] #不同
4.6 insert()插入
指定
插入列表的某个位置
,前面提到过列表是有序的 name =["xiaowu","little-five","James"]
name.insert(1,"alex") #索引从0开始,即第二个
print(name)
# 输出:['xiaowu', 'alex', 'little-five', 'James']
4.7 pop() 取出
字符串
赋予另外一个变量 name =["xiaowu","little-five","James"]
special_name =name.pop(1)
print(name)
# 输出:['xiaowu', 'James']
print(special_name,type(special_name))
# 输出:little-five
4.8 remove() 移除、del () 删除
#remove -->移除,其参数为列表的值的名称
name =["xiaowu","little-five","James"]
name.remove("xiaowu")
print(name)
# 输出:['little-five', 'James']
#del -->删除
name =["xiaowu","little-five","James"]
#name.remove("xiaowu")
del name[1]
print(name)
# 输出:['xiaowu', 'James']
4.9 sorted()–>排序,
reverse =True
,则表示倒序
>>> #正序
# 数字排序
num =[11,55,88,66,35,42]
print(sorted(num))
# 输出:[11, 35, 42, 55, 66, 88]
#字符串排序
name =["xiaowu","little-five","James"]
print(sorted(name))
# 输出:['James', 'little-five', 'xiaowu']
#倒序
# 数字排序
num =[11,55,88,66,35,42]
print(sorted(num,reverse=True))
# 输出:[88, 66, 55, 42, 35, 11]
4.10 比较大小
list1[i]
与list2[i]
作比较# ist1[0]与list2[0]作比较,(789 > 123 )后边的不做比较了
list1 = [123,789]
list2 = [789,123]
list1 < list2
# 输出:True
4.11 拼接
+
两边的数据类型必须是一致的 list1 = [123,789]
list2 = [789,123]
list3 = list1 + list2
list3
# 输出:[123, 789, 789, 123]
4.12 列表复制
*
list1 = [123, 789]
list3 = list2*3
list2
# 输出:[789, 123]
list3
# 输出:[789, 123, 789, 123, 789, 123]
不可修改
的列表
。其于特性跟list相似。其使用圆括号(次)和逗号(主)
来标识。5.1 定义元组
# 定义一个空元组
tuple1 = ()
type(tuple1)
# 输出:
# 为什么用逗号标识
# 不加逗号,int类型
tuple2 = (1)
type(tuple2)
# 输出:
# 加逗号,元组类型
tuple3 = (1,)
type(tuple3)
# 输出:
# 只用逗号,不用小括号
tuple5 = 2,
type(tuple5)
# 输出:
# 定义一个name元组
name = ("little-five","xiaowu")
print(name)
# 输出:('little-five', 'xiaowu')
# 修改元组元素
name[0] = 'update'
# 输出:报错 :Traceback (most recent call last):
# File "", line 1, in
# name[0] = 'update'
#TypeError: 'tuple' object does not support item assignment
5.2 元组元素的添加
# 注意:('弗兰奇',)的逗号
name = ('蒙奇D·路飞', '索隆', '乔巴', '山治', '妮可罗宾', '娜美')
name[:4] + ('弗兰奇',) + name[4:]
# 输出:('蒙奇D·路飞', '索隆', '乔巴', '山治', '弗兰奇', '妮可罗宾', '娜美')
无序的
—>dict类6.1 字典的定义
键值对
,每个键值对用,
隔开,键与值之间用:
隔开。键的定义
必须是不可变
的,即可以是数字、字符串也可以是元组,还有布尔值等。值的定义
可以是任意数据类型
6.1 基本语法
#字典的定义
info ={
1:"hello world", #键为数字
("zhang"):"张", #键为元组
False:{
#键为布尔
"name":"James"
},
"age":22 #键为字符串
}
print(info)
# 输出:{False: {'name': 'James'}, 1: 'hello world', 'age': 22, 'zhang': '张'}
6.2 遍历 -->items、keys、values
# 定义字典info
info ={
"name":"little-five",
"age":22,
"email":"99426353*@qq,com"
}
# 遍历字典info的键
# 方式1-for循环遍历
for key in info:
print(key)
# 输出:
email
age
name
# 方式2 keys()函数遍历
print(info.keys())
# 输出:dict_keys(['email', 'age', 'name'])
#遍历字典info的值
print(info.values())
# 输出:dict_values(['99426353*@qq,com', 22, 'little-five'])
#遍历字典info的键值对
print(info.items())
# 输出:dict_items([('email', '99426353*@qq,com'), ('age', 22), ('name', 'little-five')])
7.1 关于集合set的定义:
可存可取
无序
的,很难指定单独去取
某一个元素方法筛选
去获得
你需要的那部分元素
。创建、增、删、关系运算
。{}
存储,标识,中间用,
隔开7.2 集合的特性:
不可变类型
即(hashable类型,可作为字典的key)。7.3 定义一个集合
自动去重
,不可变数据类型
,即数字、字符串、元组不可变集合
的创建 -->frozenset()
#方式1
test01 ={
"zhangsan","lisi","wangwu","lisi",666,("hello","world",),True}
#方式2 set()
test02 =set({
"zhangsan","lisi","wangwu","lisi",666,("hello","world",),True})
#方式3 不可变集合的创建 -->frozenset()
test =frozenset({
"zhangsan","lisi","wangwu","lisi",666,("hello","world",),True})
7.4 增:add、update
#更新单个值 add()
names ={
"zhangsan","lisi","wangwu"}
names.add("james") #其参数必须为hashable类型
print(names)
# 输出:{'james', 'wangwu', 'zhangsan', 'lisi'}
#更新多个值 update()
names ={
"zhangsan","lisi","wangwu"}
names.update({
"alex","james"})#其参数必须为集合
print(names)
# 输出:{'james', 'alex', 'wangwu', 'zhangsan', 'lisi'}
7.5 删除:pop、remove、discard
随机
删除 pop()
指定
删除,若要删除的元素不存在
,则报错
remove()
指定
删除,若要删除的元素不存在
,无视
该方法discard()
# pop()随机删除
names ={
"zhangsan","lisi","wangwu","alex","james"}
names.pop()
# 输出:'alex'
print(names)
# 输出:{'lisi', 'james', 'zhangsan', 'wangwu'}
# remove()指定删除,若要删除的元素不存在,则报错
names ={
"zhangsan","lisi","wangwu","alex","james"}
names.remove("lisi")
print(names)
# 输出:{'alex', 'james', 'zhangsan', 'wangwu'}
# discard() 指定删除,若要删除的元素不存在,无视该方法
names ={
"zhangsan","lisi","wangwu","alex","james"}
names.discard("hello")
print(names)
# 输出:{'alex', 'lisi', 'james', 'zhangsan', 'wangwu'}
7.6 关系运算:交集 & 、并集 | 、差集 - 、交差补集 ^ 、 issubset 、isupperset
# 定义两个集合
english_c ={
"ZhangSan","LiSi","James","Alex"}
math_c ={
"WangWu","LiuDeHua","James","Alex"}
# 交集 in a and in b
# 方式1
print(english_c & math_c)
# 输出:{'Alex', 'James'}
# 方式2
print(english_c.intersection(math_c))
# 输出:{'Alex', 'James'}
# 并集 in a or in b
# 方式1
print(english_c | math_c)
# 输出:{'James', 'LiSi', 'ZhangSan', 'LiuDeHua', 'Alex', 'WangWu'}
# 方式2
print(english_c.union(math_c))
# 输出:{'James', 'LiSi', 'ZhangSan', 'LiuDeHua', 'Alex', 'WangWu'}
# 差集 in a not in b
# 方式1
print(english_c - math_c)
# 输出:{'ZhangSan', 'LiSi'}
# 方式2
print(english_c.difference(math_c))
# 输出:{'ZhangSan', 'LiSi'}
# 交差补集 (A∪B - A∩B)
print(english_c ^ math_c)
# 输出:{'LiSi', 'ZhangSan', 'LiuDeHua', 'WangWu'}
7.7 判断两个集合的关系是否为子集、父集 --> issubset 、isupperset
# 定义 n,m,l三个集合
n ={
1,2,4,6,8,10}
m ={
2,4,6}
l ={
1,2,11}
# 判断n 是否为 m的父集
# 方式1
print(n >= m)
# 输出:True
# 方式2
print(n.issuperset(m))
# 输出:True
# 判断n 是否为l的父集
print(n.issuperset(l))
# 输出:False
# 判断 m 是否为 n的子集
# 方式1
print(m <=n)
# 输出:True
# 方式2
print(m.issubset(n))
# 输出:True
默认浮点型
a = 0.000000000025
a
# 输出:2.5e-11
a = 1.5e10
a
# 输出:15000000000.0
解释: 2.5 × 1 0 − 11 2.5 × 10^{-11} 2.5×10−11 1.5 × 1 0 10 1.5 × 10^{10} 1.5×1010