python 的 数据类型
数据类型
1.1整型int
py2中有int有范围,超出自动转为long长整型,py3中只有int
整除py2中无小数,可加一行代码实现
十进制转二进制
print(bin(10))
十进制转八进制
print(oct(10))
十进制转十六进制
print(hex(10))
1.2布尔值bool
只有True和False.
0, '' , [] , {} , () , set() , None都可转化为False,其他为True.
1.3字符串
字符串
x='abcdef字'
x[0:3:2] #取字符串元素: ac
len(x) #字符串取长:7
x.strip() #去空格和特殊字符
l='get|a.txt|333'.split('|') #['get', 'a.txt', '333']
l_new='|'.join(l) # get|a.txt|333
#依赖索引
for i in range(0,len(x)): # abcdef字
print(x[i],end='')
i=0
while i < len(x):
print(x[i])
i+=1
#不依赖索引
for item in x:
print(item)
#格式化字符串
'my name is %s' %('egon',) # my name is egon
'my name is {} {} {}'.format('a','b','c') # my name is a b c
'my name is {0} {1} {1}'.format('a','b','c') # my name is a b b
'my name is {x} {y} {z}'.format(z='aaaa',y='bbb',x='ccccc') # my name is aaaa bbb ccccc
方法 | 含义 | 备注 |
---|---|---|
.lower() | 小写 | |
.upper() | 大写 | |
.strip() | 去空格 | lstrip()去左侧空格,rstrip()去右侧空格 |
.split() | 分割 | split('x'),用切割成一个列表,rsplit从右切割 |
.isdigit() | 判断是否是数字 | |
.capitalize() | 首字母大写 | 其余小写 |
.count() | 计数 | 计算()的内容出现次数 |
.encode() | 编码 | (encoding='')''里为编码类型 |
.endswith() | 以...结尾 | ()里为内容 |
.startswith() | 以...开头 | ()里为内容 |
.find() | 查找 | ()里为内容,找不到返回-1 |
.format() | 格式化输出 | '{0}',fomat() |
.join() | 加入 | '_'.join('abc') a_b_c |
.replace() | 替换 | replace(a,b)把a换成b |
1.4列表
#列表
goods=['mac','apple','iphone','tesla']
goods.remove('apple') #
goods.pop(-1) #返回 tesla, pop删除指定元素,并返回原删除元素
方法 | 含义 | 备注 |
---|---|---|
append() | 追加 | |
insert() | 插入 | (0,a)第0个索引位置插入a |
clear() | 清空 | |
extend() | 延长 | 把()的内容挨个追加到列表 |
pop() | 删除 | 删除索引项,返回删除的值 |
remove() | 删除 | 删除值,无值报错 |
reverse() | 反转 | |
sort() | 排序 | 默认升序,(reverse=True)降序 |
1.5字典
1 用途:以key:value的形式存多个值 优点:存取都快,每一个值都有对应的key
2 定义方式:{ }内以逗号分隔多个元素,格式为key:value,其中key必须为不可变类型,value可以是任意类型
dic=dict(x=1,y=2,z=3) # {'x': 1, 'y': 2, 'z': 3}
print(dic) dic={'name':'egon'} # 添加字典元素
dic['age']=10
print(dic) # {'name': 'egon', 'age': 10} list1=['name','age','sex'] # 使用for循环添加 同一个 字典元素
dic={}
for x in list1:
dic[x]=None
print(dic)/
print({}.fromkeys(['name','age','sex'],None)) #使用.fromkeys添加 同一个 字典元素 {'name': None, 'age': None, 'sex': None} dic['name']='EGON' # 修改字典元素
print(dic) #{'name': 'EGON', 'age': 10} dic={'name':'egon','age':18}
print(len(dic)) # 求字典长度 2
dic['name']=dic['name'].upper() #.upper 取字典大写value #删除
dic={'name':'egon','age':18} # pop()可返回被删除的value:egon
res=dic.pop('name') # del (dic['name']) del只能执行删除命令,无返回值
print(res) # pop('sex',none) 无关键字 返回none,不会报错 dic={'name':'egon','age':18}
print(dic.keys()) # dict_keys(['name', 'age'])
print(dic.values()) # dict_values(['egon', 18])
print(dic.items()) # dict_items([('name', 'egon'), ('age', 18)]) for x in dic.keys(): # name
print(x) # age
for item in dic.items(): #('name', 'egon')
print(item) #('age', 18)
for k in egon: # name egon
print(k,egon[k]) # age 18 #转列表
print(list(dic.keys())) # ['name', 'age']
print(list(dic.keys())[0]) # name for k, v in dic.items():
print(k,v) # name egon
# age 18
#取字典元素
dic={'name':'egon','age':18}
print(dic.get("ddsddddddddddddd")) # .get取字典中没有的元素时,返回None
print(dic[ddddddddddddddddddd]) # 报错
#更新
dic={'name':'egon','age':18} #{'name': 'egon', 'age': 19, 'x': 1}
dic.update({'x':1,'age':19}) # 更新,没有则添加,有则覆盖
print(dic)
1.51字典总结
1、存多个值 2、无序 3、可变
方法 | 含义 | 备注 |
---|---|---|
clear() | 清空 | |
get() | 取对应键的值 | get(key)=value |
items() | 取所有键值对 | 伪列表 |
keys() | 取所有键 | 伪列表 |
values() | 取所有值 | 伪列表 |
pop() | 删除 | |
update() | 更新 | a.update(b)把b的内容更新到a |
1.52销售商品问题
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
goods=[]
while True:
for name in msg_dic:
print('商品名:%s 价钱:%s' %(name,msg_dic[name]))
good_name=input('商品名>>: ').strip()
if good_name not in msg_dic:
continue
price=msg_dic[good_name]
while True:
count=input('购买个数>>: ').strip()
if count.isdigit():
count=int(count)
break################################################
info={
'good_name':good_name,
'price':price,
'count':count
}
goods.append(info)
print(goods ,'总价:%s' %(count*price))
1.6元组
什么是元组:“元组就是一个不可变的列表”,把[ ]改成( )
1 用途:存多个值,但是只有读的需求,没有改的需求
强调:在元素个数相同的情况下,使用元组更加节省空间
2 定义方式 t=(1,2,3,4) # t=tuple((1,2,3,4))
3 常用操作+内置的方法
优先掌握的操作:
1、按索引取值(正向取+反向取):只能取
t=(1,2,3,4,5,6)
print(t[1:4]) # (2, 3, 4) 2、依赖索引,依次取值
t=(1,2,'a') #
i=0 #
while i < len(t): # a
print(t[i])
i+=1
////for i in range(len(t)):
print(t[i]) 3 不依赖索引,依次取值 #
for item in t: #
print(item) # a 4、切片(顾头不顾尾,步长)
5、长度
6、成员运算in和not in
7、循环
8、索引和计数
t=('a','b','c','c')
print(t.index('a')) #
print(t.count('c')) #
1.61元组总结
1 存多个值 2 有序 3 不可变
1.7集合
定义方式:在{ }内用逗号分隔开一个个元素 注意的问题 1、集合内没有重复的元素 2、集合的元素必须是不可变类型,但set集合是可变
用途 1、 关系运算 2、去重
s1=set('hello') # 转集合 {'e', 'h', 'o', 'l'}
print(s1)
l=['a','b',1,'a','a'] # 去重 ['b', 'a', 1]
print(list(set(l)))
#去重且保留原顺序(了解)
l = ['a', 'b', 1, 'a', 'a']
l_new=[]
s=set()
for item in l:
if item not in s:
s.add(item) #s={'a','b',1}
l_new.append(item) #l_new=['a','b',1]
#关系运算:
stus_linux={'alex','egon','张全蛋','李铁蛋','oldboy'}
stus_python={'李二丫','wxx','liudehua','alex','egon'}
交集
print(stus_linux & stus_python)
print(stus_linux.intersection(stus_python))
并集
print(stus_linux | stus_python)
print(stus_linux.union(stus_python))
#for循环实现求交集
stus_py_lx=[]
for stu in stus_linux:
if stu in stus_python:
stus_py_lx.append(stu)
print(stus_py_lx)
差集
print(stus_linux - stus_python)
print(stus_linux.difference(stus_python))
交叉补集
print(stus_linux ^ stus_python)
print(stus_linux.symmetric_difference(stus_python))
查看 #
s1={1,'a','b','c','d'} #d
for item in s1: #a
print(item) #c
#b 增加
s1={'a','b','c'} # 一次添加一个值
s1.add('d') #{'b', 'c', 'a', 'd'}
print(s1) s1={'a','b','c'} #一次添加多个值
s1.update({3,4,5}) # {'a', 'c', 3, 4, 5, 'b'}
print(s1)
删除
s1={'a','b','c'} ## 当删除的元素不存在的时候,不会报错
s1.discard(4) #{'c', 'a', 'b'}
print(s1)
s1.remove(4) # 当删除的元素不存在的时候,报错
print(s1)
s1={'a','b','c'} #随机取走一个元素
res=s1.pop() # a
print(res)
方法 | 含义 | 备注 |
---|---|---|
.add() | 添加 | |
clear() | 清空 | |
difference() | 差集 | a.difference(b)=a-b |
discard() | 删除 | |
union() | 合集 | a.union(b)=a+b |
intersection() | 交集 | |
symmetric_difference() | 对称差集 | |
update() | 更新 |
1.8可变与不可变类型
可变类型 | 不可变类型 |
---|---|
列表 | 数字 |
字典 | 字符串 |
集合 | 元组 |
python 的 数据类型的更多相关文章
- python 基本数据类型分析
在python中,一切都是对象!对象由类创建而来,对象所拥有的功能都来自于类.在本节中,我们了解一下python基本数据类型对象具有哪些功能,我们平常是怎么使用的. 对于python,一切事物都是对象 ...
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
- 闲聊之Python的数据类型 - 零基础入门学习Python005
闲聊之Python的数据类型 让编程改变世界 Change the world by program Python的数据类型 闲聊之Python的数据类型所谓闲聊,goosip,就是屁大点事可以咱聊上 ...
- python自学笔记(二)python基本数据类型之字符串处理
一.数据类型的组成分3部分:身份.类型.值 身份:id方法来看它的唯一标识符,内存地址靠这个查看 类型:type方法查看 值:数据项 二.常用基本数据类型 int 整型 boolean 布尔型 str ...
- Python入门-数据类型
一.变量 1)变量定义 name = 100(name是变量名 = 号是赋值号100是变量的值) 2)变量赋值 直接赋值 a=1 链式赋值 a=b=c=1 序列解包赋值 a,b,c = 1,2,3 ...
- Python基础:八、python基本数据类型
一.什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能,计算机虽然很强大,但从某种角度上来看又很傻,除非你明确告诉它,"1"是数字,"壹&quo ...
- python之数据类型详解
python之数据类型详解 二.列表list (可以存储多个值)(列表内数字不需要加引号) sort s1=[','!'] # s1.sort() # print(s1) -->['!', ' ...
- Python特色数据类型(列表)(上)
Python从零开始系列连载(9)——Python特色数据类型(列表)(上) 原创 2017-10-07 王大伟 Python爱好者社区 列表 列表,可以是这样的: 分享了一波我的网易云音乐列表 今天 ...
- 【Python】-NO.97.Note.2.Python -【Python 基本数据类型】
1.0.0 Summary Tittle:[Python]-NO.97.Note.2.Python -[Python 基本数据类型] Style:Python Series:Python Since: ...
- python基本数据类型之集合
python基本数据类型之集合 集合是一种容器,用来存放不同元素. 集合有3大特点: 集合的元素必须是不可变类型(字符串.数字.元组): 集合中的元素不能重复: 集合是无序的. 在集合中直接存入lis ...
随机推荐
- 【BZOJ3193】[JLOI2013]地形生成 DP
[BZOJ3193][JLOI2013]地形生成 Description 最近IK正在做关于地形建模的工作.其中一个工作阶段就是把一些山排列成一行.每座山都有各不相同的标号和高度.为了遵从一些设计上的 ...
- Duilib学习之基础(一个SDK程序)
版权声明:本文为灿哥哥http://blog.csdn.net/caoshangpa原创文章,转载请标明出处. https://blog.csdn.net/caoshangpa/article/det ...
- REUSE_ALV_GRID_DISPLAY_LVC 的user_command
*&--------------------------------------------------------------------* *& Form CALL_FUNCTIO ...
- appium()-java-client-api
//appium java-client-api 介绍 原文地址:http://appium.github.io/java-client/index-all.html#_S_ A B C D E F ...
- Multi-lingual Support
Multi-lingual Support One problem with dealing with non-Latin characters programmatically is that, f ...
- SCOI2017 游记(AFO)
SCOI2017 游记(AFO) Day 0 上午模拟考,又tm用暴力a了一道题,心情舒畅.(要是省选也这样该有多好,2333) 晚上又去吃了什么不知名的东西,自己都忘了,总之好像很好吃的样子. Da ...
- js的单线程与异步
一. js 是单线程和异步 1. js 是单线程的,js 的宿主环境(浏览器)是多线程的,实现异步. 2.js是单线程语言,浏览器值分配给js一个主线程,用来执行任务(函数),但一次只能执行一个任务, ...
- ansible快速学习
推荐文献: 表述的很不错, http://www.mamicode.com/info-detail-1428476.html 附加参考: http://laowafang.blog.51cto.com ...
- ffmpeg遇到inttypes.h和UINT64_C
http://blog.csdn.net/cll131421/article/details/7763657 编译过程:错误一:无法打开包括文件:“inttypes.h”: No such file ...
- 静态路由配置及RIP配置实验
[实验环境] Packet Trace 5.3 模拟软件. [实验步骤] 1.首先要进行IP地址规划.(例如下图格式) 网络名 网络地址 子网掩码 网关 主机IP vlan1 10.10.1.0 25 ...