python中数据类型大小_详细解析Python中的变量的数据类型

变量是只不过保留的内存位置用来存储值。这意味着,当创建一个变量,那么它在内存中保留一些空间。

根据一个变量的数据类型,解释器分配内存,并决定如何可以被存储在所保留的内存中。因此,通过分配不同的数据类型的变量,你可以存储整数,小数或字符在这些变量中。

变量赋值:

Python的变量不必显式地声明保留的存储器空间。当分配一个值给一个变量的声明将自动发生。等号(=)来赋值给变量。

操作数=操作符的左边是变量,操作数=操作符的右侧的名称在变量中存储的值。例如:

#!/usr/bin/python

counter = 100 # An integer assignment

miles = 1000.0 # A floating point

name = "John" # A string

print counter

print miles

print name

在这里,分配值100,1000.0和“John”分别给变量counter,miles和respectively。当运行这个程序,这将产生以下结果:

100

1000.0

John

多重赋值:

Python允许您同时指定一个值给几个变量。例如:

a = b = c = 1

这里,整数对象创建的值1,并且所有三个变量被分配到相同的内存位置。您也可以将多个对象分别到多个变量。例如:

a, b, c = 1, 2, "john"

这里,两个整对象用值1和2分配给变量a和b,并且值为“john”的字符串对象被分配到变量c。

标准的数据类型:

存储在内存中的数据可以是多种类型的。例如,一个人的年龄被存储为一个数字值和他的地址被存储为字母数字字符。Python用于对每个人的操作的各种标准类型定义在存储方法。

Python有五个标准的数据类型:

数字

字符串

列表

元组

字典

Python数字:

数字数据类型存储数值。它们是不可变的数据类型,这意味着改变一个新分配的对象的数字数据类型的结果值。

当分配一个值给他们创建的对象。例如:

var1 = 1

var2 = 10

也可以使用del语句删去有关一些对象。 del语句的语法是:

del var1[,var2[,var3[....,varN]]]]

也可以使用del语句删除单个或多个对象。例如:

del var

del var_a, var_b

Python支持四种不同的数值类型:

int (有符号整数)

long (长整数[也可以以八进制和十六进制表示])

float (浮点实数值)

complex (复数)

例如:

这里是数字的一些例子:

504337c6fde50fd9066209c38f7ca35f.png

Python允许使用一个小写L表示长整型,但建议您只使用一个大写的L到避免和数字1 长得一样不容易分辨,Python显示长整数用一个大写L。

复数包含一个有序对表示为a + bj,其中,a是实部,b是复数的虚部实浮点数。

Python字符串:

在Python中的字符串被确定为一组连续的字符在引号之间。 Python允许在任何对单引号或双引号。串的子集,可以使用切片操作符可采用([]和[:]),索引从0开始的字符串的开始和结束(-1)。

加号(+)符号的字符串连接操作符,而星号(*)表示重复操作。例如:

#!/usr/bin/python

str = 'Hello World!'

print str # Prints complete string

print str[0] # Prints first character of the string

print str[2:5] # Prints characters starting from 3rd to 5th

print str[2:] # Prints string starting from 3rd character

print str * 2 # Prints string two times

print str + "TEST" # Prints concatenated string

这将产生以下结果:

Hello World!

H

llo

llo World!

Hello World!Hello World!

Hello World!TEST

Python列表:

列表是最通用的Python复合数据类型。列表中包含以逗号分隔,并在方括号([])包含的项目。在一定程度上,列表相似C语言中的数组,它们之间的一个区别是,所有属于一个列表中的项目可以是不同的数据类型的。

存储在一个列表中的值可以使用切片操作符来访问([]和[:])用索引从0开始,在列表的开始位置和结束为-1。加号(+)符号列表连接运算符,星号(*)重复操作。例如:

#!/usr/bin/python

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]

tinylist = [123, 'john']

print list # Prints complete list

print list[0] # Prints first element of the list

print list[1:3] # Prints elements starting from 2nd till 3rd

print list[2:] # Prints elements starting from 3rd element

print tinylist * 2 # Prints list two times

print list + tinylist # Prints concatenated lists

这将产生以下结果:

['abcd', 786, 2.23, 'john', 70.200000000000003]

abcd

[786, 2.23]

[2.23, 'john', 70.200000000000003]

[123, 'john', 123, 'john']

['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john']

Python元组:

元组是类似于列表中的序列数据类型。一个元组由数个逗号分隔的值。不同于列表,不过,元组圆括号括起来。

列表和元组之间的主要区别是:列表括在括号([])和它们的元素和大小是可以改变的,而元组在圆括号(),不能被更新。元组可以被认为是只读列表。例如:

