菜鸟学习日记(Python)——基本数据类型

Python 中的变量不需要声明每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

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

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

例:

counter = 100          # 整型变量
miles   = 1000.0       # 浮点型变量
name    = "runoob"     # 字符串print (counter)
print (miles)
print (name)

多个变量赋值:

python中允许同时为多个变量赋值

例:

a=b=c=1a,b,c=1,2,'test'

标准数据类型:

python中的常见数据类型有:

1.数字(Number)

2.字符串(String)

3.布尔类型(bool,也属于数字类型)

4.列表(List)

5.元组(Tuple)

6.集合(Set)

7.字典(Dictionary)

python中六个标准数据类型中:

不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)。

除了这些,还有一些高级的数据类型,如:字节数组类型(bytes)

Number(数字):

数字类型包括int、float、bool、complex(复数)

int是整数类型,值得注意的是,python3中没有long类型,只有int类型

在python中用内置的type()函数,可以获取数据的类型

例如:执行以下代码

a=1
print(type(a))

结果为:

也可以使用 isinstance对数据的类型进行判断

例如:执行以下代码

b=2
print(isinstance(b,int))
print(isinstance(b,float))

结果为:

isinstance 和 type 的区别在于:

isinstance 会认为子类也是父类类型,而type 不认为子类是父类类型

例如:执行以下代码

class A:pass
class B(A):pass
print(isinstance(A(),A))
print(isinstance(B(),A))
print(type(A())==A)
print(type(B())==A)

结果为:

可以看到

print(isinstance(B(),A))的结果为True,而print(type(B())==A)的结果为False

注意:Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True

在Python中可以用del将变量删除,如果执行以下语句:

var1 = 1
var2 = 10
del var1,var2
print(var1)

会报错:

