Python学习日记(四)——Python基本数据类型梳理(int、str、list、tuple、dict)
数字(int)
1、创建方式
n1 = 123
n2 = int(123)
2、内存分配
#共同用一个内存地址的情况
n1 = 123
n2 = n1 #用两个内存地址的情况
n1 = 123
n2 = 123
。。。。
n100 = 123#如果有许多变量的值都相同,会造成浪费空间的问题 #在别的编程语言中都会占用两个内存地址,但是python进行了优化
#在 -5 ~ 257范围内的数,及时使用第二种写法,也会共同用一个内存地址
#查看内存变量地址:id(变量名)
>>> n1 = 123
>>> n2 = 123
>>> id(n1)
47016816L
>>> id(n2)
47016816L
#可以看出内存地址是相同的 >>> n1 = 1234
>>> n2 = 1234
>>> id(n1)
52706152L
>>> id(n2)
52706128L
#可以看出内存地址是不相同的
3、长度限制
32位系统:-2**31 ~ 2*31 - 1
64位系统:-2**63 ~ 2*63 - 1
验证长度限制
>>> n2 = 2147483648
>>> n2
2147483648L >>> n2 = 2147483647
>>> n2
2147483647 >>> n2 = -2147483648
>>> n2
-2147483648 >>> n2 = -2147483649
>>> n2
-2147483649L #在python3中,没由long了,int自己就是无限大的
#后面有L代表着是长整型(Long),长整型的大小——内存有多大,数值就能多大
字符型(str)
1、创建方式
s1 = "deborah"
s2 = str('deborah')
2、特有功能
#strip ()——两端去除空格
#startswith()——以什么什么开头
#endswith ()——以什么结尾
#find ()——找子序列,一个字符或多个字符都可
#replace ()——将字符串中的某子序列替换成指定的值
#upper ()——变大写(验证码)
#is... ——判断是什么什么吗
3、公共功能
- 索引——只能取一个元素
- 切片——可以取多个元素
li = "deborah"
print(li[2])
#输出结果:b print(li[2:4])
#输出结果:bo
#还是字符 - len——计算长度
Python3中按字符来计算长度 - for
Python3中按字符来计算长度 - for循环中的编码问题
name = "希里"
for i in name:
print(i)
bytes_list = bytes(i,encoding='utf8') #bytes()将字符串转换称为字节
print(bytes_list)
#字节默认16进制
#for循环时,输出每一个字节默认用十进制显示
for b in bytes_list:
print(b,bin(b))
"""
输出结果
希
b'\xe5\xb8\x8c' #十六进制
229 0b11100101 #十进制 二进制
184 0b10111000
140 0b10001100
里
b'\xe9\x87\x8c'
233 0b11101001
135 0b10000111
140 0b10001100
"""
1、python3中for循环时以字符为元素进行循环的
2、字符 => 字节
bytes("字符串",encoding='utf-8')
utf-8 => 汉字占三个字节
gbk => 汉字占两个字节
print(bytes_list) #默认每一个字节都是16进制表示
for b in bytes_list:
print(b) #默认每一个字节都是10进制表示
3、10进制的数转换成二进制
bin(10进制的数字)
4、bytes和str的转换
a = "希里"
#将字符串转换成字节
b1 = bytes(a,encoding='utf-8')
b2 = bytes(a,encoding='gbk')
print(b1)
print(b2)
#将字节转换成字符串
newa1 = str(b1,encoding='utf-8')
print(newa1)
newa2 = str(b2,encoding='gbk')
print(newa2)
列表(list)
1、创建方式
li = [11,22,33,44]
li = list([11,22,33,44])
2、转换
class list(object):
"""
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
"""
#iterable可迭代的,可以被for循环就是可迭代iterable的 #1、字符串转换成为列表
s1 = "希里"
l1 = list(s1) #list会执行for循环,将循环的每一个元素,当做列表的元素
print(l1)
#输出结果:["希","里"] #2、元组转换成为列表
#元组可以被for循环,同理元组也可以转换成列表
t2 = ("prime","ciri","ellie")
l2 = list(t2)
print(l2)
#输出结果:['prime', 'ciri', 'ellie'] #3、字典转换成为列表
#字典 也可以被循环,所以字典也可以被转换成列表
dic = {'k1':"prime",'k2':"ciri"}
l3 = list(dic)
print(l3)
l3 = list(dic.values())
print(l3)
l3 = list(dic.items())
print(l3)
"""
输出结果:
['k1', 'k2']
['prime', 'ciri']
[('k1', 'prime'), ('k2', 'ciri')]
"""
3、多层嵌套
li = ["123",123,{"k1":"ciri","k2":{"kk1":(11,22,123),"kk2":"vv2"}}]
print(li[2])
print(li[2]["k2"])
print(li[2]["k2"]["kk1"])
"""
输出结果:
{'k1': 'ciri', 'k2': {'kk1': (11, 22, 123), 'kk2': 'vv2'}}
{'kk1': (11, 22, 123), 'kk2': 'vv2'}
(11, 22, 123)
"""
4、特有功能
append ——追加,在原来列表中进行追加
clear ——清除
extend ——批量增加,扩展自己,拿另外一个可迭代的东西(str、list、tuple、dict),扩展到自己里面来
reverse——翻转,自己内部元素翻转
insert ——向指定位置插入指定元素
#什么时候会自身进行改变,什么时候会生成新的东西?
#一般str字符串,执行一个功能,会生成一个内容,原来的内容不变
#list、tuple、dict,执行一个功能,自身会进行变化
5、公共功能
- 索引
- 切片
li = ["ciri","ellie","prime",'123']
print(li[2])
#输出结果:prime
print(li[2:3])
#输出结果:['prime']
#取出来的是列表,自己原来是什么类型,取出来的就是什么类型 len
- for
元组(tuple)
1、创建方式
ages = (11, 22, 33, 44, 55)
ages = tuple((11, 22, 33, 44, 55))
2、特有功能
#count——计算元素出现的个数
#index——获取指定元素的索引位置
3、多层嵌套(元素不可修改)
t = (11,22,["alex",{"k1":"v1"}])
print(t[2][1]['k1'])
#输出结果:v1
4、元组的特性——(元组的元素不可被修改,元素的元素 可以 被修改)
元组的——儿子不能变
元组的——孙子可以变
5、嵌套修改
t = (11,22,["alex",{"k1":"v1"}])
#更改元素的元素的值
t[2][1]['k2'] = 123
print(t)
#字典的更新1——update命令
dic = {'k1':'v1','k2':1}
dic.update({"k3":123})
print(dic)
#字典的更新2——给不存在的键赋值
dic['k4'] = 'v4'
print(dic)
字典(dict)
1、创建方式
person = {"name": "mr.hou", 'age': 18}
person = dict({"name": "mr.hou", 'age': 18})
person = dict(name='mr.hou',age=18)
通过列表创建字典
li = [11,22,33] # new_dict = dict(li)
# print(new_dict)
# 会报错因为列表循环时只有一个值 #复杂方法
dic = {}
for i,v in enumerate(li,10):
dic[i] = v
print(dic) #一句话创建
new_dict = dict(enumerate(li))
print(new_dict)
2、特有功能
#keys() ——获取所有的键key
#values()——获取所有的值value
#items() ——获取所有的键值对
#pop() ——获取并在字典中移除,可以传参数,移除指定的值
#get() ——根据key获取值
#update()——更新
Python学习日记(四)——Python基本数据类型梳理(int、str、list、tuple、dict)的更多相关文章
- python学习第四天基本数据类型 int,string,bool
python跟其他编程语言一样,拥有基本的数据类型,计算机 只能识别0101,python是解释语言,有其他的解释器 python整型 int a=10 type(a) "int| pyth ...
- Python学习日记(四十) Mysql数据库篇 八
Mysql存储过程 存储过程是保存在Mysql上的一个别名(就是一堆SQL语句),使用别名就可以查到结果不用再去写SQL语句.存储过程用于替代程序员写SQL语句. 创建存储过程 delimiter / ...
- Python学习日记(四) 集合和元祖
元祖的特性:是一个只读列表.可以循环.可以切片,修改数据遵循'儿子'不能改但'孙子'可能可以改. iterable:可迭代对象(元祖.列表.字串.集合) 元祖宣告方式: tu = (1,2,3,['a ...
- Python学习第四课——基本数据类型一之int and str
1.数字(int) - int() 方法 # 定义 a1=123 a2=456 #功能1:将字符串转换为数字 #例子1: a = " print(type(a)) # type()为查看类型 ...
- Python学习日记(四十二) Mysql数据库篇 十
前言 当我们自己去写SQL代码的时候有时候会因为不熟练会导致效率低,再之后要进行许多的优化,并且操作也较为繁琐.因此ORM框架就能够解决上面的问题,它能根据自身的一些规则来帮助开发者去生成SQL代码. ...
- Python学习日记(四十一) Mysql数据库篇 九
前言 索引的主要作用是起到约束和加速查找,ORM框架(sqlalchemy)是用类和对象对数据库进行操作 索引的种类 按种类去分 1.普通索引:能够加速查找 2.主键索引:能够加速查找.不能为空.不能 ...
- Python学习笔记(四)Python函数的参数
Python的函数除了正常使用的必选参数外,还可以使用默认参数.可变参数和关键字参数. 默认参数 基本使用 默认参数就是可以给特定的参数设置一个默认值,调用函数时,有默认值得参数可以不进行赋值,如: ...
- Python学习日记之Python函数及方法使用总结
1. DocStrings 文档字符串 可以直接输出位于函数内定义的说明 # -*- coding:utf-8 -*- def printMax(x, y): '''示例: 说明文档''' ...
- 六、python沉淀之路--int str list tuple dict 重点总结
一.数字int(..)二.字符串replace/find/join/strip/startswith/split/upper/lower/formattempalte = "i am {na ...
- python学习第四十八天json模块与pickle模块差异
在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点 跨语言,体积小 缺点 只能支持 int st ...
随机推荐
- 在论坛中出现的比较难的sql问题:5(row_number函数 分页、随机返回数据)
原文:在论坛中出现的比较难的sql问题:5(row_number函数 分页.随机返回数据) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 1.在inner join后, ...
- CentOS 系统下使用 yum 安装 Redis
本文主要介绍在 CentOS 7 系统下使用 yum 安装 Redis 的过程. 更改 yum 源 将 Centos 的 yum 源更换为国内的阿里云源. 首先备份你的原镜像文件,保证出错后可以恢复: ...
- .NET Core使用swagger遇到的坑
今天突然点开写好的接口,突然发现展开时同时展开了两个接口.如图 我点这两个接口任意一个,这两个都会同时展开或折叠. 原因是他们actinName相同,虽然在vs里面只要http方法不同,action是 ...
- ASP.NET WEB应用程序(.network4.5)MVC 工作原理
MVC就是模型.视图.控制器. 项目中控制器对应Controllers目录,视图对应Views目录,模型对应Models目录. 1.当我们创建一个控制器时,比如在Controllers目录新建一个名字 ...
- Citrix ADC 12.1 / NetScaler 12
Citrix ADC 12.1 / NetScaler 12 参考 https://www.carlstalhood.com/netscaler-menu/netscaler-12/ Core – C ...
- sql 视图的好处
第一点:使用视图,可以定制用户数据,聚焦特定的数据. 解释: 在实际过程中,公司有不同角色的工作人员,我们以销售公司为例的话,采购人员,可以需要一些与其有关的数据,而与他无关的数据,对他没有任何意义, ...
- js中this关键字用法详解
1.全局环境中的this 在全局环境中,this 指向全局对象Global,即 window 对象 如: alert(this); // 显示 [object Window] alert(this = ...
- Input system (输入子系统)
Input system (输入子系统) 以前写一些输入设备(键盘,鼠标等)的驱动都是字符设备,混杂设备处理的,linux开源社区的大神门看到了这大量的输入设备如此分散不堪,就想有木有一种机制,可以对 ...
- php使用播放插件播放m3u8,mp4,flv格式的视频
一.这里我主要是播放m3u8的视频,有两款比较好的插件,swise和ckpalyer,我介绍的是ckplayer,这是在pc端播放的,并且是需要flash支持的,不过现在的最新浏览器都是默认安装的 二 ...
- Image Processing and Analysis_21_Scale Space:Scale-Space for Discrete Signals——1990
此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...