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

news2024/12/23 22:49:55

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

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

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

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

例:

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

print (counter)
print (miles)
print (name)

多个变量赋值:

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

例:

a=b=c=1

a,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.coloradmin.cn/o/1273921.html

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

相关文章

Netty Review - 探索Channel和Pipeline的内部机制

文章目录 概念Channel Pipeline实现原理分析详解 Inbound事件和Outbound事件演示Code 概念 Netty中的Channel和Pipeline是其核心概念&#xff0c;它们在构建高性能网络应用程序时起着重要作用。 Channel&#xff1a; 在Netty中&#xff0c;Channel表示一个开放的连接&#xff…

【VScode】超详细图片讲解下载安装、环境配置、编译执行、调试

这里是目录 VScode是什么&#xff1f;VScode的下载和安装环境介绍安装中文插件 配置VScodeC/C开发环境下载和配置MinGW-w64 编译器套件下载&#xff1a;配置&#xff1a; 安装C/C插件在VScode上编写代码设置C/C编译选项创建执行任务编译执行如果想写其他代码在同一个文件夹在不…

【双向链表的实现】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 1. 双向链表的结构 2. 双向链表的实现 2.1 头文件 ——双向链表的创建及功能函数的定义 2.2 源文件 ——双向链表的功能函数的实现 2.3 源文件 ——双向链表功能的…

SS6811H38V/1.6A 两通道 H 桥驱动芯片

SS6811H 为舞台灯光和其它电机一体化应用 提供一种双通道集成电机驱动方案。SS6811H 有 两路 H 桥驱动&#xff0c;每个 H 桥可提供最大输出电流 1.6A (在 24V 和 Ta 25C 适当散热条件下)&#xff0c;可驱 动两个刷式直流电机&#xff0c;或者一个双极步进电机&#xff0c;或 …

ssm+java车辆售后维护系统 springboot汽车保养养护管理系统+jsp

以前汽车维修人员只是在汽车运输行业中从事后勤保障工作,随着我国经济的发展,汽车维修行业已经从原来的从属部门发展成了如今的功能齐备的独立企业。这种结构的转变,给私营汽修企业和个体汽修企业的发展带来了契机,私营企业和个体维修企业的加入也带动了整个汽修行业的整体水平…

[c++]—string类___深度学习string标准库成员函数与非成员函数

要相信别人能做出来自己一定可以做出来&#xff0c;只不过是时间没到而已 目录 &#x1f6a9;string类对象capacity操作 &#x1f4bb;reserve()保留 &#x1f4bb;resize() &#x1f6a9;string类对象元素访问操作 &#x1f4bb;operator[]和at() &#x1f4bb;operator…

Kubernetes 安全最佳实践:保护您的秘密

Kubernetes 是一个可用于微服务的开源容器编排平台。当我们想要部署容器化应用程序、自动化管理和扩展应用程序时&#xff0c;Kubernetes 非常有用。 在容器中运行单个微服务而不是在同一虚拟机中运行多个进程几乎总是更安全。每当我们在 Kubernetes 中启动任何 pod 时&#x…

「黄钊的AI日报·第二季」早鸟票,最后48小时~

每天5条AI内容点&#xff1a;不是新闻汇总&#xff0c;而是站在11年AI产品经理的视角&#xff0c;将原AI信息中的干货认知&#xff0c;提炼成我自己的文字、展示“what I see”。 做社群“AI产品经理大本营”6年以来&#xff0c;我都是在非常用心的输出AI干货&#xff1b;这份“…

vue3随机生成8位字母+数字

// 随机生成8位字母数字 export const autoPassword: any () > {// console.log("自动生成");//可获取的字符串const chars ABCDEFGHIJKLMNOPQRSTUVWSYZabcdefghijklmnopqrstuvwsyz0123456789;const list [];//通过随机获取八个字符串的索引下标for (let i 0;…

力扣11题 盛最多水的容器 双指针算法

