Python教程: 变量类型

Python 变量类型

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。

基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。

因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

变量赋值

Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

等号(=)用来给变量赋值。

等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:

name='zk'
sex='man'
age=29
job="none"
count=1000
mile=1000.1
bool=True
print(name+" "+sex+" "+job+" ")
print(bool)
print(count)
print(mile)

执行以上程序会输出如下结果

zk man none 
True
1000
1000.1  

多个变量赋值

Python允许你同时为**多个变量赋值**。例如:  
a=b=c=1
print(a)
print(b)
print(c)
 以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。

您也可以为多个对象指定多个变量。例如:

d,e,f=5,"str",4
print(d)
print(e)
print(f)

执行以上程序会输出如下结果

5
str
4

以上实例,两个整型对象1和2的分配给变量d和e,字符串对象"john"分配给变量f。

标准数据类型

在内存中存储的数据可以有多种类型。

例如,person.s年龄作为一个数值存储和他或她的地址是字母数字字符存储。

Python有一些标准类型用于定义操作上,他们和为他们每个人的存储方法可能。

Python有五个标准的数据类型

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

Python数字

数字数据类型用于存储数值

他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。

当你指定一个值时,Number对象就会被创建:

var1 = 1
var2 = 10
您也可以使用del语句删除一些对象引用。

del语句的语法是:

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

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

del var
del var\_a, var\_b

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

  • int(有符号整型)
  • long(长整型[也可以代表八进制和十六进制])
  • float(浮点型)
  • complex(复数)

一些数值类型的实例

intlongfloatcomplex
1051924361L0.03.14j
100-0x19323L15.2045.j
-7860122L-21.99.322e-36j
0800xDEFABCECBDAECBFBAEl32.3+e18.876j
-0490535633629843L-90.-.6545+0J
-0x260-052318172735L-32.54e1003e+26J
0x69-4721885298529L70.2-E124.53e-7j
  • 长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python使用"L"来显示长整型。
  • Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

Python字符串

字符串或串(String)是由数字、字母、下划线组成的一串字符。

一般记为 :

s=“a1a2···an”(n>=0)

它是编程语言中表示文本的数据类型。

python的字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,最大范围是字符串开头

如果你的实要取得一段子串的话,可以用到变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

比如:

s = 'ilovepython'

**s[1:5]**的结果是love。

当使用以冒号分隔的字符串,python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。

上面的结果包含了s[1]的值l,而取到的最大范围不包括上边界,就是s[5]的值p。

加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例:

str = 'Hello World!'print(str) # 输出完整字符串
print(str\[0\]) # 输出字符串中的第一个字符
print(str\[2:5\]) # 输出字符串中第三个至第五个之间的字符串
print(str\[2:\]) # 输出从第三个字符开始的字符串
print(str \* 2) # 输出字符串两次
print(str + "TEST") # 输出连接的字符串

输出结果如下:

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST  

字符串split函数

txt='www.baidu.com'
print(txt.split('.'))
print(txt.split('.')\[1\])

输出结果如下:

取结尾为.jpg的文件名

img=\['aa.png','bb.jpg','cc.jpg'\]
result=\[\]
for file in img:if file.split('.')\[1\]=='jpg':result.append(file)
print(result)

输出结果如下:

例题:

在网页列表中选择网页出现次数最多的网址,列表如下:

'http://www.baidu.com/index.html',  
'http://www.baidu.com/1.html',  
'http://post.baidu.com/index.html',  
'http://mp3.baidu.com/index.html',  
'http://www.baidu.com/3.html',  
'http://post.baidu.com/2.html'  
raw = \['http://www.baidu.com/index.html','http://www.baidu.com/1.html','http://post.baidu.com/index.html','http://mp3.baidu.com/index.html','http://www.baidu.com/3.html','http://post.baidu.com/2.html',
\]result=\[\]
for single\_raw in raw:page\_domain\_afterhttp = single\_raw.split('/')\[2\]result.append(page\_domain\_afterhttp)
print(max(result))

输出结果:

字符串拼接

