【Python从入门到进阶】5、变量的定义及数据类型

news2024/11/27 6:33:58

接上篇《4、pycharm的安装及使用》
上一篇我们学习了python编程工具pycharm的安装及基本使用。后续篇章我们正式来学习Python语言的语法和特性,本篇我们主要学习Python变量的定义及数据类型。

一、注释

1、注释介绍

在工作编码的过程中,如果一段代码的逻辑比较复杂,不是特别容易理解,可以适当的添加注释(相当于代码的“说明书”),以辅助自己或者其他编码人员解读代码。而解释器在解析变成语言时,不会对注释进行解释执行,会将其忽略。

这里我们实践一下Python注释,首先在原来的“Python基础”上,新建一个名为“python_注释”的Python文件,作为我们的测试代码文件:

2、注释分类

在Python中支持单行注释和多行注释

(1)单行注释

以#开头,#右边的所有东西都当做说明,而不是真正要执行的程序,起辅助说明作用。如:

# #开头右边的都是注释,解释器会忽略注释
print('hello world') #我的作用是在控制台输出hello world

我们运行上面的代码,解释器只会执行非注释区域的代码:

(2)多行注释

以'''开始,并以'''结束,我们称之为多行注释。如:

二、变量

如果我们后面想要使用Python实现爬虫抓取的效果,去从某些购物网站上抓取一些货物的数据,例如下面的西装外套,列表中的图片、价格、商品名称、简介,这些信息我们都需要放在“变量”中进行存储,这是“变量”这个东西的重要应用场景之一:

下面我们实践一下Python变量,首先在原来的“Python基础”上,新建一个名为“python_变量”的Python文件,作为我们的测试代码文件:

1、变量的定义

思考下面的代码有什么问题?

print('今天天气不好,是个下雨天')
print('今天天气不好,是个下雨天')
print('今天天气不好,是个下雨天')
print('今天天气不好,是个下雨天')
print('今天天气不好,是个下雨天')
print('今天天气不好,是个下雨天')

在不使用变量的情况下,打印六次“今天天气不好,是个下雨天”,需要反复复制粘贴打印的内容。如果需要将内容变为“今天天气很好,是个晴天”的情况,需要修改六次代码。

对于重复使用,并且经常需要修改的数据,可以定义为变量,来提高编程效率。
定义变量的语法为:变量名=变量值。(这里的=作用是赋值。)
定义变量后可以使用变量名来访问变量值。例如上面的代码可以修改为:

# 定义一个变量表示这个字符串,如果有需要修改的内容,只需修改变量对应的值即可
weather = '今天天气不好,是个下雨天' 
print(weather) # 注意,变量名不需要用引号包裹
print(weather)
print(weather)
print(weather)
print(weather)
print(weather)

运行结果:

我们将weather修改为“今天天气很好,是个晴天”:
weather = '今天天气很好,是个晴天'
运行结果:

可以看到变量是非常实用且方便的,是编程中十分重要的内容。

说明:
● 变量即是可以变化的量,可以随时进行修改。
● 程序就是用来处理数据的,而变量就是用来存储数据的。

2、变量的类型

上面我们演示了带引号的字符串的信息变量,回到我们之前提到的爬虫抓取购物网站的数据,那么像“价格”这样的属性,是一个数字的概念,未来可能用于计算的,或者需要保持精度的,就不一定用带引号的字符串来表示了,可能需要使用专门定义数字的形式的类型进行存储,这里就提到了变量的类型这个概念了:

程序中,在Python里为了应对不同的业务需求,也把数据分为不同的类型。
如下图所示(Python3中六大标准数据类型):

注:还有一个long类型,是Python2中的元素,这里不再展开说。

下面我们实践一下Python变量,首先在原来的“Python基础”上,新建一个名为“python_变量类型”的Python文件,作为我们的测试代码文件:

(1)Number数字类型

首先我们先来编写测试Number数字类型的变量:

