python数据类型

python中的变量不需要声明。但是每个变量在使用之前必须赋值

在python中变量没有类型的说法,我们所说的类型是变量在内存中对象的类型

在python3中常见的数据类型有

number(数字);string(字符串);bool(布尔类型);list(列表);tuple(元组);set(集合);dictionary(字典)

其中不可变数据类型:number(数字);string(字符串);tuple(元组)

可变数据类型:set(集合);dictionary(字典);list(列表)

不可变数据类型指的是一旦创建,其值就不能被改变的数据类型。这些类型的数据在内存中是只读的,任何修改操作都会在内存中新的位置创建新的数据(可以理解成创建一个新的内存空间)。

可变数据类型指的是可以在原地修改其值的数据类型。这些类型的数据在内存中是可写的,可以直接修改其内容而不需要创建新的数据。


number(数字)

python3支持int、float、bool、complex(复数)

在python3中,只有一种整数类型int表示长整型,没有python2中的Long

在整数类型中,十进制不需要引导符号;二进制引导符号是0b或0B(0到1);八进制引导符号是0o或0O(0到7);十六进制引导符号是0x或0X(0到9以及A到F)。输出的时候默认是十进制

也可以使用科学计数法

不确定的尾数问题(不只存在于python)

a=0.1
b=0.2
print(a+b)

最后的输出结果是0.30000000000000004

如果不想出现这种情况,就要使用函数round()

round(a+b,保留的小数位数)

复数

复数的一般形式是 a + bj,其中 a 是实部,b 是虚部,而 j 或者 J 是虚数单位,满足 j * j = -1。

使用real表示实部;imag来表示虚部

a=123+456j
print("实数部分",a.real)
print("虚数部分",a.imag)

可以用函数type()和isinstance()来判断数据类型

他们的区别在于type不会认为子类是一种父类类型;而isinstance会认为子类是一种父类类型

class Parent:passclass Child(Parent):passchild_instance = Child()
print(type(child_instance) == Parent)
print(isinstance(child_instance, Parent))
#所谓子类和父类就是指继承关系,子类是父类的一个子集,具有父类的所有属性和方法,但是也有自己独有的属性和方法。

type()直接返回数据类型,isinstance(变量,数据类型)判断true或flase

另外在python3中,bool是int的子类,true和flase可以和数字相加,true=1、flase=0

也可以使用del删除一些对象

del的语法是:del 变量名1,变量名2……

创建一个变量后,使用del删除再次使用这个变量会产生错误

string(字符串)

python中的字符串使用单引号或者双引号括起来,可以使用反斜杠转义特殊字符

使用三引号定义多行字符串 

a='''
123
456
789'''
a2="""
123
456
789"""
print(a)
print("----------------")
print(a2)
#三个单引号和三个双引号是没有区别的

字符串的索引值从做到右0开始n-1结束,末尾从-1开始-n结束

n是指字符串的长度

a="hello world"
b=0
c=-2
print(a[b]) # 输出第一个字符
print(a[::2])# 输出每隔两个字符
print(a[::-1])# 输出反向输出
print(a[::c])#反向输出每隔2个字符
print(a[::])#输出所有字符
print(a[:-1:])#输出除最后一个字符外的所有字符
print(a[b:c])# 输出第一个到倒数第三个字符
print(a[1::])#输出除第一个字符外的所有字符
#在字符串的切片中,list[start:end:step],start表示切片开始的位置,end表示切片结束的位置,step表示切片的步长,如果step为负数,则表示逆向切片。
#输出的字符串包括start位置的字符,但不包括end位置的字符。

python使用反斜杠(\)转义特殊字符,如果不想发生转义,在字符串前面添加一个r,表示原始字符串

print("hellow\nworld")
print(r"hello\nworld")
转义字符说明
\n换行符,可以同时使用多个
\t水平制表位,用于跳到下一个制表位,一个制表符占据八个字符
\\反斜杠
\'单引号
\"双引号
a="abc\tdefghijk"           #一个制表符占据八个,一个字母占据一个  8-3=5 所以五个空字符
b="abcdefghijk"
print(a)
print(b)
操作符描述说明
+将两个字符串连接起来
x in s如果x是s的字串,结果为true负责是false
x*s复制x次字符串s;复制s次字符串x

布尔类型

布尔类型只有True和False两个值,其中True表示整数1;False表示整数0

