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

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.mfbz.cn/a/206305.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nginx 配置前端项目添加https

可申请阿里云免费证书 步骤省略… nginx 配置 server {listen 8050; #默认80端口 如果需要所有访问地址都是https 需要注释listen 8443 ssl; #https 访问的端口 &#xff0c;默认443server_name 192.168.128.XX; #域名 或 ip# 增加ssl#填写证书文件…

Informer辅助笔记:data/dataloader.py

以WTH为例 import os import numpy as np import pandas as pdimport torch from torch.utils.data import Dataset, DataLoader # from sklearn.preprocessing import StandardScalerfrom utils.tools import StandardScaler from utils.timefeatures import time_featuresim…

2023_Spark_实验二十三:Kafka的安装与基本操作

Kafka的安装与基本操作 一、前提工作 二、Kafka安装 三、Kafka基本操作 一、前提工作 必须安装了zookeeper 单机可参考&#xff1a;zookeeper单机安装与配置 集群可参考&#xff1a;zookeeper的集群安装 二、Kafka安装 上传kafka_2.11-2.4.1.tgz到/tools目录下 解压安装到…

中台战略思想与架构总结

中台战略思想与架构总结 在2015年年中&#xff0c;马云带领阿里高管&#xff0c;拜访了游戏公司Supercell&#xff0c;以《部落战争》《海岛奇兵》《卡通农场》等游戏知名。 Supercell是一家典型的以小团队模式进行游戏开发的公司&#xff0c;一般来说两个员工&#xff0c;或…

单链表相关经典算法OJ题:移除链表元素

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 题目&#xff1a;移除链表元素 解法一&#xff1a; 解法一的代码实现&#xff1a; 解法二&#xff1a; 解法二代码的实现&#xff1a; 总结 前言 世上有两种耀眼的…

3D模型渲染导致电脑太卡怎么办?

在线工具推荐&#xff1a; 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 1、什么是3D渲染&#xff1f; 3D渲染是指通过计算机图形学技术将三维模型转化为二维图像的过程…

【UGUI】实现背包的常用操作

1. 添加物品 首先&#xff0c;你需要一个包含物品信息的类&#xff0c;比如 InventoryItem&#xff1a; using UnityEngine;[CreateAssetMenu(fileName "NewInventoryItem", menuName "Inventory/Item")] public class InventoryItem : ScriptableObje…

No matching version found for @babel/compat-data@^7.23.5 处理

npm ERR! notarget No matching version found for babel/compat-data^7.23.5 处理 报错信息 npm WARN ERESOLVE overriding peer dependency npm ERR! code ETARGET npm ERR! notarget No matching version found for babel/compat-data^7.23.5. npm ERR! notarget In most …

你好!线性查找【JAVA】

1.初次相识 线性查找也称线性搜索&#xff0c;是一种简单的查找方式&#xff0c;它是按照元素在数据集合中出现的顺序逐个进行比较&#xff0c;直到找到目标元素或查找完整个集合为止。具体实现方式是从集合的第一个元素开始遍历&#xff0c;逐个比较每个元素与目标元素是否相等…

大数据库可视化模版25:大数据可视化展板通用模板

博主介绍&#xff1a;《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者&#xff0c;CSDN博客专家&#xff0c;在线教育专家&#xff0c;CSDN钻石讲师&#xff1b;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff0c;免费 项…

OpenCV中八种不同的目标追踪算法

引言 目标跟踪作为机器学习的一个重要分支&#xff0c;加之其在日常生活、军事行动中的广泛应用&#xff0c;受到极大的关注。在AI潮流中&#xff0c;大家对于深度学习&#xff0c;目标跟踪肯定都会有过接触了解&#xff1a;在GPU上通过大量的数据集训练出自己想使用的垂直场景…

车牌限行_分支结构的C语言实现xdoj7

试题名称 车牌限行 时间限制: 1 秒 内存限制: 256KB 问题描述 问题描述 受雾霾天气影响&#xff0c;某市决定当雾霾指数超过设定值时对车辆进行限行&#xff0c;假设车牌号全为数字&#xff0c;且长度不超过6位&#xff0c;限行规则如下&#xff1a; &#xff08;…

Java8之Stream流的Collectors.toMap Duplicate key问题

1.背景 在项目部署的时候&#xff0c;编译通过&#xff0c;但是一直运行不起来&#xff0c;看到错误日志之后发现&#xff1a; Caused by: java.lang.IllegalStateException: Duplicate key TaxiCarpoolCommonConfig 出错代码&#xff1a; Map<String, TaxiCarpoolCommon…

zabbix分布式监控平台从IPV4切换到IPV6之监控主机切换

现在有一套监控了海量服务器的zabbix分布式监控平台需整体在线从IPV4切换到IPV6&#xff0c;不能影响其原有的定制监控及视图。本文讲解了切换的第一步--监控主机切换。 一、zabbix分布式监控平台平台架构 本套zabbix分布式监控平台是一个多代理服务器分布式部署的典型传统架构…

记录 | onnx-simplifier安装、使用

安装&#xff1a; pip install onnx-simplifier# 若想加速 # [可选] 使用豆瓣源加速 pip install -i https://pypi.douban.com/simple onnx-simplifier# [可选] 使用阿里源加速 pip install -i http://mirrors.aliyun.com/pypi/simple onnx-simplifier使用&#xff1a; pytho…

java实战(四):编写学生信息管理系统页面·

1.要求 编写程序 实现表格的输入和编辑功能。界面如下&#xff1a; 1、用户按插入键后&#xff0c;把学号、姓名和成绩插入到最后一行&#xff0c;序号显示当前的行号。 2、当用户选中表格的某一行时&#xff0c;按删除按钮&#xff0c;则这一行从表格中删除 3、编辑功能&am…

观海微电子---AF、AG、AR 的差别和作用

一、名称解释及原理 1.AF ---- Anti-fingerprint&#xff0c;中文为抗指纹。一般 SiO2AF 材料&#xff08;DON&#xff0c;M4、道康宁 AF 材料&#xff09;&#xff0c;一般采用真空蒸发镀膜法。 原理&#xff1a;AF 防污防指纹玻璃是根据荷叶原理&#xff0c;在玻璃外表面涂制…

预约系统源码解析:打造智能定制化预约服务的技术奇迹

在当今数字化时代&#xff0c;预约系统的重要性日益凸显&#xff0c;而预约系统源码的开放将为各行业带来更加灵活、智能的预约解决方案。本文将深入探讨预约系统源码的技术内幕&#xff0c;为开发者提供实用的代码示例&#xff0c;助力打造智能定制化的预约服务。 技术栈概览…

【brpc学习实践】ParallelChannel的使用与并行请求

概览 ParallelChannel (有时被称为“pchan”)同时访问其包含的sub channel,并合并它们的结果。用户可通过CallMapper修改请求,通过ResponseMerger合并结果。ParallelChannel看起来就像是一个Channel: 支持同步和异步访问。 发起异步操作后可以立刻删除。 可以取消。 支持超…

java学习part25多线程

132-多线程-程序、进程、线程与并行、并发的概念_哔哩哔哩_bilibili 1.概念 2.共享内容 只有线程间能通信&#xff0c;进程之间不共享内容。 3.继承thread的多线程 相当于golang里先写一个线程函数run(),子类对象调用start()相当于go关键字 相当于go run() package thread;/…
最新文章