11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明 你不能倾斜容器. 示…

【开源】基于Vue.js的超市账单管理系统的设计和实现

项目编号&#xff1a; S 032 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S032&#xff0c;文末获取源码。} 项目编号&#xff1a;S032&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 总体设计3.2 前端设计3…

操作系统进程与线程篇

目录 一、进程 1.1、进程状态 1.2、进程的控制结构 1.3、进程的控制 1.4、进程的上下文切换 二、线程 2.1.线程是什么 2.2、线程与进程的比较 2.3、线程的上下文切换 2.4、线程的实现 2.5、轻量级线程 三、进程间的通信方式 3.1、管道 3.2、消息队列 3.3、共享内…

Linux--系统结构与操作系统

文章目录 冯诺依曼体系结构为什么要有内存&#xff1f;场景一 操作系统何为管理&#xff1f; 冯诺依曼体系结构 冯诺依曼体系结构是计算机体系结构的基本原理之一。它将程序和数据都以二进制形式存储&#xff0c;以相同的方式处理和存取。 上图是冯诺依曼体系结构的五大组成部…

Neo4j 数据库管理 数据备份与恢复(头歌)

文章目录 第1关&#xff1a;数据备份与恢复任务描述相关知识数据备份数据导入 编程要求测试说明答案测试前准备Cypher 代码数据备份与导入 第1关&#xff1a;数据备份与恢复 任务描述 本关任务&#xff1a;熟练掌握数据备份与恢复。 相关知识 为了完成本关任务&#xff0c;…

Jvm常见问题

1. 为什么用元空间替换永久代 避免OOM异常&#xff1a;永久代中存放了很多JVM需要的类信息&#xff0c;这些数据大多数是不会被清理的&#xff0c;所以Full GC往往无法回收多少空间。但在元空间模型中&#xff0c;由于字符串常量池已移至堆外&#xff0c;且元空间的大小不受JV…

Elasticsearch:使用 ILM 示例运行降采样 (downsampling)

如果你对降采样还不是很熟的话&#xff0c;请阅读之前的文章 “Elasticsearch&#xff1a;对时间序列数据流进行降采样&#xff08;downsampling)”。这是一个简化的示例&#xff0c;可让你快速了解降采样如何作为 ILM 策略的一部分来减少一组采样指标的存储大小。 该示例使用典…

LeetCode | 二叉树的最大深度

LeetCode | 二叉树的最大深度 OJ链接 这里需要注意的一点是每次有返回值&#xff0c;需要定义变量来保存上一次的值最后取最高的一方加1 int maxDepth(struct TreeNode* root) {if(root NULL)return NULL;int left maxDepth(root->left);int right maxDepth(root->r…

C语言中一些有关字符串的常见函数的使用及模拟实现(1)

在编程的过程中&#xff0c;我们经常要处理字符和字符串&#xff0c;为了⽅便操作字符和字符串&#xff0c;C语⾔标准库中提供了 ⼀系列库函数&#xff0c;接下来我们就学习⼀下这些函数。 文章目录 strlen函数的使用及模拟实现strcmp函数的使用及模拟实现strcpy函数的使用及代…

《C++PrimerPlus》第9章 内存模型和名称空间

9.1 单独编译 Visual Studio中新建头文件和源代码 通过解决方案资源管理器&#xff0c;如图所示&#xff1a; 分成三部分的程序&#xff08;直角坐标转换为极坐标&#xff09; 头文件coordin.h #ifndef __COORDIN_H__ // 如果没有被定义过 #define __COORDIN_H__struct pola…

阅读文献总结2023

阅读文献基于卷积神经网络多源融合的网络安全态势感知模型 阅读文献 基于卷积神经网络多源融合的网络安全态势感知模型 题目基于卷积神经网络多源融合的网络安全态势感知模型文章信息&#xff1a;年份2023发文单位山西财经大学收录刊会计算机科学 &#xff08;北大核心&#…