#!/usr/bin/python

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )

tinytuple = (123, 'john')

print tuple # Prints complete list

print tuple[0] # Prints first element of the list

print tuple[1:3] # Prints elements starting from 2nd till 3rd

print tuple[2:] # Prints elements starting from 3rd element

print tinytuple * 2 # Prints list two times

print tuple + tinytuple # Prints concatenated lists

这将产生以下结果:

('abcd', 786, 2.23, 'john', 70.200000000000003)

abcd

(786, 2.23)

(2.23, 'john', 70.200000000000003)

(123, 'john', 123, 'john')

('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')

以下是元组无效的,因为我们尝试更新一个元组,这是不允许的。类似的操作在列表中是可以的:

#!/usr/bin/python

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]

tuple[2] = 1000 # Invalid syntax with tuple

list[2] = 1000 # Valid syntax with list

Python字典:

Python字典是一种哈希表型。他们像关联数组或哈希在Perl中一样,由键 – 值对组成。字典键几乎可以是任何Python类型,但通常是数字或字符串。值可以是任意Python的对象。

字典是由花括号括号({}),可分配值,并用方括号([])访问。例如:

#!/usr/bin/python

dict = {}

dict['one'] = "This is one"

dict[2] = "This is two"

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}

print dict['one'] # Prints value for 'one' key

print dict[2] # Prints value for 2 key

print tinydict # Prints complete dictionary

print tinydict.keys() # Prints all the keys

print tinydict.values() # Prints all the values

这将产生以下结果:

This is one

This is two

{'dept': 'sales', 'code': 6734, 'name': 'john'}

['dept', 'code', 'name']

['sales', 6734, 'john']

字典有元素顺序的概念。它的元素是无序的。

数据类型转换:

有时候,可能需要执行的内置类型之间的转换。类型之间的转换,只需使用类名作为函数。

有几个内置的功能,从一种数据类型进行转换为另一种。这些函数返回一个表示转换值的新对象。

2b2cb7fe6ba115530d53c49a2eefa409.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中多线程的性能比较