# 数据类型
# Number 数值
#    int
money = 5000  # python变量前不需要像Java一样添加诸如int的修饰
#    float
money1 = 1.2
print(f'学费为{money}元,苹果为{money1}元/斤')

注:在Python中使用f-strings打印变量是最常用的方法,在此方法中,在字符串的左引号之前放置一个“f”。大括号{}放置在要打印的变量名称周围。当执行代码并显示字符串时,Python会用它们的值替换这些变量。
这样的字符串称为f字符串。Python还可以使用“.upper”或“.title”等方法来格式化这些字符串。
这些f字符串仅在Python3.6及以上引入。如果您使用的Python版本早于该版本,则必须使用“format()”方法。
效果:

(2)bool布尔类型

我们来编写测试bool布尔类型的变量:

# bool   布尔
# 多用于流程控制语句,或类似“性别”的变量
sex = True # 男 True
sex1 = False # 女 False
print(f'徐志胜是{"男" if sex==True else "女"}的,李雪琴是{"男" if sex1==True else "女"}的')

注:这里面用到了python的三目运算符,Python语言不像Java、JavaScript等这些语言有这样的三目运算:b ? x : y 。但是Python也有自己的三目运算符:
条件为真时的结果 if 判段的条件 else 条件为假时的结果
即:Python可以通过if语句来实现三目运算符的功能,因此可以把这种if语句当做三目运算符。
效果:

(3)String字符串类型

我们来编写测试string字符串类型的变量:

# string    字符串
# 字符串使用的是单引号,或者双引号,不允许一双一单
s = '远方传来风笛'
s1 = "远方传来第二声风笛"
# 单引号和双引号可以进行嵌套
s2 = '"嘿嘿嘿"'
s3 = "'哈哈哈'"
# 不允许单引号套单引号、双引号套双引号
# 长字符串(允许换行)可以使用 ''' ''' 包裹
s4 = ''' 春晓 
【作者】孟浩然 【朝代】唐
春眠不觉晓,处处闻啼鸟。
夜来风雨声,花落知多少。 '''
print(s+'\n'+s1+'\n'+s2+'\n'+s3+'\n'+s4)

效果:

注:在python中换行和回车为“\r”和“\n”。

上面三种是Python的基本数据类型,下面的几种类型,是在基本类型的基础上,扩展出的高级数据类型。

(4)List列表

我们来编写测试List字符串类型的变量:

# list    列表
# 应用场景:当获取到了很多数据的时候,可以将其存储到列表中,使用列表来访问
name_list = ['周杰伦','王力宏','陶喆','林俊杰']
list2 = [1, 2, 3, 4, 5]
list3 = ["a", "b", 100, 200]
print(name_list)
print(list2[0],list2[-1]) # ,逗号在python中默认为空格
print(list3[2:4])

效果:

Python包含以下处理list的函数:

list数据类型包含以下方法:

这些函数及方法,我们后续在数据类型高级中进行详细讲解。
Python列表脚本操作符:列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。如下所示:

(4)Tuple元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
我们来编写测试Tuple元祖类型的变量:

# tuple   元组
age_tuple = (18,19,23,28)
tuple2 = (55,)
# 元组中的元素值是不允许修改、删除的,以下修改元组元素操作是非法的:
# age_tuple[0] = 17
# 但是元组可以进行连接组合
tuple3 = age_tuple + tuple2
print(age_tuple)
print(tuple2[0])
print(tuple3)

效果:

Python包含以下处理tuple的函数:

(5)set集合

Python中的集合,和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的,互不相同。
从形式上看,和字典类似,Python 集合会将所有元素放在一对大括号 {} 中,相邻元素之间用“,”分隔,如下所示:
{element1,element2,...,elementn}
其中,elementn 表示集合中的元素,个数没有限制。
我们来编写测试Set集合类型的变量:

# set     集合
set = {1,'c',1,(1,2,3),'c'}
print(set)
# 由于集合中的元素是无序的,因此无法向列表那样使用下标访问元素。
# Python 中,访问集合元素最常用的方法是使用循环结构,将集合中的数据逐一读取出来。
for ele in set:print(ele,end=' ')

