数字(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)的更多相关文章

  1. python学习第四天基本数据类型 int,string,bool

    python跟其他编程语言一样,拥有基本的数据类型,计算机 只能识别0101,python是解释语言,有其他的解释器 python整型 int a=10 type(a) "int| pyth ...

  2. Python学习日记(四十) Mysql数据库篇 八

    Mysql存储过程 存储过程是保存在Mysql上的一个别名(就是一堆SQL语句),使用别名就可以查到结果不用再去写SQL语句.存储过程用于替代程序员写SQL语句. 创建存储过程 delimiter / ...

  3. Python学习日记(四) 集合和元祖

    元祖的特性:是一个只读列表.可以循环.可以切片,修改数据遵循'儿子'不能改但'孙子'可能可以改. iterable:可迭代对象(元祖.列表.字串.集合) 元祖宣告方式: tu = (1,2,3,['a ...

  4. Python学习第四课——基本数据类型一之int and str

    1.数字(int) - int() 方法 # 定义 a1=123 a2=456 #功能1:将字符串转换为数字 #例子1: a = " print(type(a)) # type()为查看类型 ...

  5. Python学习日记(四十二) Mysql数据库篇 十

    前言 当我们自己去写SQL代码的时候有时候会因为不熟练会导致效率低,再之后要进行许多的优化,并且操作也较为繁琐.因此ORM框架就能够解决上面的问题,它能根据自身的一些规则来帮助开发者去生成SQL代码. ...

  6. Python学习日记(四十一) Mysql数据库篇 九

    前言 索引的主要作用是起到约束和加速查找,ORM框架(sqlalchemy)是用类和对象对数据库进行操作 索引的种类 按种类去分 1.普通索引:能够加速查找 2.主键索引:能够加速查找.不能为空.不能 ...

  7. Python学习笔记(四)Python函数的参数

    Python的函数除了正常使用的必选参数外,还可以使用默认参数.可变参数和关键字参数. 默认参数 基本使用 默认参数就是可以给特定的参数设置一个默认值,调用函数时,有默认值得参数可以不进行赋值,如: ...

  8. Python学习日记之Python函数及方法使用总结

    1.  DocStrings 文档字符串     可以直接输出位于函数内定义的说明 # -*- coding:utf-8 -*- def printMax(x, y): '''示例: 说明文档''' ...

  9. 六、python沉淀之路--int str list tuple dict 重点总结

    一.数字int(..)二.字符串replace/find/join/strip/startswith/split/upper/lower/formattempalte = "i am {na ...

  10. python学习第四十八天json模块与pickle模块差异

    在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点  跨语言,体积小 缺点 只能支持 int st ...

随机推荐

  1. 树节点递归删除--service层

    @Service public class ContentCategoryServiceImpl extends BaseServiceImpl<ContentCategory> impl ...

  2. stm32 SysTick系统定时器

    它是一个24位向下递减的定时器,每计数一次所需时间为1/SYSTICK,SYSTICK是系统定时器时钟,它可以直接取自系统时钟,还可以通过系统时钟8分频后获取 当定时器计数到0时,将从LOAD 寄存器 ...

  3. 对WAF的一些认知

    WAF分为非嵌入型与嵌入型, 非嵌入型指的是硬WAF.云WAF.虚拟机WAF之类的:嵌入型指的是web容器模块类型WAF.代码层WAF.非嵌入型对WEB流量的解析完全是靠自身的,而嵌入型的WAF拿到的 ...

  4. MySQL数据库的基本认识与操作

    Mysql是一个数据库,但是我们安装的mysql数据库服务,服务就会有状态,启动,停止,重启.我们使用mysql必须保证mysql启动. 使用mysql数据库需要连接数据库 Mysql -u -p - ...

  5. Nginx系列1.2:nginx-rtmp流媒体服务器添加权限认证(推流权限和播放权限)

    用到的工具:OBS Studio(推流).nginx-rtmp流媒体服务器.VLC(拉取流播放) Nginx系列1:ubuntu16.04编译出适合自己的nginx服务器 Nginx系列1.1:ubu ...

  6. Qt 4.8.5 + MinGW32 + Qt creater 安装

    Qt 4.8.5 + MinGW32 + Qt creater 安装 下载文件 文件版本 Qt 4.8.5 MinGW 0.4.4 Qt Creator 2.8或2.8.1 gdb-7.4-MinGW ...

  7. Tcp/IP协议详讲

    TCP/IP协议分层详解 目录 TCP/IP 和 ISO/OSI TCP/IP分层模型 数据的封装与分用 其他相关概念 TCP/IP 通信传输流 负责传输的 IP 协议 正文 回到顶部 TCP/IP ...

  8. PHP 二维数组排序函数的应用 array_multisort()

    <?php $arrayData = array( array("name"=>"泰山", "age"=>"23 ...

  9. 大数据之路week05--day02(Maven安装,环境变量的配置及基本使用)

    今天我们就来学习一下maven,怎么说呢,maven更像是一种管理的工具,实现的原理是使用插件. 举个例子,比如说,一个公司需要做一个项目,这个项目又分成了很多的模块,每个模块又分成了许多的业务等等, ...

  10. django安装好之后,django-admin仍然不能使用的问题

    我使用的是python3,python3不能找到django的正确位置.需要下面这样才能正确建立mysite python3 /usr/lib/python2./site-packages/djang ...