python中一切皆对象,而一切对象都有以一个布尔值

可以使用内置的函数bool()测试布尔值

print(bool(5))
print(bool(0))
print(bool("hello world"))
print(bool(""))
print(bool(None))

数值中的非零值表示True;零(0.0)表示False

字符值中非空字符表示True;空字符表示False

由上可知空序列(空字符串、孔元组、空列表、空字典、空集合)以及None都表示False,当bool()返回值是False或len()返回值为零时布尔值同样表示False

数据类型之间的转换

数据类型的转换分为两种分别时隐式转换和显式转换

隐式转换就是通过运算直接转换

a=10
b=3
z=a/b
print(z)
print("z的数据类型时",type(z))

在执行除法运算时将整数int隐式转换成浮点数float

而显式转换则需要用到函数

函数描述说明
int转换成整数类型
float转换成浮点数类型
str转换成字符串
chr将整数转换成对应Unicode表中的字符
ord将字符转换成对应Unicode表中的整数
hex转换成十六进制字符串
oct转换成八进制字符串
bin转换成二进制字符串

将float类型转换成int类型,只保留整数部分

也可以将str类型转换成int类型,但是只能是整数十进制,负责会报错

print(int('12'),type(int('12')))
print(int('12a'))# ValueError: invalid literal for int() with base 10: '12a'    a并不是一个十进制数
print(int('3.14')# ValueError: invalid literal for int() with base 10: '3.14'   3.14不是一个整数

 str类型转换成float类型,可以是整数,但必须是十进制

print(float('3.14'))
print(float('2'))
print(float('3.14abc'))

 chr()函数和ord()函数是一一对应的

print(ord('杰'))        #‘杰’的unicode表中的编码
print(chr(26480))      #unicode表中的编码26480对应的字符

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

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

相关文章

Vision Pro空间叙事创作工具:开启多媒体融合新纪元

在数字内容创作领域迎来了一位新玩家——专为Apple Vision Pro设计的空间叙事创作工具。这款工具不仅是一个沉浸式内容分享平台,更是面向空间计算时代的内容创作解决方案,它旨在通过全新的多媒体融合方式,打破传统内容创作的界限。 产品优势…

屏幕水印是什么,怎么设置丨超级简单的防盗水印教程来了,包教包会!

小李:现在科技这么发达,随便一截图或者拍照,信息就满天飞了 小张:给你的电脑屏幕安排一件“隐形战衣”呗 小李:哦?新词儿?些许陌生 小张:简而言之,言而简之&#xff0…

css:没错又是我

背景 给元素添加背景样式 还可以设置背景颜色、背景图片(教练我要学这个)、背景平铺、背景图片位置、背景图像固定 背景颜色 这个我们用过,就是: a {background-color: hotpink; } 一般默认值是transparent,也就…

adb 如何通过wifi连接手机

1. 电脑通过USB线连接手机 1.1手机开启开发者模式 以小米手机为例:连续点击OS版本系统(设置–>我的设备–>全部参数) 1.2在开发者模式下,启动允许USB安装与USB调试 操作步骤:设置>更多设置>开发者选项&g…

自己开发得期货资管模拟软件演示1.0.15版仅供学习

期货资管模拟软件演示1.0.15版仅供学习——C技术栈知识分享 本文将以期货资管模拟软件演示1.0.15版为例,分享其基于C技术栈的框架知识。 一、C技术栈在期货交易软件开发中的应用 C作为一种高性能的编程语言,以其强大的内存管理能力和高效的执行速度&a…

浅谈单片机的gcc优化级别__以双音频信号发生器为例

IDE: CLion HOST: Windows 11 MinGW:x86_64-14.2.0-release-posix-seh-ucrt-rt_v12-rev0 GCC: arm-gnu-toolchain-13.3.rel1-mingw-w64-i686-arm-none-eabi 一、简介 gcc有多种优化级别,一般不选择的情况下&#x…

C++之继承多态

C之继承&多态 继承继承之形继承的作用域继承的构造与析构多继承菱形继承 多态多态之形final和override(C11)纯虚函数&抽象类多态的原理打印虚表(在vs2022中)多继承下的虚表菱形虚继承中埋的坑静态多态与动态多态我对虚函数和普通成员函数调用区别…

机器学习-36-对ML的思考之机器学习研究的初衷及科学研究的期望

文章目录 1 机器学习最初的样子1.1 知识工程诞生(专家系统)1.2 知识工程高潮期1.3 专家系统的瓶颈(知识获取)1.4 机器学习研究的初衷2 科学研究对机器学习的期望2.1 面向科学研究的机器学习轮廓2.2 机器学习及其应用研讨会2.3 智能信息处理系列研讨会2.4 机器学习对科学研究的重…

arm 汇编技巧

汇编标号:f表示forward, b表示backward: Here is an example: 1: branch 1f 2: branch 1b 1: branch 2f 2: branch 1b Which is the equivalent of: label_1: branch label_3 label_2: branch label_1 label_3: branch label_4 label_4: bra…

特色3D打印stm32迷你8轴双核心主板

我自己设计的3D打印机主板 1. 这是一块迷你的8轴主板, 主板尺寸为100mm*75mm, 使用一个8cm静音风扇散热足够了2. 这是一个带有保护的板子, 驱动上的gpio具有过压保护功能, 能够直接抗住24V的冲击, 意味着一个驱动炸了, 板子不烧, 并且其他的驱动也没事, 主板支持自动关机3. 8…

golang分布式缓存项目 Day2 单机并发缓存

注:该项目原作者:https://geektutu.com/post/geecache-day1.html。本文旨在记录本人做该项目时的一些疑惑解答以及部分的测试样例以便于本人复习。 支持并发读写 接下来我们使用 sync.Mutex 封装 LRU 的几个方法,使之支持并发的读写。在这之…

2024 年将 Swagger 导入 Postman 图文教程

2024 年将 Swagger 导入 Postman 图文教程

从入门到精通:hello-algo开源项目助你系统学习数据结构与算法

文章目录 前言1.关于hello-algo2.安装Docker和Docker compose3.本地部署hello-algo4. hello-algo本地访问5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址 前言 本文将探讨如何在本地环境中部署hello-algo这一算法学习必备项目,并利用cp…

SystemVerilog学习笔记(七):函数与任务

函数 函数的主要用途是编写一段可以随时调用n次的代码,只需调用函数名即可,不需要任何模拟时间来执行。函数是返回类型,仅返回函数声明中提到的单个值,如果未声明则返回一个位的值。 语法: initial begin functio…

地下水数值模拟、 地下水环评、Visual modflow Flex、Modflow

地下水数值模拟软件Visual modflow Flex实践技术应用 地下水数值模拟软件的应用,主要围绕的目前应用较为广泛的Visual Modflow Flex 6.1软件版本开展,结合具体应用场景,实例讲解软件的全流程应用过程,包括数据处理分析、数值模型…

丹摩征文活动|Llama3.1:从安装到熟练使用的全方位教程

0.前言 目前关于 Llama 3.1 的详细安装和使用指南在网络上较为分散,对于许多想要深入了解和应用该模型的人来说,缺乏一个系统、全面的指导资料。为了填补这一空白,本文应运而生。旨在为广大读者提供从 Llama 3.1 的安装到熟练使用的全方位指…

UI自动化测试|CSS元素定位实践

前言 自动化测试元素定位是指在自动化测试过程中,通过特定的方法或策略来准确识别和定位页面上的元素,以便对这些元素进行进一步的操作或断言。这些元素可以是文本框、按钮、链接、图片等HTML页面上的任何可见或不可见的组件。 在自动化测试中&#xf…

软件架构与模式分析

软件架构模式分析 软件架构模式和架构风格是两个相关但不同的概念。 软件架构模式(Software Architecture Patterns)是一种在软件工程领域广泛应用的规范化、可复用的架构设计方案。它是通过抽象和提炼出解决特定问题所需的结构、组件、关系和规则等&am…

npm完整发包流程(亲测可验证)

1. 准备工作 (1) 在npm官网上注册一个账号 (2) 注册成功之后,npm会发送一封邮件给你,点击邮件里面的链接,做确认关联操作(必需) 2. 创建自己的npm包 (…

无插件直播流媒体音视频播放器EasyPlayer.js播放器多分屏超过6路不能播放如何解决

EasyPlayer.js H5播放器,是一款能够同时支持HTTP、HTTP-FLV、HLS(m3u8)、WS、WEBRTC、FMP4视频直播与视频点播等多种协议,支持H.264、H.265、AAC、G711A、Mp3等多种音视频编码格式,支持MSE、WASM、WebCodec等多种解码方…