注:由于目前尚未学习循环结构,for循环这里只需初步了解,后续会深入讲解。

效果:

(5)Dict字典

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
我们来编写测试Dict集合类型的变量:

# dict    字典
tinydict = {'a': 1, 'b': 2, 'b': '3'}
print(tinydict)
print(tinydict['b'])
studentDict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print("studentDict['Name']: ", studentDict['Name'])
print("studentDict['Age']: ", studentDict['Age'])
# 可以修改value和新增k-v键值对
studentDict['Age'] = 8 # 更新
studentDict['School'] = "第一附小" # 添加
print(f"修改后:{studentDict}")

效果:

Python包含以下处理dict的函数:

dict数据类型包含以下方法:

这些函数及方法,我们后续在数据类型高级中进行详细讲解。

以上就是Python变量的定义以及数据类型。下一篇我们继续讲解查看数据类型以及变量命名规范的相关内容。

参考:尚硅谷Python爬虫教程小白零基础速通教学视频

转载请注明出处:https://blog.csdn.net/acmman/article/details/128769986

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

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

相关文章

(深度学习快速入门)第三章第三节4:深度学习必备组件之TensorBoard和标准化技术

文章目录一:TensorBoard(1)TensorBoard介绍(2)Pytorch安装TensorBoard(3)TensorBoard使用(4)服务器tensorboard本地显示(5)AutoDL等算力平台tenso…

07技术太卷我学APEX-动态菜单+URL传参数给页面

07技术太卷我学APEX-动态菜单URL传参数给页面 0 应用场景 《技术太卷我学APEX》收集的项目越来越多,我想把【类】【子类】加到导航菜单栏,点击不同的分类菜单栏,对列表进行过滤,也可以全部浏览,如下图: …

JAVA SE复习(第1章 Java概述)

本文笔记来自硅谷柴林燕老师的笔记 只为自己看笔记方便使用 不做他用 目录 第1章 Java概述 1.1 Java语言发展历史(记关键点) 1.2 Java语言特点(后面需要关注和体会) 1.3 Java语言跨平台原理(理解) 1…

4. 网络编程之TCP编程

1. 《计算机网络编程》 我们接触网络编程,肯定是要对网络编程的一些专业术语及基本理论知识是要有所认知的。python网络编程无非是在这些基础理论知识之上给我们提供了一些方便实用的网络库来供我们使用。尽管做了非常底层的封装,并且给我们暴露了上层的…

java IO流之缓冲流详解

缓冲流概述 缓冲流也称为高效流或者高级流。之前我们学习的字节流、字符流可以成为基本流。 作用:缓冲流自带缓冲区、可以提高基本字节流、字符流读写数据的性能。 分类: BufferedInputStream -->字节缓冲输入流 BufferedOutputStream–>字节缓冲输…

ch1_1计算机系统概论

1. 内容安排 1.1 概论 1.2 计算机系统的硬件结构 存储器,I/O 输入与输出;系统总线;CPU 1.3 第三篇 CPU 中央处理器中,所包含的内容: ALU, CUCPU 内部互连寄存器 1.4 CU CU : control uni…

最新虚幻5引擎(UE5)游戏性能的影响详解

Unreal Engine 5 是由 Unreal Engine 公司开发的一款游戏引擎。5 代表引擎的主要版本号。它专为创建多人在线游戏、手机游戏、高端游戏和虚幻应用程序而设计。从图中可以看出,随着场景复杂度的增加,UE5的内存占用会逐渐增加。当然,这并不意味…

Redis简介、数据类型和命令

1 Redis 简介Redis 是一个高性能的 key/value 数据库。它是完全开源免费的,并且遵守 BSD 协议。1.1 Redis 特点不仅支持 key/value 类型的数据,也支持 list,hash,set,zset 等等数据结构。支持持久化,可以把内存数据保存到磁盘上,重…

