Python基础知识详解:数据类型、对象结构、运算符完整分析
文章目录
- python基础知识
- 数据类型
- 类型检查
- 对象(object)
- 对象的结构
- 变量和对象
- 类型转换
- 运算符(操作符)
- 1. 算术运算符
- 2. 赋值运算符
- 3. 比较运算符(关系运算符)
- 4. 逻辑运算符
- 5. 条件运算符(三元运算符)
- 总结
python基础知识
数据类型
Python提供了丰富的数据类型,让我们可以灵活地处理各种数据。
首先是数值类型。数值类型包括整型、浮点型和复数。
整型(int)用于表示整数,例如年龄、数量等。我们可以直接将一个整数赋值给一个变量,如下所示:
age = 18
浮点型(float)用于表示带有小数点的数,例如长度、重量等。同样,我们可以将一个浮点数赋值给一个变量,如下所示:
height = 1.75
布尔值(bool)用于表示逻辑真(True)或逻辑假(False)。它通常用于条件判断和循环控制。下面是一个示例:
is_student = True
接下来是字符串类型(str)。字符串用于表示由字符组成的文本,比如姓名、地址等。我们可以使用单引号或双引号将文本括起来,如下所示:
name = "Alice"
address = '123 Main Street'
此外,还有一个特殊的数据类型是空值(NoneType)。空值表示一个没有任何值的对象。我们可以将一个变量赋值为None
来表示空值:
result = None
类型检查
当我们需要对变量进行类型检查时,可以使用type()
函数。下面是一个例子:
age = 18
print(type(age)) # 输出:<class 'int'>height = 1.75
print(type(height)) # 输出:<class 'float'>is_student = True
print(type(is_student)) # 输出:<class 'bool'>name = "Alice"
print(type(name)) # 输出:<class 'str'>result = None
print(type(result)) # 输出:<class 'NoneType'>
通过调用type()
函数,我们可以获取变量的实际数据类型,并进行相应的处理。
总结一下,Python提供了丰富的数据类型,包括整型、浮点型、布尔型和字符串型等。我们可以根据不同的需求选择合适的数据类型,同时使用类型检查功能来确保程序的正确性。
对象(object)
- Python是一门面向对象的语言
- 一切皆对象!
- 程序运行当中,所有的数据都是存储到内存当中然后再运行的!
- 对象就是内存中专门用来存储指定数据的一块区域
- 对象实际上就是一个容器,专门用来存储数据
- 像我们之前学习的数值、字符串、布尔值、None都是对象
对象的结构
当我们使用Python创建一个对象时,它会自动保存三种数据:标识、类型和值。每种数据的作用如下:
首先是标识(id):标识用来唯一标识一个对象,类似于人的身份证号码。每个对象都有一个独特的标识号。你可以使用内置函数id()
来查看一个对象的标识。在CPython解释器中,这个标识就是对象在内存中的地址。一旦对象被创建,它的标识就不会改变。
# 创建一个整型对象,并查看它的标识
num = 10
print(id(num)) # 输出:140721888491424
接下来是类型(type):类型表示当前对象所属的类别,比如整型(int)、字符串(str)、浮点数(float)、布尔值(bool)等。类型决定了对象具备哪些功能和行为。你可以使用内置函数type()
来查看一个对象的类型。需要注意的是,Python是一门强类型语言,创建后对象的类型不能被修改。
# 创建一个字符串对象,并查看它的类型
name = "Alice"
print(type(name)) # 输出:<class 'str'>
最后是值(value):值表示对象中具体存储的数据。对于某些对象,它们的值是可以被修改的;而对于其他一些对象,则是不可更改的。对象可以分为可变对象和不可变对象两类。可变对象的值可以改变,比如列表(list),而不可变对象的值不能改变,比如整型(int)、字符串(str)。
# 创建一个列表对象,并修改它的值
numbers = [1, 2, 3]
print(numbers) # 输出:[1, 2, 3]numbers.append(4)
print(numbers) # 输出:[1, 2, 3, 4]
通过保存这三种数据,Python中的对象能够灵活地存储和操作数据。了解对象的结构有助于我们更好地理解Python程序中的数据处理过程,并能更好地使用和管理对象。
变量和对象
在Python中,变量和对象是密不可分的。当我们创建一个对象时,实际上是在内存中开辟了一块空间来存储这个对象的值、类型和标识。当我们将一个对象赋值给一个变量时,变量中实际上保存的是这个对象的标识(内存地址),而不是对象本身。
看下面的例子:
# 创建一个整型对象
num1 = 10# 将 num1 赋值给 num2,两个变量此时指向同一个对象
num2 = num1# 修改 num1 的值,此时 num2 不受影响
num1 = 20print(num1) # 输出:20
print(num2) # 输出:10
从上面的代码可以看出,变量num1
和num2
都指向同一个整型对象(10
)。当我们修改num1
的值时,变量num2
并没有受到任何影响,因为它们各自保存了独立的对象标识。
同时,变量和变量之间是相互独立的,修改一个变量并不会影响另一个变量。比如下面的代码:
# 创建两个整型对象
num1 = 10
num2 = 20# 将 num1 和 num2 相加并赋值给 sum_num
sum_num = num1 + num2# 修改 num1 的值,不会影响 sum_num
num1 = 30print(sum_num) # 输出:30
从上面的代码可以看出,虽然我们修改了num1
的值,但是变量sum_num
中保存的对象的值并没有受到任何影响。这是因为变量和变量之间是相互独立的,它们各自保存着独立的对象标识。
综上所述,变量和对象之间的关系是一种别名关系,变量并不直接存储对象的值,而是指向对象的标识。当我们使用变量时,实际上是在通过对象标识查找对象。理解变量和对象之间的关系对于掌握Python编程非常重要。
类型转换
在Python中,类型转换是将一个类型的对象转换为另一种类型的对象。类型转换的目的是根据当前对象的值创建一个新对象,而不是改变对象本身的类型。
下面是一些常见的类型转换示例:
- 将整型转换为字符串型:
# 创建一个整型对象
num = 100# 将整型转换为字符串型
str_num = str(num)print(type(str_num)) # 输出:<class 'str'>
在上面的例子中,我们使用str()
函数将整型对象num
转换为字符串型对象str_num
。通过type()
函数可以查看str_num
的类型,它是一个字符串型对象。
- 将字符串型转换为整型:
# 创建一个字符串对象
str_num = "200"# 将字符串型转换为整型
num = int(str_num)print(type(num)) # 输出:<class 'int'>
在上面的例子中,我们使用int()
函数将字符串型对象str_num
转换为整型对象num
。通过type()
函数可以查看num
的类型,它是一个整型对象。
- 将浮点型转换为整型:
# 创建一个浮点型对象
float_num = 3.14# 将浮点型转换为整型
num = int(float_num)print(num) # 输出:3
在上面的例子中,我们使用int()
函数将浮点型对象float_num
转换为整型对象num
。由于整型对象只能表示整数,所以在类型转换时小数部分会被舍弃。
需要注意的是,在进行类型转换时要确保当前对象的值是符合目标类型的要求的,否则可能会导致错误。例如,将一个非数字字符串转换为整型时会引发ValueError
异常。
综上所述,通过类型转换,我们可以根据需要将一个类型的对象转换为另一种类型的对象。类型转换不会改变对象本身的类型,而是根据对象的值创建一个新的对象。掌握类型转换对于在Python中进行数据处理和操作非常重要。
运算符(操作符)
- 运算符可以对一个值或多个值进行运算或各种操作
- 比如 + 、-、= 都属于运算符
- 运算符的分类:
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 条件运算符(三元运算符)
接下来我们来详细介绍一下常见的运算符。
1. 算术运算符
- 加法运算符 (+):用于对两个值进行相加。
- 减法运算符 (-):用于从一个值中减去另一个值。
- 乘法运算符 (*):用于将两个值相乘。
- 除法运算符 (/):用于将一个值除以另一个值。
- 取余运算符 (%):用于取得两个数相除的余数。
- 整除运算符 (//):用于取得两个数相除的整数部分。
- 幂运算符 (**):用于将一个数的幂次方。
示例:
a = 10
b = 3print(a + b) # 输出:13
print(a - b) # 输出:7
print(a * b) # 输出:30
print(a / b) # 输出:3.3333333333333335
print(a % b) # 输出:1
print(a // b) # 输出:3
print(a ** b) # 输出:1000
2. 赋值运算符
赋值运算符用于将值赋给变量。
- 等号 (=):将右侧的值赋给左侧的变量。
- 加等于 (+=):将右侧的值加到左侧的变量上,并将结果赋给左侧的变量。
- 减等于 (-=):将右侧的值从左侧的变量中减去,并将结果赋给左侧的变量。
- 乘等于 (*=):将左侧的变量乘以右侧的值,并将结果赋给左侧的变量。
- 除等于 (/=):将左侧的变量除以右侧的值,并将结果赋给左侧的变量。
- 取余等于 (%=):将左侧的变量取余右侧的值,并将结果赋给左侧的变量。
- 整除等于 (//=):将左侧的变量整除以右侧的值,并将结果赋给左侧的变量。
- 幂等于 (**=):将左侧的变量的值提升到右侧的幂次方,并将结果赋给左侧的变量。
示例:
a = 10
b = 3a += b # 等价于 a = a + b
print(a) # 输出:13a -= b # 等价于 a = a - b
print(a) # 输出:10a *= b # 等价于 a = a * b
print(a) # 输出:30a /= b # 等价于 a = a / b
print(a) # 输出:10.0a %= b # 等价于 a = a % b
print(a) # 输出:1.0a //= b # 等价于 a = a // b
print(a) # 输出:0.0a **= b # 等价于 a = a ** b
print(a) # 输出:0.0
3. 比较运算符(关系运算符)
比较运算符用于比较两个值之间的关系,返回布尔值 True 或 False。
- 等于 (==):检查两个值是否相等。
- 不等于 (!=):检查两个值是否不相等。
- 大于 (>):检查左侧的值是否大于右侧的值。
- 小于 (<):检查左侧的值是否小于右侧的值。
- 大于等于 (>=):检查左侧的值是否大于等于右侧的值。
- 小于等于 (<=):检查左侧的值是否小于等于右侧的值。
示例:
a = 10
b = 3print(a == b) # 输出:False
print(a != b) # 输出:True
print(a > b) # 输出:True
print(a < b) # 输出:False
print(a >= b) # 输出:True
print(a <= b) # 输出:False
4. 逻辑运算符
逻辑运算符用于组合条件表达式,并返回布尔值 True 或 False。
- 与运算符 (and):如果两个条件表达式都为 True,则返回 True。
- 或运算符 (or):如果至少一个条件表达式为 True,则返回 True。
- 非运算符 (not):将条件表达式的结果取反。
示例:
a = 10
b = 3
c = 5print(a > b and a > c) # 输出:True
print(a > b or a < c) # 输出:True
print(not(a > b)) # 输出:False
5. 条件运算符(三元运算符)
条件运算符用于根据条件选择不同的值。
- 语法:value1 if condition else value2
- 如果条件为 True,则返回 value1,否则返回 value2。
示例:
a = 10
b = 3max_value = a if a > b else b
print(max_value) # 输出:10
以上就是常见的运算符。在实际编程中,这些运算符可以帮助我们完成各种逻辑和计算任务。
总结
本文介绍了编程中的一些基础概念和语法,包括数据类型、类型检查、对象、变量和对象、类型转换以及运算符。下面对这些内容进行简要总结:
- 数据类型定义了数据的特性和操作。常见数据类型包括整数、浮点数、字符串、布尔值等。类型检查可以确定变量的数据类型。
- 对象是具有状态和行为的实体。变量是指向对象的引用,可以通过变量来访问和操作对象的属性和方法。
- 类型转换是将一个数据类型转换为另一个数据类型的过程。常见的转换包括整数与浮点数之间的转换、字符串和数字之间的转换等。
- 运算符是用于执行特定操作的符号。常见的运算符包括算术运算符、比较运算符、逻辑运算符等。
通过理解和掌握这些基础知识,可以更好地开始学习和编写代码。在编程过程中,要注意语法的正确性和数据类型的匹配,合理使用函数和对象来组织代码。同时,灵活运用运算符来实现各种计算和逻辑操作。
相关文章:
Python基础知识详解:数据类型、对象结构、运算符完整分析
文章目录 python基础知识数据类型类型检查对象(object)对象的结构变量和对象类型转换运算符(操作符)1. 算术运算符2. 赋值运算符3. 比较运算符(关系运算符)4. 逻辑运算符5. 条件运算符(三元运算符) 总结 py…...
基于Streamlit的应用如何通过streamlit-authenticator组件实现用户验证与隔离
Streamlit框架中默认是没有提供用户验证组件的,大家在基于streamlit快速实现web应用服务过程中,不可避免的需要配置该应用的访问范围和权限,即用户群体,一般的做法有两种,一种是通过用户密码验证机制,要求只…...
[虚幻引擎插件介绍] DTGlobalEvent 蓝图全局事件, Actor, UMG 相互回调,自由回调通知事件函数,支持自定义参数。
本插件可以在虚幻的蓝图 Actor, Obiect,UMG 里面指定绑定和执行消息,可带自定义参数。 参数支持 Bool,Byte,Int,Int64,Float,Name,String,Text,Ve…...
2023数学建模国赛选题建议及BC题思路
大家好呀,全国大学生数学建模竞赛今天下午开赛啦,在这里先带来初步的选题建议及思路。 目前团队正在写B题和C题完整论文,后续还会持续更新哈,以下只是比较简略的图文版讲解,团队目前正在写B、C题完整论文,…...
vue3:4、组合式API-setup选项
setup每次都要return,好麻烦。怎么解决? 使用 <script setup> 语法糖(底层帮你return了) 写法如下...
【C刷题训练营】第三讲(c语言入门训练)
前言: 大家好,我决定日后逐渐更新c刷题训练营的内容,或许能帮到入门c语言的初学者,如果文章有错误,非常欢迎你的指正! 💥🎈个人主页:Dream_Chaser~ 🎈&…...
简述视频智能分析EasyCVR视频汇聚平台如何通过“AI+视频融合”技术规避八大特殊作业风险
视频智能分析EasyCVR视频汇聚平台可以根据不同的场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上,视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储磁盘阵列、录…...
2023年9月NPDP产品经理国际认证报名,找弘博创新
产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…...
【MySQL】MySQL的安装,登录,配置和相关命令
文章目录 前言一. 卸载不需要的环境二. 获取MySQL的yum源三. 安装MySQL和启动四. 尝试登录MySQL方法1:获取临时root密码方法2:没有密码方法3:配置文件 五. 简单配置结束语 前言 本篇文章是基于云服务器;Linux:Centos7…...
攻防世界-WEB-php_rce
打开靶机链接 搜村ThinkPhP V5存在远程命令执行的漏洞 构建payload /index.php?sindex/think\app/invokefunction&functioncall_user_func_array&vars[0]system&vars[1][]ls 查询当前目录文件,没有发现flag。调整payload 得到flag文件,修…...
WRFDA资料同化实践技术
数值预报已经成为提升预报质量的重要手段,而模式初值质量是决定数值预报质量的重要环节。资料同化作为提高模式初值质量的有效方法,成为当前气象、海洋和大气环境和水文等诸多领域科研、业务预报中的关键科学方法。资料同化新方法的快速发展,…...
C++11新特性② | 左值、左值引用、右值与右值引用
目录 1、引言 2、值类别及相关概念 3、左值、右值 4、左值引用、右值引用 5、移动语义 5.1、为什么需要移动语义 5.2、移动语义定义 5.3、转移构造函数 5.4、转移赋值函数 6、标准库函数 std::move 7、完美转发 std::forward VC常用功能开发汇总(专栏文章…...
Python Opencv实践 - Harris角点检测
参考资料:https://blog.csdn.net/wsp_1138886114/article/details/90415190 import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/chinease_tower.jpg", cv.IMREAD_COLOR) plt.imshow(img[:,:,::-1])#…...
el-upload上传图片到七牛云或阿里云
(1)绑定上传地址,上传数据对象 <el-upload class"upload-demo" :action"uploadUrl" :data"uploadData":on-success"handleSuccess" :file-list"[]" :show-file-list"false"…...
Web jQuery—选择器、样式和效果
jQuery 选择器、样式和效果 代码下载 jQuery 介绍 JavaScript库:即 library,是一个封装好的特定的集合(方法和函数)。从封装一大堆函数的角度理解库,就是在这个库中,封装了很多预先定义好的函数在里面&a…...
Java和Kotlin的Field在继承中的不同表现
Kotlin是一个宣称与Java兼容性较好的语言,但在接触后发现一些技术还是有“概念上”的冲突,本文就记录下两者对象的Field(中文的说法有字段、域、属性、成员变量,下文若出现这些表达,指的都是这个东西)在继承…...
MySQL 子查询
文章目录 1.简介2.优势3.分类3.1 标量子查询3.2 行子查询3.3 列子查询IN 操作符ALL 操作符ANY/SOME 操作符 3.4 表子查询 4.关联子查询5.EXISTS 和 NOT EXISTS6.横向派生表7.附录参考文献 1.简介 子查询是另一个语句中的 SELECT 语句。 子查询也称为内查询(Inner …...
Ubuntu离线或在线安装CMake
首先下载适用于Ubuntu的CMake安装包,可以去官网下载,也可以通过下面的命令下载(需要联网): wget https://cmake.org/files/v3.22/cmake-3.22.1.tar.gz将下载的安装包进行解压: tar -xvzf cmake-3.22.1.ta…...
后端面试话术集锦第 十七 篇:MySQL面试话术
这是后端面试集锦第十七篇博文——MySQL面试话术❗❗❗ 1. 解释一下单列索引和联合索引 单列索引是指在表的某一列上创建索引。 联合索引是在多个列上联合创建索引。 单列索引可以出现在where条件的任何位置,而联合索引需要按照一定的顺序来写。在多条件查询的时候,联合索引…...
< 文件资源管理器 > 和 < 此电脑 > 有什么区别?
“文件资源管理器”和 “此电脑” 的区别 1. 文件和文件夹管理:2. 访问存储设备:3. 搜索功能:4. 视图和排序选项:5. 快速访问: 主要的区别1. 界面和用途:2. 显示内容:3. 导航: 在Win…...
线上问诊:可视化展示
系列文章目录 线上问诊:业务数据采集 线上问诊:数仓数据同步 线上问诊:数仓开发(一) 线上问诊:数仓开发(二) 线上问诊:数仓开发(三) 线上问诊:可视化展示 文章目录 系列文章目录前言一、全流程调度1.生产新…...
如何选择合适的HTTP代理服务器
HTTP代理服务器是一种常见的网络代理方式,它可以帮助用户隐藏自己的IP地址,保护个人隐私和安全。然而,选择合适的HTTP代理服务器并不容易,需要考虑多个因素。本文将介绍如何选择合适的HTTP代理服务器。 了解代理服务器的类型 HTT…...
Car Window Control Reset
大众汽车窗口自动升降失效,重置: 扣住5秒,重启汽车,试一下车钥匙,和再重试这个按钮,扣一下试一试...
序列号序列号
主板序列号 string str;str bios.GetSystemSerialNumber(); //wentai//str1 bios.GetSystemECSerialNumber();//CLogHelp::ITCLog(str1);LocalSN str.c_str();str bios.GetSystemVersion();LocalMode str.c_str();string str1;str1 bios.GetSystemSerialNumber();CLogHe…...
SSM(Spring-Mybatis-SpringMVC)
文章目录 1. 介绍1.1 概念介绍 2 SSM整合框架3. SSM功能模块开发4 测试4.1 业务层接口测试4.2 表现层接口测试 5.优化 -表现层数据封装6.异常处理 1. 介绍 1.1 概念介绍 SSM项目是指基于SpringSpringMVCMyBatis框架搭建的Java Web项目。 Spring是负责管理和组织项目的IOC容器和…...
MySQL——数据的删除以及MySQL中的约束
删除数据 删除表中的一行数据,也必须加上 WHERE条件,否则整列的数据都会被删除。删除语句: delete from 表名 where 条件; 他会将所有的符合条件的数据删除,如果不写条件,则表中的数据全部删除: 如果不添…...
静态路由 网络实验
静态路由 网络实验 拓扑图初步配置R1 ip 配置R2 ip 配置R3 ip 配置查看当前的路由表信息查看路由表信息配置静态路由测试 拓扑图 需求:实现 ip 192.168.1.1 到 192.168.2.1 的通信。 初步配置 R1 ip 配置 system-view sysname R1 undo info-center enable # 忽略…...
数据结构-01 数据结构基本概念,算法时间复杂度,空间复杂度
0 数据结构概述 四门课的关系 1 绪论 数据对象、数据元素、数据项关系 1.1 数据结构的基本概念 1.2 算法和算法评价 小练习 空间复杂度中的递归调用 n只是传入 n也是数组,计算存储数组flag的空间大小...
【Redis】Bitmap 使用及应用场景
前言:bitmap 占用空间小,查询效率高,在一些场景中使用 bitmap 是一个很好的选择。 一、bitmap 相关命令 SETBIT - 设置指定位置的比特值,可以设为 1 或 0 例如 SETBIT key 10 1,将在 key 对应的 bitmap 中第10位设置为…...
C#,数值计算——用于积分函数与方法的Stiel类的计算方法与源程序
1 文本格式 using System; namespace Legalsoft.Truffer { public class Stiel { public class pp : UniVarRealValueFun, RealValueFun { public Stiel st { get; set; } null; public pp() { } public doubl…...
如何建设一个交友网站赚钱/小江seo
前几天还说编译vlc for iphone buildMobileVLC.sh改进了很多,解决了一些以前的bug,好很多,这些都是表像。安装Xcode 4.0后,再编译,差错一个都不少,陆陆续续搞了一个星期,大致理顺。 准备好文件&…...
订阅号怎么做免费的视频网站/官方网站怎么注册
啊喂,你们不要只收藏不点赞啊 稍微更新一下,多说两句。 虽然爬取移动端比较简单,但是爬一点难的东西对身体好对吧。 总结一下这个模拟登陆涉及的东西: 1.用户名经过base64加密。 2.输入用户名后会进行预登陆操作。 3.密码明文与…...
山东省住房和城乡城乡建设厅网站/seo软文是什么
最近DIY了个电子作品,主控选的stm32,之前我总结过STM32CubeMX使用教程,那会STM32CubeIDE还没出来,但是现在既然已经更新了,那就用最新的工具。 这篇主要就是介绍下STM32CubeIDE,下面的内容就是官网参数,包括后边的下载和参考资料也都是优先建议从官网获取 STM32CubeIDE介…...
wordpress 关闭摘要/百度浏览器官网下载并安装
CAD看图王(CAD手机看图专业版)集快速看图、DWG画图、CAD批注、制图于一身的CAD看图软件,全球累计免费用户超过5000万。支持AutoCAD、浩辰CAD、天正建筑、酷家乐等国内外CAD图纸格式,图纸原生显示CAD图纸不失真。专业的fonts字体解析告别文字乱码…...
建站个人网站/快速排名工具免费查询
1.连接数据并显示一些信息 db_connet username:passwordip address/database name db_destroy 同上 db_import 文件名字 db_hosts -c address,svcs,vulns // 显示ip地址,服务器,漏洞数 db_vlns // 显示漏洞名字 2.nmap扫描 db_nmap -sS -nP ip addre…...
安徽黄山网站建设/百度seo入驻
朋友们,如需转载请标明出处:http://blog.csdn.net/jiangjunshow 在大多数时候,你是没有足够的图像来训练深度神经网络的。本文将教你如何从小样本数据快速学习你的模型。 为什么我们关心小样本学习? 1980年, Kunihiko…...