python 数据类型、进制转换
数据类型
存储单位
最小单位是bit,表示二进制的0或1,一般写作b
最小的存储单位是字节,用byte表示,1B = 8b
1024B = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
2^32 = 2^10 * 2^10 * 2^10 * 2^2 = 4GB
进制转换
十进制:
基数为0~9,逢10进1
示例:123 = 1 * 10^2 + 2 * 10^1 + 3*10^0 = 100 + 20 + 3 = 123
二进制:
基础0和1,逢2进1,python中使用'0b'表示
示例:0b110100 = 2^5 + 2^4 + 2^2 = 32 + 16 + 4 = 52
十进制转二进制:除2取余,倒序书写
22 = 0b10110
八进制:
基数0~7,逢8进1,python中使用'0o'表示
示例:0o123 = 1 * 8^2 + 2 * 8^1 + 3 * 8^0 = 64 + 16 + 3 = 83
八进制转二进制:八进制的1位表示3位二进制数
0o123 = 0b001 010 011
十六进制:
基数0~9、A~F,逢16进1,python中使用'0x'表示
示例:0xAB = 10 * 16^1 + 11 * 16^0 = 160 + 11 = 171
十六进制转二进制:十六进制1位表示4位二进制数
0xABC = 0b1010 1011 1100
计算机中的数据,是以哪种进制存储的?为什么?
二进制,因为计算机设计时只识别二进制。具体原因如下:
稳定性高(0和1)、成本低(技术上易实现)、与生活中的真假逻辑相吻合(易于解决实际问题)
计算机中的数据如何存储?
如何存储负数?
最高位作为符号位:0表示正数,1表示负数
虽然牺牲了最高位,但是可以解决负数存储问题,进而简化了硬件设计成本
原码反码和补码
正数的三码一致,只有负数才有反码和补码
负数的反码等与原码符号位不变,其余位取反
负数的补码等于反码加1
计算机中的数据都是以补码存储的
数据类型
不同的数据类型都是为了解决实际问题而出现,就是为了进行各种运算而存在
Python中常用数据类型:整型、浮点、布尔、字符串、列表、元组、字典、集合、空等
整型(int):就是数学中的整数
浮点(float):就是数学中的小数
pi = 3.14
print(pi)
print(type(pi))
# 科学计数法
b = 3.14e-3
print(b)复数(complex):了解
c = 3 + 5j
print(type(c))布尔(bool):只有True/False两个值,对应于生活中的真假
空(NoneType):只有一个值None
字符串(str):使用引号括起来的一串字符
可以使用单引号双引号或者三引号定义
转义:就是时特定的字符失去原有的意义,使用'\'进行转义
单引号中的单引号,双引号中的双引号
很多时候'\'也需要转义
特殊:'\n'表示换行,'\t'表示制表
列表(list):通过[]进行定义,可以存储一系列的任意数据,可以添加删除元素
示例
lt = [1, 3.14, 'hello']
print(lt)
print(type(lt))
# 提取元素,下表从0开始,存在越界问题
print(lt[0])元组(tuple):通过()进行定义,可以存储一系列的任意数据,不可以添加删除元素
示例
tp = ('小芳', '小敏', '小杜')
print(tp)
print(type(tp))
print(tp[0])
# 定义单个元素的元组时需要添加一个','
tp2 = (123,)
print(type(tp2))集合(set),使用{}进行定义,可以存贮一系列的任意数据,集合中的数据不能重复
示例
s = {'李白', '辛弃疾', '苏东坡', '欧阳修', '李白', '杜甫'}
s2 = {'李白', '宋晓峰', '杜甫'}
print(s)
print(type(s))
# 交集
print(s & s2)
# 并集
print(s | s2)
# 差集
print(s - s2)
print(s2 - s)
# 定义空集合,不能使用{},这是留给定义空字典使用的
# s3 = {}
s3 = set()
print(type(s3))字典(dict),使用{}进行定义
元素是由键值对组成
键和值之间使用':'连接
字典中的键时唯一的,值可以是任意的
字典中的元素可以添加和删除
示例:
xiaoming = {'name': '小明', 'age': 20}
print(xiaoming)
print(type(xiaoming))
# 根据键提取值
print(xiaoming['name'])
# 根据不存在的键获取值时会报KeyError错
# print(xiaoming['height'])
# 等价于xiaoming['name'],但是当键不存在时不报错,返回None
print(xiaoming.get('height'))
# 统计元素个数
# 字典表示键值对个数
print(len(xiaoming))
# 列表表示元素个数
print(len(lt))
# 字符串表示字符个数
print(len('你好'))
类型转换
隐式类型转换:运算、条件判断等
强制类型转换:使用专门的函数就行类型转换
int:转换为整型,可以通过base参数指示带转换数据的格式
float:转换为浮点数
str:转换为字符串
list:转换为列表,参数必须是可迭代对象(str、tuple、set、dict)
tuple:转换为元组,使用方法同上
set:转换为集合,使用方法同上
dict:转换为字典,参数的内容必须是成对出现的
获取变量地址
函数:id
示例:
a = 10
print(id(a))
# 通过id可以获取变量的地址
# a = 20
# print(id(a))
b = 10
print(id(b))说明:了解,不要深究
数据类型 - 集合
添加:add
删除:
remove,元素存在就删除,不存在就爆粗
discard,元素存在就删除,不存在也不保存
pop,随机弹出一个元素,返回后删除元素
清空:clear
并集:union
交集:
intersection:不改变原集合
intersection_update:使用交集更新原集合
差集:
difference:不会改变原集合
difference_update:使用差集更新原集合
判断:
isdisjoint:是否没有交集
issubset:是否是另一集合的子集
issuperset:是否是另一集合的超集(父集)
- 字典
获取:
d[key]:根据键获取值,不存在时或报错
d.get(key, '默认值'):不存在时默认返回None,也可以指定默认值
更新:
d[key] = value 键存在就更新,不存在就添加
d.update(d2) 将字典d2中的键值对依次添加到d中,已经存在的键会覆盖
删除:
del d[key]
d.pop(key) 返回删除的值
清空:clear
所有键:keys 返回可迭代对象
所有值:values 返回可迭代对象
- 字符串
join:拼接
split:切割,从左边
rsplit:从右边切割
splitlines:按照换行符切割
自行测试:
find:查找第一次出现指定字符串的位置,没有时返回-1
rfind:从右边开始查,返回第一次出现的位置 upper:全大写
lower:全小写
swapcase:大小写转换
capitalize:首字符大写
title:每个单词首字母大写 count:统计某个字符串出现的次数
startswith:是否以指定字符串开头
endswith:是否以指定字符串结尾 istitle:是否每个单词首字母大写
islower:是否是全小写
isupper:是否是全大写
isdecimal:是否是数字
isalpha:是否是字母
isalnum:是否是数字或字母
python 数据类型、进制转换的更多相关文章
- Python中进制转换函数的使用
Python中进制转换函数的使用 关于Python中几个进制转换的函数使用方法,做一个简单的使用方法的介绍,我们常用的进制转换函数常用的就是int()(其他进制转换到十进制).bin()(十进制转换到 ...
- python 实现进制转换(二进制转十进制)
摘自https://baike.baidu.com/item/%E5%8D%81%E8%BF%9B%E5%88%B6%E8%BD%AC%E4%BA%8C%E8%BF%9B%E5%88%B6 pytho ...
- python任意进制转换
python任意进制转换 import string def module_n_converter(q, s, base=None): """ 将自然数按照给定的字符串转 ...
- python实现进制转换(二、八、十六进制;十进制)
python实现进制转换(二.八.十六进制:十进制) (一)十进制整数转为二.八.十六进制 1.format实现转换>>> format(2,"b") # (10 ...
- python中进制转换
使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer numb ...
- Python 各种进制转换
#coding=gbk var=input("请输入十六进制数:") b=bin(int(var,16)) print(b[2:]) 详细请参考python自带int函数.bin函 ...
- python 中进制转换及format(),int()函数用法
python中数值型变量好像只能是十进制形式表示,其他类型变量只能以字符串形式存在,可以通过format函数将int类型变量转换成其他进制字符串,如下所示: v_code=15 # 2进制 x=for ...
- python的进制转换
转载于:https://www.cnblogs.com/FWF1944/p/11132409.html(方法论190404) Python整数能够以十六进制,八进制和二进制来编写,作为一般以10位基数 ...
- python之进制转换
Python中二进制是以0b开头的: 例如: 0b11 则表示十进制的3 8进制是以0开头的: 例如: 011则表示十进制的9 16进制是以0x开头的: 例如: 0x11则表示十进制 ...
- python的进制转换二进制,八进制,十六进制及其原理
#!usr/bin/env python# coding:utf-8def binary(): '''二进制的方法与算法''' Number = 10 Number1 = 20 Nu ...
随机推荐
- 解决WPF图片模糊最佳方法
对于图片显示模糊相信很多人都遇到过,其实,有些图片会因为垂直分辨率/水平分辨率不同而造成在WPF界面上显示出现模糊. WPF默认是96Dpi,但有些图片可能是72DPI甚至更低或更高,这样就会出现图片 ...
- SQL insert语句中插入带有特殊符号
1.插入数据库字符串中海油单引号,需要转义处理,例如插入“I‘m OK!” SQL语句: INSERT INTO tableTest(FileTXT) VALUES('I''m OK!') 2.如果S ...
- 推送代码到GitHub上的两种方式
要想将本地Git上代码提交到GitHub可以使用两种协议进行提交,分别使用HTTPS和SSH两种协议,如下所示. 当使用HTTPS协议时,每次推送的时候都需要输入GitHub平台的用户名密码. ...
- 初始python(一)
一.python特性概要 1. python是解释性脚本语言. 2. python特性总结 2.1 字节码 2.2 动态语义 在赋值是确定数据类型 2.3 缩进(4个空格) 3. python定义编码 ...
- Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.
System.Data.OracleClient 已经过时了.微软不再支持它. 因此,我建议你为. NET 使用Oracle数据提供程序:ODP.Net. 你可以从以下位置下载: 版本:Release ...
- ZT pthread_detach
pthread_detach 创 建一个线程默认的状态是joinable, 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出 ...
- bzoj 4712: 洪水
[权限题][https://www.lydsy.com/JudgeOnline/status.php?problem_id=4712&jresult=4] 这道动态\(dp\)终于不是独立集/ ...
- programming-languages学习笔记--第7部分
programming-languages学习笔记–第7部分 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src ...
- springmvc与Structs2本质区别
1.前端控制器不同:structs2入口是一个filter过滤器,springmvc入口是一个servlet. 2.设计思想不同: struts2通过在action类中定义成员变量接收请求参数,str ...
- robotframwork接口测试(四)—其他库的安装
怎么知道自己的RF已经有哪些库了,可以看python安装目录下Python27\Lib\site-packages这个文件夹,有的话就可以直接引入了. 没有的话,就安装了. 1. 命令安装:这种最方便 ...