高并发异步多线程处理例子

用户请求流程 问题点 tomcat 线程资源占满,由于tomcat线程资源有限,每个请求都会经由tomcat线程处理,阻塞至web层处理完才能回收再利用。web层分发至后端服务可能会扩大几倍甚至数百倍的,譬如用户发起请求1w/s,到后端…

JavaEE10-Spring Boot配置文件

目录 1.配置文件作用 2.配置文件的格式 为配置文件安装提示插件 2.1. .properties(旧版,默认的) 2.1.1.基本语法 PS:配置文件中使用"#"来添加注释信息,2种添加方式: 2.1.2.缺点分析 2.2. .yml&#…

阿里“云开发“小程序(uniCloud)

博主ps: 网上资料少的可怜,哎,腾讯云涨价了,论服务器,我肯定选的阿里,再着你们对比下uniCloud的报价就知道了,如果有钱就另当别论了。 所以这片博文,博主试过之后,先抛出…

Git速成指南

文章目录版本管理工具概念版本管理工具介绍版本管理发展简史SVN(SubVersion)GitGit工作流程图Git安装基本配置为常用指令配置别名(可选)解决GitBash乱码问题Git常用命令获取本地仓库基础操作指令查看修改的状态(status)添加工作区…

[翻译]PostgreSQL中的WAL压缩以及版本15中的改进

[翻译]PostgreSQL中的WAL压缩以及版本15中的改进从以开始就一直在尝试对WAL进行不同级别的压缩。自2016年以来内置功能(wal_compression)就一直存在,几乎所有备份工具都会在传递到备机前对WAL进行压缩。但现在是时候再看看内置的wal_compress…

呦~,这不 SVG 映射反爬么,这你都会?厉害厉害 | 案例 25

在正式学习本篇博客前,先要了解一下什么是 SVG(Scalable Vector Graphics),它是一种矢量图形格式,可以用来在网页上创建可伸缩的图形。 使用 SVG 技术实现反爬虫的方法有以下几种: 验证码:使用…

imx6ull Linux使用设备树配置LED

我们基于寄存器的方式已经编写了LED驱动,实现点亮/熄灭LED,但是你有没有发现一个问题,就是假设LED修改了一个GPIO,那么需要对应的修改寄存器代码,非常繁琐,而且随着改板次数增加,那么会带来一个…

从零开始的数模(五)插值与拟合

目录 一、概念 二、 插值 2.1方法 2.2MATLAB实现 例题1 ​编辑例题2 2.3python实现 2.3.1例题一的python解法 2.3.2二维网格节点插值 例题四 三、拟合篇: 3.1MATLAB实现 3.2python实现 一、概念 二、 插值 2.1方法 2.2MATLAB实现 在MATLAB中提供了一些…

带滤波器的PID控制仿真-2(M语言)

被控对象为三阶传递函数:低通滤波器为:采样时间为1ms,噪声信号加在对象的输出端。分三种情况进行:M1 时,为未加噪声信号;M2时,为加噪声信号未加滤波;M3时,为加噪声信号加滤波。阶跃响应结果如图1&#xff5…

【论文精读】KD-MVS

今天读的是发表在ECCV2022上的自监督MVS文章,作者来自于旷视科技和清华大学。 文章链接:arxiv 代码链接:https://github.com/megvii-research/KD-MVS 目录Abstract1. Introduction2. Related work3. Methodology3.1 Self-supervised Teacher …

51单片机七人多数表决器仿真设计( proteus仿真+程序+报告+讲解视频)

51单片机七人多数表决器仿真设计( proteus仿真程序报告讲解视频) 仿真图proteus 7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0033 51单片机七人多数表决器仿真设计视频讲解1.主要功能:2.仿真3.…

Java:Mybatis的使用

一、Mybatis的概述 MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发。 MyBatis中文官网:https://mybatis.org/mybatis-3/zh/getting-started.html 二、Mybatis快速入门 1、创建user表,添加数据 create database mybatis; use mybati…