Java中有多种用于多线程的技术。 可以通过同步关键字,锁或原子变量来并行化Java中的一段代码。 这篇文章将比较使用synced关键字ReentrantLock,getAndIncrement()以及执行get()和compareAndSet(…

微软ms10_018漏洞的利用

微软ms10_018漏洞的利用 0x00 前言0x01 study1. 漏洞利用环境1.1 目标机环境1.2 攻击机环境1.3 拓扑结构 2. ping测试3. exploit3.1 启动Metasploit3.2 查找和MS10-018相关的模块3.3 加载模块3.4 设置PAYLOAD3.5 显示需要配置的选项3.6 设置Web服务器的地址,应为Ba…

【深度】机器学习进化史:从线性模型到神经网络

【深度】机器学习进化史:从线性模型到神经网络 Reza Zadeh是斯坦福大学工程计算和数学研究所顾问教授,也是Databricks公司技术顾问,他主要专注于机器学习理论和应用,分布式计算,以及离散应用数学。近日,他接…

微软MS10-046漏洞的利用

微软MS10-046漏洞的利用 0x00 前言0x01 环境1. 目标机环境2. 攻击机环境3. 拓扑结构 0x02 过程1. 相互ping通2. 启动Metasploit3. 查找和MS10-046相关的模块4. 加载模块5. 设置所使用的payload6. 设置文件共享服务器的地址,应为BackTrack虚拟机的地址7. 设置目标主…

使用七牛云对网站进行加速基本配置

看了很多给网站加速的教程,大同小异,觉得还是使用免费的七牛云进行CDN加速,去年使用这个平台给APP加速,效果还不错。 1.打开七牛云存储注册链接:七牛云 注册帐号并且完成系统要求的实名认证要求。一般不需要充钱,冲着免费去的,既可以获得免费的10G流量,一般的小型网站…

kail利用msf工具对ms10-087漏洞入侵渗透WinXP

1.实验环境: Kali2020:10.20.29.129 Windows 2003:10.20.29.137 两台虚拟机能够相互ping通 2.实验步骤 1, 启动Metasploit 2,查找和MS10-087相关的模块search ms10_087 3,使用exploit/windows/fileformat/ms10_087_rtf_pfragments_bof模…

2020年前端招聘技术概览(包含常见的打包工具,框架及前端技术简介)

学习当下前端技术最好的方法就是从求职网站上找出前端的招聘要求,因为前端技术每年变化都很快,每个阶段都会不一样,这里简单从网站招聘要求罗列,仅供参考。更有针对性的是针对每个公司的招聘要求写简历,学习相关技术(除非那个公司特别好) 1.熟悉html,javaScript,css,aja…

DVWA通关教程(下)

XSS(DOM) XSS(DOM)是一种基于DOM树的一种代码注入攻击方式,可以是反射型的,也可以是存储型的,所以它一直被划分第三种XSS 与前两种XSS相比,它最大的特点就是不与后台服务器交互,只是通过浏览器…

前端工程师必备谷歌浏览器F12下的调试知识点

chrome浏览器版本(所有的操作都是基于我电脑上目前这个版本。) 进入开发者工具的方式:F12 (所有浏览器都可以用F12进入开发者工具),ChromeDev(开发者工具简称)按照类别可以分为下面几种 审查元素 ctrl+shift+c 在页面上选择一个HTML元素并审查它 切换浏览设备 ctrl+…

Kali利用msf对MS10_061漏洞进行渗透测试

注意事项: kail首次打开metasploit,会初始化数据,可能会有点慢,请耐心等待!本文仅供学习漏洞渗透测试,不得用于其他非法用途,否则造成的任何后果自负!!! 1.…

Metaspliot 控制终端利用Samba漏洞渗透

Samba简介 Samba是linux和unix系统上实现smb协议的一个免费软件,由服务器及客户端程序构成,Samba是面向Linux和Unix环境的Windows互操作性套件。它适用于在可能包括Linux、Unix、Windows、macOS及其他操作系统的异构环境下工作的那些人。Samba使用服务器…

群里分享的react的收藏一下!今日周末,改了个表单验证然后无所事事了!

今日周末,改了个表单验证然后无所事事了,然后把昨天群里分享的react的收藏一下尽管现在还在研究angular和nodeJs毕竟刚刚开始用有点不熟...没准以后会研究一下react毕竟看着下面这张图还是觉得有点欢乐的 现在最热门的前端框架,毫无疑问是 Re…

Metasploit入门用法(主动攻击)

–作者:CV 本文主要讲metasploit的入门用法,还有一些渗透细节和思路,有不足的,欢迎互相学习研究。本人区别于书籍的特点是:书籍以模块为划分,我是以连续的步骤进行书写,更突出一次渗透的思路&a…

java 计时器_Java多线程并发容器之并发倒计时器

从火箭发场景来学习Java多线程并发闭锁对象倒计时器场景在我们开发过程中,有时候会使用到倒计时计数器。最简单的是:int size 5; 执行后,size—这种方式来实现。但是在多线程并发的情况下,这种操作会不安全的。举个现实中最典型的…

通过Spring将AWS SQS用作JMS提供程序

最近AWS公布了新的客户端库,它实现了JMS 1.1规范 ,并使用他们的简单队列服务 (SQS)作为JMS提供者 (见杰夫巴尔的帖子在这里 )。 在我的文章中,我将向您展示如何设置Maven项目以使用Spring Frame…

netbeans7.4_带有NetBeans 7.1 RC 2的快速入门WebLogic 12c

netbeans7.4WebLogic服务器12c停运了几天。 它适用于“裸”的Java开发人员-精美的Fusion Middleware东西将继续沿线升至12c。 因此,这基本上是我要运行的版本。 今天,我为您提供一个最新的NetBeans 7.1(RC 2)和WebLogic的快速入门…

burpsuite全套使用教程

burpsuite 实验环境安装教程浏览器配置篇使用方法Target模块(目标模块)Proxy模块(代理模块)Spider模块(蜘蛛爬行)Scanner模块(漏洞扫描)Intruder模块decoder模块(编码模块)Comparer模块(比较器)RepeaterSequencer 实验环境 burpsuite1.733 win10 dvwa firefox 安装教程 第…

致我们曾经白嫖的网站

十分好用的在线工具网站,珍藏版,分享给你们 1.奶牛快传:用户体验更好的网盘工具。 最近开始使用的一款网盘工具,和百度网盘类似,不过没有下载速度的限制,并且可以支持自定义分享文件的下载次数(需要开会员)。 还有一点让我觉得比较舒服的是,你给别人分享文件,别人无…

java word模版填充_[转载]java向word模板中填充数据(总结)

使用过PageOffice动态生成word文档的人都知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面有两个概念,一个叫做数据区域(DataRegion),另一个叫做数据标签(DataTag)。一、 概念数据区域:是…

是时候抛弃Java 7 – JBoss EAP 6.4了!

这一周真是太棒了。 JBoss EAP 6.4已发布,并且在大量技术增强和新功能中 ,最大的是:Java 8已添加到受支持的配置列表中。 其中包括Oracle JDK和IBM JDK。 Java SE 7公开更新结束通知 2015年4月之后,Oracle将不再将Java SE 7的更新…