var1="zk"
var2="lwt"
schoolname="wanmendaxue"
pinjie=var1+var2+schoolname
word\_1="Pi等于"
word\_2=3.1415
result=word\_1+str(word\_2)
print(pinjie)
print(result)

输出结果:

zklwtwanmendaxue
Pi等于3.1415

Python占位符的三种形式

name="张焜"
age=29
height=1.79
school='中国矿业大学'
boys=100
girls=200
print(f"我叫{name},年龄{age},学校{school},身高{height},班里有男孩{boys}个,女孩{girls}个")
print("我叫%s,年龄%d,学校%s,身高%.2f,班里有男孩%d个,女孩%d个" %(name,age,school,height,boys,girls))
print("我叫{0},年龄{1},学校{2},身高{3},班里有男孩{4}个,女孩{5}个".format(name,age,school,height,boys,girls) )

Python数学函数

import math
int\_1=10
int\_2=-10
double\_1=1.45
print(abs(int\_1))           #绝对值
print(abs(int\_2))
print(min(int\_1,int\_2))     #两数取小
print(max(int\_1,int\_2))     #两数取大
print(math.floor(double\_1)) #向下取整
print(math.ceil(double\_1))  #向上取整
print(math.sqrt(int\_1))     #开根号

Python数据类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

函数描述
int(x [,base])

|

将x转换为一个整数

|
|

long(x [,base] )

|

将x转换为一个长整数

|
|

float(x)

|

将x转换到一个浮点数

|
|

complex(real [,imag])

|

创建一个复数

|
|

str(x)

|

将对象 x 转换为字符串

|
|

repr(x)

|

将对象 x 转换为表达式字符串

|
|

eval(str)

|

用来计算在字符串中的有效Python表达式,并返回一个对象

|
|

tuple(s)

|

将序列 s 转换为一个元组

|
|

list(s)

|

将序列 s 转换为一个列表

|
|

set(s)

|

转换为可变集合

|
|

dict(d)

|

创建一个字典。d 必须是一个序列 (key,value)元组。

|
|

frozenset(s)

|

转换为不可变集合

|
|

chr(x)

|

将一个整数转换为一个字符

|
|

unichr(x)

|

将一个整数转换为Unicode字符

|
|

ord(x)

|

将一个字符转换为它的整数值

|
|

hex(x)

|

将一个整数转换为一个十六进制字符串

|
|

oct(x)

|

将一个整数转换为一个八进制字符

|

1、int函数:

(1)把符合数学格式的数字型字符串转换成整数,字符串内非数字无法转换为整数
(2)把浮点数转换成整数,但是只是简单的取整,而非四舍五入,浮点数整数会消除小数部分取整

aa = int("124")    #Correct
print("aa = ", aa)  #result=124
bb = int(123.45) #correct
print("bb = ", bb) #result=123
cc = int("-123.45")  #Error,Can't Convert to int
print("cc = ",cc)
dd = int("34a")    #Error,Can't Convert to int
print("dd = ",dd)
ee = int("12.3") #Error,Can't Convert to int
print(ee)

2、float函数将整数和字符串转换成浮点数,字符串内非数字无法转换为浮点

aa = float("124")     #Correct
print("aa = ", aa)     #result = 124.0 
bb = float("123.45")  #Correct
print("bb = ", bb)     #result = 123.45
cc = float(-123.6)    #Correct
print("cc = ",cc)      #result = -123.6
dd = float("-123.34") #Correct
print("dd = ",dd)      #result = -123.34
ee = float('123v')    #Error,Can't Convert to float
print(ee)

3、str函数将数字转换成字符,字符串或整数转化为浮点数,整数后面多一位小数

aa = str(123.4)     #Correct
print aa            #result = '123.4'
bb = str(-124.a)    #SyntaxError: invalid syntax
print bb
cc = str("-123.45") #correct
print cc            #result = '-123.45'
dd = str('ddd')     #correct
print dd            #result = ddd
ee = str(-124.3)    #correct
print ee            #result = -124.3

Python整数、浮点数的多则运算----加、减、乘、除、商、取余、次幂