python中的数值运算包括加法(+)、减法(-)、乘法(*)、除法(/,结果为浮点数;//,结果为整数)、取余运算(%)、乘方运算(**)

执行以下代码:

a=8
b=2.5
c=5
print(a+b)
print(a-b)
print(a*b)
print(a/c)
print(a//c)
print(a%c)
print(a**c)

得到运行结果:

Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 其中复数的实部 a 和虚部 b 都是浮点型。

字符串(String)

python中的字符串用单引号(')或者双引号(")括起来,同时使用反斜杠(\)来转义特殊字符,如果要截取字符,可以用以下的语法格式啦截取:

字符串[头下标:尾下标],python中的下标方式有两种,从左往右是从0开始,从右往左是从-1开始,下标-1表示字符串的最后一个字符,下标为0表示字符串的第一个字符

python中的字符串可以用‘+’来连接,用‘*‘来复制

反斜杠(\)可以用作续行符,表示下一行是上一行的延续,也可以转义特殊字符,如果不想被转义的话,可以用r来实现\n不转义

python中,没有单独的字符类型,字符就是长度为1的字符串

注意:python中的字符串不能被改变,不能向一个索引位置赋值(这与C语言不同)

执行下面的语句:

str='test1'
print(str[0:-1])    #打印第一个开始到倒数第二个字符
print(str[2:])      #打印第三个开始到最后一个字符
print(str[1:4])       #打印第二个开始到第四个字符
print(str[:4])        #打印第一个开始到第四个字符
print(str+str+'hh')      #连接字符串
print(str*2)           #复制字符串
str2='test2\ntest3'         #换行
print(str2)
str3='test1\test2\test3'         #续行
print(str3)
str3[0]='a'      #此操作不被允许

结果如下:

布尔类型(bool,也属于数字类型)

bool类型即True和False,它们都是python中的关键字,

bool类型可以作为判断条件,用于if语句中

bool类型可以和逻辑运算符配合使用,计算出来的值仍然会是bool类型的数据

bool类型也可以和数值进行运算(bool类型属于int类型),运算时,True会被看做1,False被看做0

bool类型还可以转为其他数据类型,如整数、浮点数和字符串等

执行以下语句:

f1=True
f2=False
print(0<2)
print(1==1)
print(f1 and f2)
print(f1 or f2)
print(not f1)
print(int(f1))
print(float(f1))
print(float(f2))
print(str(f1))

结果如下:

注意: 在 Python 中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为 True,只有 0、空字符串、空列表、空元组等被视为 False。因此,在进行布尔类型转换时,需要注意数据类型的真假性。

列表(List)

列表是python中使用得最多的数据类型,列表用中括号([])括起来,列表中的元素用逗号(,)隔开,列表的元素可以是多种数据类型,如:数字、字符串、列表(嵌套)

和字符串一样,列表可以被索引、截取(切片),截取后获得新的列表

列表截取的语法格式如下:

字符串[头下标:尾下标:步长],步长可以省略,默认为1,如果它为负数,那么表示逆向读取,它的索引同样有两种方式,从左往右是从0开始,从右往左是从-1开始

同时列表也可以用‘+’来连接,用‘*’来重复

与字符串不同的是,列表中的数据是可以改变的,可以通过向索引位置赋值来改变列表元素的值

执行以下代码:

list1=[1,2.5,True,'test']
print(list1[::2])       #截取整个列表,步长为2
print(list1[1:3])       #截取第2到第三个字符
print(list1[:])         #截取整个列表
print(list1[:-1])       #截取第一个到倒数第二个字符
print(list1[1:])        #截取第二个到最后一个字符
print(list1+list1)      #连接两个相同的列表
print(list1*2)         #重复列表
list1[0]='test3'        #给下标为0的列表元素赋值,改变原来的值

得到结果为:

元组(Tuple)

元组与列表类似,但是它是不可变的,元组的元素不能修改,元组用小括号()括起来,元素之间用逗号,隔开,元组中的元素类型也有多种

与字符串和列表类似,元组也有相同的索引方式,可以切片,可以用加号+连接,用乘号*重复,虽然它和字符串一样不可变,但是它可以包含可变的元素,如列表

值得注意的是,对于包含0个或者1个元素的元组,它有一些特殊的语法规则,对于包含一个元素的元组,要在元素后加一个逗号,

tup1 = ()    # 空元组
tup2 = (1,)  # 一个元素,需要在元素后添加逗号

string、list 和 tuple 都属于 sequence(序列)

集合(Set)

集合是一种无序、可变的数据类型,集合用花括号{}括起来,同一个集合中的元素类型相同,元素不能重复,用逗号,将元素分隔开。

集合可以进行并集、交集、差集等常见的集合操作,由于集合是无序的,所以集合不能被索引和切片。

注意:创建一个空集合不能用{},必须用set(),{}是用来创建一个空字典的,非空集合可以用{}创建

执行以下代码:

set1=set()      #创建一个空集合
print(type(set1))       #输出数据类型
dict={}         #创建一个空字典
print(type(dict))
set2={'a','b','c','d','e','a','b'}
print(set2)     #重复的元素会被自动去掉
set3={'c','d','e','f','g','h'}
print(set2 & set3)      #set2与set3的交集
print(set2 - set3)      #set2与set3的差集
print(set2 | set3)      #set2与set3的并集
print(set2 ^ set3)      #set2与set3中不同时存在的集合

结果为:

可以看到,用set()创建空集合时,打印它的数据类型,是set,而使用{}创建时,打印类型是 dict

字典(Dictionary)

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

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

相关文章

深入学习redis-基于Jedis通过客户端操作Redis

目录 redis客户端&#xff08;JAVA&#xff09; 配置 引入依赖 建立连接 常用命令实现 get/set exists/del keys expire和ttl type 字符串&#xff08;String&#xff09; mget和mset getrange和setrange append incr和decr 列表&#xff08;list&#xff09; …

运行启动vue项目报报错node: --openssl-legacy-provider is not allowed in NODE_OPTIONS解决

报错的问题就是package.json中的Scripts下的dev 解决方法就是要不升级你的应用代码&#xff0c;支持 新版本的node.js 要不就是删除SET NODE_OPTIONS--openssl-legacy-provider &&代码&#xff0c;如下代码即可正常运行起来

windows判断端口是否在使用 bat脚本

脚本 REM 查询端口是否占用 netstat -ano|findstr 3306 >nul &&echo y >1.log ||echo n >1.log REM 读取文本内容赋值给变量 set /P resu<1.log if %resu% y (echo port in use ) else (echo port not in use ) mysql服务不运行的时候检测效果 mysql服…

鸿蒙原生应用/元服务开发-开发者如何进行真机测试

前提条件&#xff1a;已经完成鸿蒙原生应用/元服务开发&#xff0c;已经能相对熟练使用DevEco Studio,开发者自己有鸿蒙4.0及以上的真机设备。 真机测试具体流程如下 1.手机打开开发者模式 2.在项目中&#xff0c;左上角 文件(F)->项目结构 进行账号连接 3.运行

Flash学习

FLASH介绍 FLASH是常用的&#xff0c;用于存储数据的半导体器件&#xff0c;它具有容量大&#xff0c;可重复擦写&#xff0c;按“扇区/块”擦除、掉电后数据可继续保存的特性。 常见的FLASH有NOR FLASH和NAND FLASH。 NOR和NAND是两种数字门电路&#xff0c;可以简单地认为F…

【负载均衡 SLB介绍及其算法详解】(一万两千字)

目录 一、负载均衡 SLB 定义 二、负载均衡SLB的作用 三、负载均衡器&#xff08;Load Balancer&#xff09; 【1】工作原理 【2】主要功能 【3】关键概念 四、工作负载&#xff08;Workload&#xff09; 五、负载均衡算法 【1】轮询&#xff08;Round Robin&#xff0…

python 中文件相对路径 和绝对路径

什么是绝对路径 绝对路径&#xff1a;就是从盘符(c盘、d盘)开始一直到文件所在的具体位置。 例如&#xff1a;xxx.txt 文件的绝对路径为&#xff1a; “C:\Users\xiaoyuzhou\Desktop\file\xxx.txt”相对路径 “相对路径”就是针对“当前文件夹”这一参考对象&#xff0c;来描述…

TZOJ 1375 偶数求和

答案&#xff1a; #include <stdio.h> int main() {int n 0, m 0, j 0, s 0, count1 0,k0;int arr[101] { 0 }; //选择数组是用来控制打印格式while (scanf("%d%d", &n, &m) 2 && (n < 100 && n>0)) //多组数据输入…

计算机网络HTTP篇

目录 一、HTTP基本概念 二、GET 与 POST 2.1、GET 与 POST 有什么区别&#xff1f; 2.2、GET 和 POST 方法都是安全和幂等的吗&#xff1f; 三、HTTP 缓存 3.1、强制缓存&#xff1a; 3.2、协商缓存 四、HTTP 特性 4.1、HTTP/1.1 4.1.1、HTTP/1.1 的优点 4.1.2、HTT…

使用ApexSQLLog工具恢复数据库

目录 前言 一、ApexSQLLog是什么&#xff1f; 二、使用步骤 1.连接你要恢复的数据库 2.选择你要恢复的时间点的数据 3.恢复指定操作的数据 4.恢复指定的表 5.输出结果方式 6.输出结果方式 7.生成还原的sql语句 总结 前言 我们在操作数据库的时候可能误操作把数据修…

【Qt开发流程】之打印文档

描述 Qt为打印提供了广泛的跨平台支持。使用每个平台上的打印系统&#xff0c;Qt应用程序可以打印到连接的打印机上&#xff0c;也可以通过网络打印到远程打印机上。Qt的打印系统还支持PDF文件生成&#xff0c;为基本报表生成工具提供了基础。 支持打印的类 下面的类支持选择…

【经验分享】openGauss 客户端(Data Studio / DBeaver)连接方式

前言 本篇介绍了openGauss常用的客户端连接工具Data Studio和DBeaver 01 客户端工具 openGauss部署之后&#xff0c;在服务器上提供了在命令行下运行的数据库连接工具gsql。此工具除了具备操作数据库的基本功能&#xff0c;还提供了若干高级特性&#xff0c;便于用户使用。…

数据结构---堆

1.堆的概念及结构 堆的性质&#xff1a; 堆中某个节点的值总是不大于或不小于其父节点的值堆总是一棵完全二叉树 2.举例说明 堆一般是把数组数据看做是一棵完全二叉树 小堆要求&#xff1a;任意一个父亲<孩子大堆要求&#xff1a;任意一个父亲>孩子 比如&#xff1…

Zookeeper+Kafka集群

注&#xff1a;本章使用的Kafka为2.7.0版本 Zookeeper概述 1.Zookeeper定义 Zookeeper是一个开源的分布式的&#xff0c;为分布式框架提供协调服务的Apache项目。 2.Zookeeper工作机制 Zookeeper从设计模式角度来理解&#xff1a;是一个基于观察者模式设计的分布式服务管理…

MAMP Pro v6.8.1(PHP/MySQL开发环境)

MAMP Pro是一款专为Mac用户设计的全功能本地服务器软件&#xff0c;可以将电脑变成一个完整的Web开发环境。无论个人开发者、网站管理员还是团队协作&#xff0c;MAMP Pro都提供了强大的工具和便捷的管理方式&#xff0c;能够更加高效地构建和测试网站。 MAMP Pro的基本功能包括…

数据库的多表查询(MYSQL)表表联立

根据以上三张表格&#xff0c;对三张表格进行不同的联立&#xff0c;查询并显示符合条件的内容。 1. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。 mysql> SELECT d.deptno AS 部门编号, d.dname as 部门名称, d.loc as 部门位置, COUNT(e.emp…

长沙电信大楼火灾调查报告发布:系烟头引发。FIS来护航安全

近日&#xff0c;长沙电信大楼的火灾调查报告引起广泛关注。调查发现&#xff0c;火灾是由未熄灭的烟头引发&#xff0c;烟头点燃了室外平台的易燃物&#xff0c;迅速蔓延至整个建筑。这起悲剧再次提醒我们&#xff0c;小小的疏忽可能酿成大灾难。但如果我们能及时发现并处理这…

大模型的RPA应用 | 代理流程自动化(APA),开启智能自动化新纪元

随着技术创新的持续推进&#xff0c;自动化技术已经变得至关重要&#xff0c;成为驱动企业和社会向前发展的核心动力。在自动化的里程碑中&#xff0c;机器人流程自动化&#xff08;RPA&#xff09;已经有效地将简单、重复且规则性的任务自动化。可是随着对处理更为复杂、多变且…

P29 C++箭头运算符以及它对于结构体与类的指针关系

本期的主要内容是箭头运算符以及它对于结构体与类的指针可以做什么&#xff0c;最后实现我们自己的运算符重载。 01 为什么要使用运算符重载 从开发的角度而言&#xff0c;运算符重载的存在是为了提高开发效率&#xff0c;增加代码的可复用性&#xff0c;很多时候简化了代码。…

【开源】基于Vue+SpringBoot的高校宿舍调配管理系统

项目编号&#xff1a; S 051 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S051&#xff0c;文末获取源码。} 项目编号&#xff1a;S051&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统…