
python3.x基础数据类型
输入输出基本数据类型重要数据结构
列表元组字典bytes字节Set集合
python3.x基础数据类型anaconda3搭建自寻
anaconda3启动jupyter
jupyter notebook --ip=0.0.0.0 --port=8080 --allow-root --no-browser输入输出
# 输出传参
name = 'xiao'
age =22
print("我的名字为%s,年龄为%d"%(name,age))
# 键盘输入
# input返回时字符串
name = input('enter your name:')
print("我的名字是%s"%(name))
# 如若输出为%d,则会出错
基本数据类型
命名规范只能是字母、数字和下划线,且不能以数字开头
数字类型
整型、浮点型、复数
a = 1 print(id(a)) a = 2 print(id(a)) 140058553432368 140058553432400 # 两次的结果是不一样的,表示内存地址位置不同,开辟了新空间 score =99 print(type(score)) num= float(score) print(num)99.0 # 类型转换,查看类型
布尔类型
# True真--->1 # False假--->0 a = True + True + False + True a 3 # 结果为3,可以相加减
字符串类型
# 双引号、单引号都是字符串
字符串类型属于序列的类型
str = 'xiao youpei'
print(str[5:11])
print(str[0:-7])
youpei
xiao
# 切片,含头不含尾
str = 'xiao youpei'
print('i' in str)
True
# 检查是否包含某一元素
s1 = 'xiao'
s2 = 'youpei'
s = s1+s2
print(f'我的名字是{s}')
我的名字是xiaoyoupei
#支持拼接
s1 = 'xiao'
s = s1 * 5
print(f'我的名字是{s}')
我的名字是xiaoxiaoxiaoxiaoxiao
# 字符串重叠的 *** 作
str = 'xiaonyoupei'
print(str)
str = r'xiaonyoupei'
print(str)
xiao
youpei
xiaonyoupei
# 加r,让转义字符失效
s = 'xiao yan'
# 替换字符串中的字符
s1 = s.replace('yan','youpei')
# title(),首字母大写
重要数据结构
列表
alist=[1,'a',[11,22],{'k1':'v1'}]
在内存空间中,列表各元素地址并不连续,
但是会有一个连续的地址指向每一个元素的地址,
这里理解成一个索引文件,一个真实文件,这样的两重效果,
如下图
列表是一个序列的结构
由于上面的特性,所以是可被修改,直接替换下标位置值就行
# 删除元素
注意,remove()和pop()、del都可以删除列表中的元素,
不同的是
del:指定下标元素删除,永久删除(原列表改变)
pop():指定下标元素取出,默认是最后一位,永久取出(原列表改变)
remove():指定元素删除(删除第一个出现的),永久删除(原列表改变)
list = [1,2,3,4,5,6,1,12,3,4,5,6]
print(list)
del list[0]
print(list)
list.pop()
print(list)
list.pop(0)
print(list)
list.remove(5)
print(list)
[1, 2, 3, 4, 5, 6, 1, 12, 3, 4, 5, 6]
[2, 3, 4, 5, 6, 1, 12, 3, 4, 5, 6]
[2, 3, 4, 5, 6, 1, 12, 3, 4, 5]
[3, 4, 5, 6, 1, 12, 3, 4, 5]
[3, 4, 6, 1, 12, 3, 4, 5]
# 增加
append():追加元素到列表末尾
insert():插入指定下标位置
list = [1,2,3,4,5]
print(list)
list.append(6)
print(list)
list.insert(2,111)
print(list)
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
[1, 2, 111, 3, 4, 5, 6]
# 排序
sort():永久排序,改变原列表,字母排序
sorted():暂时排序,不改变原列表,返回一个新的列表
list = [2,7,1,9,3,4]
print(list)
print(sorted(list))
print(list)
print(list.sort())
print(list)
[2, 7, 1, 9, 3, 4]
[1, 2, 3, 4, 7, 9]
[2, 7, 1, 9, 3, 4]
None
[1, 2, 3, 4, 7, 9]
# 字符串列表互转 字符串--->列表:直接split切分后就是一个列表 列表--->字符串:利用' '.join(list),空格将列表元素拼接成 str = 'xiao youpei' list1 = str.split(" ") print(list1) str1 = ' '.join(list1) print(str1) ['xiao', 'youpei'] xiao youpei # extend()是将另外一个列表元素拼接到现有列表后 # 如果直接用append是将整个列表作为元素追加到现有列表了 # reverse()是将列表反转 # 复制列表,新列表开辟一个新的内存空间 # 浅拷贝,只拷贝列表的第一层 copy() list1 = [1,2,3,4,[1,2,3,4],6] list2 = list1.copy() list2[4][0] = "xxx" print(list1) # 出现这种情况的原因就是列表的内存地址性质,可看列表的开始 [1, 2, 3, 4, ['xxx', 2, 3, 4], 6] # 深拷贝,拷贝列表的两层 deepcopy() import copy list1 = [1,2,3,4,[1,2,3,4],6] list2 = copy.deepcopy(list1) list2[4][0] = "xxx" print(list1) print(list2) [1, 2, 3, 4, [1, 2, 3, 4], 6] [1, 2, 3, 4, ['xxx', 2, 3, 4], 6]元组
tuple:不可变的序列结构,相当于不可变的列表 # 元组只有一个元素如何定义 t=(1) 这样的定义不是元组,而是int t=(1,) 元组只有一个元素,为1 其他的用法类似于列表 t = (1,2,[3,4,5],6) t[2][1] = 111 print(t) # 元组中存放可变类型可以修改其值 (1, 2, [3, 111, 5], 6)字典
基于hash散列算法实现,采用键值对的形式,根据key值计算value的值,具有非常快速的查取和插入的速度
3.6版本后,字典是有序的,这个顺序指的是元素插入时的先入顺序
dic ={
'name':'xiao youpei',
'age':22,
'score':[99.99]
}
dic
{'name': 'xiao youpei', 'age': 22, 'score': [99.99]}
# key值必须是不可变的类型,value值可变喝不可变都可以
# 字典不是序列的结构,因而没有下标和切片的机制
dic ={
'name':'xiao youpei',
'age':22,
'score':[100,98,97],
'address':{'original_xiao':'tianchang','now_xiao':'nanjing'}
}
print(dic['address']) # 通过[]取值,不存在会报错
print(dic.get('name'))# 通过get key,不存在为None
dic['money']=10000 # 不存在就增加,存在就修改
print(dic)
{'original_xiao': 'tianchang', 'now_xiao': 'nanjing'}
xiao youpei
{'name': 'xiao youpei', 'age': 22, 'score': [100, 98, 97], 'address': {'original_xiao': 'tianchang', 'now_xiao': 'nanjing'}, 'money': 10000}
# 删除
del dic['age']
# 清空字典
dic.clear()
# items列表格式返回字典的键值对
print(dic.items())
dict_items([('name', 'xiao youpei'), ('age', 22), ('score', [100, 98, 97]), ('address', {'original_xiao': 'tianchang', 'now_xiao': 'nanjing'}), ('money', 10000)])
# 返回所有key、value
print(dic.keys())
print(dic.values())
dict_keys(['name', 'age', 'score', 'address', 'money'])
dict_values(['xiao youpei', 22, [100, 98, 97], {'original_xiao': 'tianchang', 'now_xiao': 'nanjing'}, 10000])
# 取出字典某个元素,永久改变
result = dic.pop('age')
print(result)
22
bytes字节
一般运用于网络编程、爬虫
bs = b'xiao youpei' print(type(bs))Set集合# 字符串和和bytes类型相互转换,默认utf-8 #bytes--->字符串str str = bs.decode() #字符串str--->bytes bs1 = str.encode()
无序不重复,没有下标的机制
# 添加元素 add
s = {1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8}
print(type(s))
print(s)
s.add(10)
print(s)
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8, 10}
# 另外一个对象更新到已有集合 update
set1 = {1,1,2,2,3,3}
set2 = [2,2,3,3,4,4]
set1.update(set2)
print(set1)
{1, 2, 3, 4}
# 删除元素采用 remove、pop(pop方法无法设置下标参数)
# 综上,集合不支持下标也不支持字典通过键获取值
总结:
可变类型:列表、字典、set集合
不可变类型:数字、布尔、字符串、元组、bytes
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)