aa=1
bb=2
print(aa+bb)   #加法  3
print(aa-bb)   #减法   -1
print(aa/bb)   #除数   0.5
print(aa//bb)  #商   0
print(aa%bb)   #取余   1
print(bb\*\*3)   #次幂   8
print(aa+bb,aa-bb,aa/bb,aa%bb,bb\*\*3,sep="\\n")
3
-1
0.5
1
8
print(aa+bb,aa-bb,aa/bb,aa%bb,bb\*\*3,sep="\*\*\*")   3\*\*\*-1\*\*\*0.5\*\*\*1\*\*\*8

Python列表

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。

列表用[ ]标识。是python最通用的复合数据类型。看这段代码就明白。

列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。

加号(+)是列表连接运算符,星号(*)是重复操作。如下实例:

list = \[ 'abcd', 786 , 2.23, 'john', 70.2 \]
tinylist = \[123, 'john'\]print(list) # 输出完整列表
print(list\[0\]) # 输出列表的第一个元素
print(list\[1:3\]) # 输出第二个至第三个的元素 
print(list\[2:\]) # 输出从第三个开始至列表末尾的所有元素
print(tinylist \* 2) # 输出列表两次
print(list + tinylist) # 打印组合的列表 

Python元字典

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

Dict\_1={'德国':'奔驰车队','英国':'迈凯伦车队','意大利':'法拉利车队'}
print(type(Dict\_1))
print(Dict\_1)
print(str(Dict\_1))
print(Dict\_1\['德国'\])     #获取键值
Dict\_1\['德国'\]='BMW'      #修改键值
print(Dict\_1\['德国'\])
Dict\_1\['中国'\]='红旗'     #增加键值
print(Dict\_1)
del Dict\_1\['英国'\]       #删除键值
print(Dict\_1)
Dict\_1.clear()           #清空列表
print(Dict\_1)

Python元组

元组是另一个数据类型,类似于List(列表)。

**元组用"()"标识。**内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。

tuple\_1=(1,'a','BMW','XFL',3)
tuple\_2=(2,'b','WMB','LFX',4)
print(tuple\_1)     #输出完整元组1
print(tuple\_2)     #输出完整元组2
print(tuple\_1\[1\])  #输出tuple\_1的第二个元素
print(tuple\_1\[2:\]) #输出tuple\_1的第三个之后的元素
print(tuple\_1\[:3\]) #输出tuple\_1的第四个之后的元素
print(tuple\_1\*2)   #输出两遍tuple\_1
print(tuple\_1+tuple\_2)   #输出tuple\_1和tuple\_2的混合元素 

Python逻辑运算

所有的基础逻辑运算结果:(1)一切皆真假(2)一切皆0和1(3)一切皆True和False

运算逻辑要有可比性:(1)整数与整数相比(2)整数与浮点数相比(3)浮点数与浮点数相比(4)字符串与字符串相比

(5)字符串不可与其他类型比大小,但是可以比相等

比较运算符

a=100
b=200
print(a==b)
print(a!=b)
print(a>b)
print(a<b)
print(a>=b)
print(a<=b)

输出结果:False True False True False True

逻辑运算(或且非运算)

a=100
b=200
print(a==b and a!=b)
print(a==b or a!=b)
print(not a==b)

输出结果:False  True  True

and优先级大于or

成员运算

str\_1='abcd'
str\_2='efgh'
print('a' in str\_1)
print('a' in str\_2)
print('e' in str\_2)
print('e' in str\_1)
print('a' not in str\_1)
print('a' not in str\_2)
print('e' not in str\_2)
print('e' not in str\_1)

输出结果:True False True False False True False True

身份运算(即比较内存地址)

result\_1=1
result\_2=1
result\_3=2
print(id(result\_1)==id(result\_2))
print(id(result\_2)==id(result\_3))

相同的值会默认指向相同的内存地址。

bedroom\_1="枕头"
pillow\_1="枕头"
print(id(bedroom\_1),id(pillow\_1))      #140469614890320 140468288321552
print(bedroom\_1 is pillow\_1)           #False
print(bedroom\_1 is not pillow\_1)       #True
bedroom\_1="枕头"
pillow\_1=bedroom\_1
print(id(bedroom\_1),id(pillow\_1))  #140469614896176 140469614896176
print(bedroom\_1 is pillow\_1)         #True
print(bedroom\_1 is not pillow\_1)   #False
bedroom\_1="枕头"
pillow\_1="枕头"
print(id(bedroom\_1),id(pillow\_1))
print(bedroom\_1 is pillow\_1)
print(bedroom\_1==pillow\_1) 

is比较符用于比较两个变量的地址,两个变量地址不相同则为False。==比较符比较的是两个变量的值,值相同则为True。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【计网】从零开始掌握序列化 --- 基础知识储备与程序重构

从零开始掌握序列化与反序列化 1 初识序列化与反序列化2 再谈Tcp协议3 程序重构3.1 Socket类3.2 回调函数设计3.3 最终的Tcp服务器类 1 初识序列化与反序列化 在刚学习计算机网络时&#xff0c;我们谈到过网络协议栈&#xff0c;其中最上层的就是应用层&#xff0c;那么这个应…

97、配置 VXLAN 不同子网互访 (分布式网关)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、基础配置SW1SW2IGP IS-IS 二、VXLAN1.引入库 总结 前言 一、基础配置 SW1 vlan 10 vlan 20interface GigabitEthernet0/0/1port link-type accessport de…

springboot+阿里云物联网教程

需求背景 最近有一个项目,需要用到阿里云物联网,不是MQ。发现使用原来EMQX的代码去连接阿里云MQTT直接报错,试了很多种方案都不行。最终还是把错误分析和教程都整理一下。 需要注意的是,阿里云物联网平台和MQ不一样。方向别走偏了。 概念描述 EMQX和阿里云MQTT有什么区别…

python编程开发“人机猜拳”游戏

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

利用Accelerate()进行pytorch的多GPU加速

简介 官方Github&#xff1a;https://github.com/huggingface/accelerate Accelerate 是为喜欢编写PyTorch模型的训练循环但不愿意编写和维护使用多GPU/TPU/fp16所需的样板代码的PyTorch用户创建的。 它可以仅加速与多 GPU/TPU/fp16 相关的样板代码&#xff0c;并保持其余代…

代码提交消息自动生成助手 | OPENAIGC开发者大赛高校组AI创新之星奖

在第二届拯救者杯OPENAIGC开发者大赛中&#xff0c;涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到&#xff0c;我们特意开设了优秀作品报道专栏&#xff0c;旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者&#xff0c;希望能带给…

hive建表指定列分隔符为多字符分隔符实战(默认只支持单字符)_hive row formate ###

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。 需要这份系统化资料的朋友,可以戳这里获取 一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎…

我国以人名命名的城市有哪些?

我国幅员辽阔&#xff0c;国内的城市非常多&#xff0c;每个城市的名字或许都有其背后的故事。 其中不乏一些以人物之名命名的城市&#xff0c;有些是上古传说中的人物&#xff0c;有些则是历史上有重要影响的人物。 湖北神农架林区&#xff0c;因炎帝神农氏而得名 而我国198…

【Linux网络 —— 网络基础概念】

Linux网络 —— 网络基础概念 计算机网络背景网络发展 初始协议协议分层协议分层的好处 OSI七层模型TCP/IP五层(或四层)模型 再识协议为什么要有TCP/IP协议&#xff1f;什么是TCP/IP协议&#xff1f;TCP/IP协议与操作系统的关系所以究竟什么是协议&#xff1f; 网络传输基本流程…

软件供应链安全管理实践之中国联通

软件供应链安全管理是保护软件开发和交付过程中所有组件的安全性和完整性的重要环节&#xff0c;软件供应链安全国家标准及政策的发布&#xff0c;为企业软件供应链安全管理提供了依据。 本文摘选自软件供应链安全推进工作组指导、苏州棱镜七彩信息科技有限公司主笔的《2023软…

编曲为什么这么难学 编曲应该从何下手,想要学习编曲,一定要有扎实的乐理基础知识

很多小伙伴在刚刚接触编曲的时候&#xff0c;可能会感觉只是学习怎么创作旋律&#xff0c;并不会很难。但在真正开始接触编曲的时候&#xff0c;却发现想要创作出好的曲目&#xff0c;要学习的知识实在是太多了&#xff0c;因此小伙伴也会感慨编曲太难学了。下面给大家详细讲解…

Python画笔案例-062 绘制彩花之太阳花

1、绘制彩花之太阳花 通过 python 的turtle 库绘制 彩花之太阳花,如下图: 2、实现代码 绘制 彩花之太阳花,以下为实现代码: """彩花之太阳花.py本程序需要coloradd模块支持,安装方法:pip install coloradd""" import turtle from coloradd…

【研赛D题成品论文】24华为杯数学建模研赛D题成品论文(第一问)+可运行代码丨免费分享

2024华为杯研究生数学建模竞赛D题精品成品论文已出&#xff01; D题 大数据驱动的地理综合问题 一、问题分析 问题一&#xff1a;目标&#xff1a;利用1990-2020年的数据&#xff0c;针对降水量和土地利用的时空演化特征进行描述。数据&#xff1a;两个核心变量&#xff0c;一…

XBOX掌机和新主机或于26年推出

原文转载修改自&#xff08;更多互联网新闻/搞机小知识&#xff09;&#xff1a; XBOX掌机和新主机或于2026年发布&#xff0c;比PS6“早点” XBOX掌机成真 关于下一代XBOX主机&#xff0c;微软相关负责人就曾坦言下一代 Xbox 将是该平台 “最大的技术飞跃”&#xff0c;在饱…

18722 稀疏矩阵的运算

思路&#xff1a; 快速转置算法的基本思想是预先计算出转置后的三元组在新数组中的位置&#xff0c;然后直接将元素放到对应的位置上。这样做的好处是只需要遍历一次原数组&#xff0c;就可以完成转置操作。 步骤如下&#xff1a; 1. 初始化一个新的三元组数组&#xff0c;用于…

“咨询+数智化”双剑合璧,毕马威与用友的“最强拍档” | 商业创新同行者

作为全球“四大”会计师事务所之一&#xff0c;毕马威被很多人熟知&#xff0c;是因为其为很多上市公司提供了财务报告的审计服务。 实际上&#xff0c;审计业务并不是毕马威的全部&#xff0c;甚至不是其最大的业务版块。在审计、税务和咨询这三大业务中&#xff0c;咨询的营…

ABB 机器人与 Profinet 转 EthernetIP 网关的高效连接

Profinet转EthernetIP网关在工业自动化领域发挥着至关重要的作用。它主要的功能就是实现不同网络协议之间的数据交互&#xff0c;为各种设备的连接与协同工作搭建了桥梁。 以连接ABB机器人为例&#xff0c;Profinet转EthernetIP网关能够将ABB机器人高效地接入到不同的网络系统…

基于Java的建筑节能监测系统+公共建筑能耗监测系统+建筑能耗监测系统+节能监测系统

建筑节能监测系统公共建筑能耗监测系统建筑能耗监测系统节能监测系统能耗监测建筑能耗监测能耗分析能耗管理能耗预测能耗监控能耗监测平台建筑能耗 介绍 建筑节能监测系统是基于计算机网络、物联网、大数据和数据可视化等多种技术融合形成的一套节能监测系统 系统实现了对建…

k8s中,pod生命周期,初始化容器,容器探针,事件处理函数,理解其设计思路及作用

k8s中&#xff0c;为什么要设计pod 平台直接管理容器不是挺好的吗 为什么要以pod为单位进行管理&#xff0c; 然后把容器放在pod里面 那么有pod和没pod的区别是什么 也就是pod提供了什么作用 这个可以考虑从pod生命周期管理的角度去思考 如图&#xff0c;pod主容器在运行…

2024.9.24 数据分析

资料 111个Python数据分析实战项目&#xff0c;代码已跑通&#xff0c;数据可下载_python数据分析项目案例-CSDN博客 【数据挖掘六大项目实战】敢说这是全B站讲的最详细最通俗易懂的数据挖掘教程&#xff01;整整60集&#xff01;学不会来找我&#xff01;-数据挖掘、数据挖掘…