Python从0到100(三):Python中的变量介绍

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能相关知识,成为学习学习和学业的先行者!
欢迎大家订阅专栏:零基础学Python:Python从0到100最新最全教程!

在这里插入图片描述

程序是指令的集合写程序就是用指令控制计算机做我们想让它做的事情。那么,为什么要用Python语言来写程序呢?因为Python语言简单优雅,相比C、C++、Java这样的编程语言,Python对初学者更加友好

一、一些计算机常识

在开始系统的学习编程之前,我们先来科普一些计算机的基础知识。计算机的硬件系统通常由五大部件构成,包括:运算器控制器存储器输入设备输出设备。其中,运算器和控制器放在一起就是我们常说的中央处理器,它的功能是执行各种运算和控制指令。刚才我们提到过程序是指令的集合,写程序就是将一系列的指令按照某种方式组织到一起,然后通过这些指令去控制计算机做我们想让它做的事情。目前,我们使用的计算机基本都是“冯·诺依曼体系结构”的计算机,这种计算机有两个关键点:一是要将存储设备与中央处理器分开;二是将数据以二进制方式编码

二进制是一种“逢二进一”的计数法,跟我们人类使用的“逢十进一”的计数法本质是一样的。人类因为有十根手指所以使用了十进制,因为在计数时十根手指用完之后就只能用进位的方式来表示更大的数值。当然凡事都有例外,玛雅人可能是因为长年光着脚的原因,把脚趾头也都用上了,于是他们使用了二十进制的计数法。在这种计数法的指导下,玛雅人的历法就与我们平常使用的历法并不相同。按照玛雅人的历法,2012年是上一个所谓的“太阳纪”的最后一年,而2013年则是新的“太阳纪”的开始,后来这件事情被以讹传讹的方式误传为”2012年是玛雅人预言的世界末日“的荒诞说法。今天很多人都在猜测,玛雅文明之所以发展缓慢跟使用了二十进制是有关系的。对于计算机来说,二进制在物理器件上最容易实现的,因为可以用高电压表示1,用低电压表示0。不是所有写程序的人都需要知道十进制与二进制如何转换,大多数时候我们即便不了解这些知识也能写出程序,但是我们必须要知道计算机是使用二进制计数的,不管什么数据到了计算机内存中都是以二进制形式存在的

二、变量和类型

要想在计算机内存中保存数据,首先就得说一说变量这个概念。在编程语言中,变量是数据的载体,简单的说就是一块用来保存数据的内存空间,变量的值可以被读取和修改,这是所有计算和控制的基础。计算机能处理的数据有很多种类型,最常见的就是数值,除了数值之外还有文本、图形、音频、视频等各种各样的数据。虽然数据在计算机中都是以二进制形态存在的,但是我们可以用不同类型的变量来表示数据类型的差异。Python中的数据类型很多,而且也允许我们自定义新的数据类型(这一点在后面会讲到),这里我们需要先了解几种常用的数据类型。

  • 整型(int):Python中可以处理任意大小的整数,而且支持二进制(如0b100,换算成十进制是4)、八进制(如0o100,换算成十进制是64)、十进制(100)和十六进制(0x100,换算成十进制是256)的表示法。
  • 浮点型(float):浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2)。
  • 字符串型(str):字符串是以单引号或双引号括起来的任意文本,比如'hello'"hello"
  • 布尔型(bool):布尔值只有TrueFalse两种值,要么是True,要么是False
a = 5        # a是整数类型
b = 'Hello'  # b是字符串类型
c = 3.14     # c是浮点数类型
d = True     # d是布尔类型
print(a, b, c, d)

三、变量命名

对于每个变量我们需要给它取一个名字,就如同我们每个人都有自己的名字一样。在Python中,变量命名需要遵循以下这些规则,这些规则又分为必须遵守的硬性规则和建议遵守的非硬性规则。

  • 硬性规则:
    • 规则1:变量名由字母、数字和下划线构成,数字不能开头。需要说明的是,这里说的字母指的是Unicode字符,Unicode称为万国码,囊括了世界上大部分的文字系统,这也就意味着中文、日文、希腊字母等都可以作为变量名中的字符,但是像!@#这些特殊字符是不能出现在变量名中的,而且我们强烈建议大家尽可能使用英文字母
    • 规则2:大小写敏感,简单的说就是大写的A和小写的a是两个不同的变量。
    • 规则3:变量名不要跟Python语言的关键字(有特殊含义的单词,后面会讲到)和保留字(如已有的函数、模块等的名字)发生重名的冲突
  • 非硬性规则:
    • 规则1:变量名通常使用小写英文字母,多个单词用下划线进行连接。
    • 规则2:受保护的变量用单个下划线开头。
    • 规则3:私有的变量用两个下划线开头。

规则2和规则3大家暂时不用理解,后面自然会明白的。当然,作为一个专业的程序员,给变量(事实上应该是所有的标识符)命名时做到见名知意也非常重要。

四、变量的使用

下面通过例子来说明变量的类型和变量的使用。

a = 45          # 变量a保存了45
b = 12          # 变量b保存了12
print(a + b)    # 57
print(a - b)    # 33
print(a * b)    # 540
print(a / b)    # 3.75

在这里插入图片描述

在Python中可以使用type函数对变量的类型进行检查。程序设计中函数的概念跟数学上函数的概念基本一致,数学上的函数相信大家并不陌生,它包括了函数名、自变量和因变量。如果暂时不理解函数这个概念也不要紧,我们会在后续的内容中专门讲解函数的定义和使用。

a = 100
b = 12.345
c = 'hello, world'
d = True
print(type(a))    # <class 'int'>
print(type(b))    # <class 'float'>
print(type(c))    # <class 'str'>
print(type(d))    # <class 'bool'>

在这里插入图片描述

不同类型的变量可以相互转换,这一点可以通过Python的内置函数来实现。

  • int():将一个数值或字符串转换成整数,可以指定进制。
  • float():将一个字符串转换成浮点数。
  • str():将指定的对象转换成字符串形式,可以指定编码。
  • chr():将整数转换成该编码对应的字符串(一个字符)。
  • ord():将字符串(一个字符)转换成对应的编码(整数)。

转换

a = 100
b = 12.345
c = 'hello, world'
d = True
# 整数转成浮点数
print(float(a))    # 100.0
# 浮点型转成字符串 (输出字符串时不会看到引号哟)
print(str(b))      # 12.345
# 字符串转成布尔型 (有内容的字符串都会变成True)
print(bool(c))     # True
# 布尔型转成整数 (True会转成1,False会转成0)
print(int(d))      # 1
# 将整数变成对应的字符 (97刚好对应字符表中的字母a)
print(chr(97))     # a
# 将字符转成整数 (Python中字符和字符串表示法相同)
print(ord('a'))    # 97

在这里插入图片描述

变量的作用域

在Python中,变量的作用域是指变量可以被访问的范围。Python中不同的作用域:
全局作用域(global scope):定义在模块层次的变量或函数,可以在模块中的任何地方被访问。
局部作用域(local scope):定义在函数或类方法中的变量,只能在函数或类方法中被访问。
在Python中,变量的作用域是由它所在的代码块(block)决定的。每个代码块都有它自己的作用域,当Python解释器在执行代码块时,会创建一个新的作用域,当代码块执行完毕时,这个作用域就被销毁了。

特殊的变量

Python 中有一些特殊的变量,它们有着特定的作用,包括:

name:这是一个特殊的变量,它会在每个Python文件中自动创建。当文件被直接运行时,__name__的值为"main",当文件被作为模块导入时,__name__的值为文件名。
doc:这个变量用于存储文档字符串,它可以通过在函数、类或模块的第一行编写一个字符串来定义。文档字符串可以通过在Python中使用help()函数来访问。
file:这个变量包含当前模块的文件名(包括路径),如果模块是在内存中创建的,则该变量的值为None。
builtins:这个变量包含Python内置的函数和变量的名称空间。可以通过访问该变量来获得Python内置函数的列表。
package:这个变量包含当前模块的包名,如果模块不在包中,则该变量的值为None。

删除变量

在Python中删除变量可以使用del关键字。del可以删除单个变量、删除多个变量。

x = 5
print(x)
del x
print(x)

在这里插入图片描述
以上案例中,我们先定义了变量x,并打印x,然后将变量x删除,删除后则无法访问。
使用del删除的变量或元素会被彻底删除,无法再次访问或使用。如果尝试访问已删除的变量或元素,Python会抛出NameError或KeyError异常。因此,在删除变量或元素之前,请确保它们不再需要使用。

在Python程序中,我们可以使用变量来保存数据变量有不同的类型变量可以做运算(下一课会有详细的讲解),也可以通过内置函数来转换变量类型
总之,Python变量是一个基本的概念,用于存储数据。Python变量的命名需要遵循一定的规则,可以使用赋值语句创建变量,支持多个变量指向同一个对象,支持变量类型的动态转换。在删除变量或元素之前,请确保它们不再需要使用。

文末免费送书:Python算法从菜鸟到达人

本书以 Python 语言为平台,分四个部分介绍了算法的基本概念、五种经典的算法思想、重要的数据结构以及实践中常用的几种算法技术。除第 1 章和第 2 章外,书中每章内容都包括了基本概念、实现方式、具体应用以及达人修炼真题。每一种算法思想中的达人修炼真题都提供了相应的源代码,可供读者运行,从而达到理论与实践并重的目的。
本书从算法基本分析到算法基本思想,再到具体应用及大量真题,内容全面,条理清楚,语言通俗。本书对计算机及相关专业本科生及研究生的面试、笔试将有所帮助;此外,计算机科学相关领域的工程师以及爱好者也可以将本书作为技术参考书籍,在需要时可查找所需算法的相关内容并从中得到启示;当然,对计算机科学感兴趣的高中生以及 IT 领域项目经理也可以阅读本书,从而开启算法世界的大门。
在这里插入图片描述

抽奖方式

抽奖方式: 评论区随机抽取6位小伙伴免费送出!
参与方式: 关注博主、点赞、收藏、评论区评论“人生苦短,我用Python!”(切记要点赞+收藏,否则抽奖无效,每个人最多评论三次!)
活动截止时间: 2024-3-18 20:00:00
京东: 购买链接传送门

😄😄😄名单公布方式: 下期活动开始将在评论区和私信一并公布,中奖者请三天内提供信息😄😄😄

随着大数据处理、人工智能等领域的飞速发展和计算机性能的飞跃性提升,无论在学术 界还是产业界,计算机领域的前沿概念与技术都逐步深入到思维层面,数学在这其中发挥的 作用越来越重要,越来越多的高深数学理论被运用到实际中来,有效地解决了许多实际问题, 例如分析几何、小波分析、数值计算等。这一切让人们逐步意识到计算机程序设计依赖的就 是数学知识和算法思想。在软件工程师动手编程完成某一任务之前,先要通过一系列的分析 过程来确定解决该任务的方法。首先,分析待求解任务/问题,将其抽象为某种数学模型;然 后确定求解该问题时的资源限制(包括时间资源、电力资源、存储资源、计算资源、容错成 本等);最后在已知信息的基础上,选择已有的算法或提出新的算法,在满足资源限制的情况 下解决问题。因此,可以说一个不懂算法的“菜鸟”程序员是无法独立、自主地解决具体工 程问题的,也很难写出逻辑严密、简化的高质量代码。
一名优秀的计算机科学领域的工程师或科学家一定对经典算法思想有深入的理解并能够 将这些算法灵活应用于解决实际问题的过程中。目前,很多顶尖 IT 公司都会考查应聘者的算 法功底和逻辑思维能力,因为算法功底深厚的应聘者,往往可以使项目的设计模式格外优化, 程序逻辑也更为严密清晰。IT 公司的顶尖专家和“达人”都对算法有很深的造诣,同时,项 目经理也必须具备超强的逻辑思维能力。
对于所有即将迈入职场的计算机科学相关领域的学生而言,应该都希望自己以后能够在 职场中逐渐成长为所在细分领域的优秀人才,具备出色完成各类任务、解决各类问题的能力, 算法可以说是解决这些问题的关键,而程序语言只是一个外壳。算法的功底与一个计算机科 学工程师的水平上限关系密切。所以,如果你想从事计算机科学相关工作,那么就应当认真 地培养自己的逻辑思维,从而提高算法功底!
本书的所有作者以及团队均在计算机科学领域有着多年的算法学习经历和IT领域工作经 验,对算法有着较为深入的开发与实践。本书是在所有作者(包括未出现在作者名单中的幕 后奉献者)钻研算法的基础上,经过长期的应用总结而完成的,并用言简意赅的语言将这些 算法问题的答案展现出来。
本书特色
当前,已出版的算法书籍不计其数,从经典的《算法导论》到针对具体的细分领域(例 Python 算法从菜鸟到达人 IV 如文本处理、神经网络等)相关算法的书籍,每一本都有自己的侧重点与特色。本书的特色 主要体现在以下几方面:
1)强调算法基础,理论与应用并重。
2)包含大量实际应用中的算法真题。
3)本书以 Python 语言实现。虽然 Python 中没有指针的概念(只有引用),为了便于理解, 书中很多地方还是使用了指针,可以认为其等价于引用。
4)本书配有核心知识点讲解视频(视频制作由刘玖樽和田思怡完成),讲解内容和程序 代码经多次校审和验证(由李海洋、刘玖樽、熊良成和田思怡完成)。
读者对象
1)计算机领域程序员及工程师。
2)计算机科学相关领域本科生及研究生。
3)其他算法爱好者(对算法感兴趣的高中生、IT 领域产品经理等)。
我们的目标是将本书打造成广大IT从业者和程序开发人员学习和提升算法能力的高效学 习材料,同时也可以作为科研院所及企业的工程师参考的一本技术性书籍,不论你是“菜鸟” 还是“达人”,阅读本书都将受益匪浅,可以有效提升解决实际编程问题的能力。
本书内容
本书共 16 章,分为以下四大部分。
第一部分(算法基础,第 1、2 章) 这一部分将引导读者理清算法在计算机系统中的作用以及伪代码写法的约定等,不仅给 出了算法的定义,简单地介绍了算法的表达方式,同时引导读者思考算法的设计和分析问题, 本书后面的内容都是建立在这些基础之上的。
第二部分(经典算法思想,第 3~7 章) 算法设计有很多思想,但是归纳起来,算法设计中有五种思想使用最为广泛,它们分别 是递归与分治法、动态规划算法、贪心算法、回溯法与分支界限法。这一部分逐一介绍了这 些经典算法思想的具体思路以及利用这些算法思想可以解决的具体问题。
第三部分(重要数据结构,第 8~13 章) 谈到算法的时候,数据结构这个词大概率也不会缺席。数据结构也是所有计算机专业学 生必修的一门课程。这一部分主要讲解了一些重要数据结构的相关知识以及应用范围。对于 数据结构基础较好的读者,可以跳过本部分,并不会影响阅读本书其余章节。
第四部分(常用算法,第 14~16 章) 这一部分重点介绍了日常学习或工作中最常用的一些算法,包括常用的排序算法、查找 算法以及字符串匹配算法。这些算法并不复杂,但是都有着非常高的使用频率,掌握它们将 快速提升读者对算法的应用和实践能力。

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

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

相关文章

四川易点慧电子商务有限公司抖音小店安全正规

在如今网络购物日益普及的时代&#xff0c;消费者对于购物平台的选择越来越挑剔。四川易点慧电子商务有限公司抖音小店以其安全正规的经营模式&#xff0c;赢得了广大消费者的信赖和好评。本文将为您详细介绍四川易点慧电子商务有限公司抖音小店的优势和特点&#xff0c;让您在…

windows下pytorch的dataloader多进程(num_workers)问题,为何num_workers的值只能为0?

问题背景介绍 本人是windows系统&#xff0c;在使用torch.utils.data.Dataloader加载torchvision中的数据集时&#xff0c;将其中的形参num_workers设置为了大于0的数&#xff0c;然后出现以下错误。 原因 在 Windows 系统下&#xff0c;num_workers 参数在使用 PyTorch 的 t…

内部文档多维保密,如何做好内部文件的保密措施?

在企业的日常运营中&#xff0c;内部文档往往包含了公司的核心战略、财务数据、客户信息等重要内容。一旦这些文件泄露&#xff0c;可能会给企业带来无法估量的损失。 因此&#xff0c;做好内部文件的保密措施显得尤为关键。 这里有一件真实的案例可以参考一下。 某大型制造企…

网红老阳分享的蓝海赚钱项目,这三个真香!

在互联网经济飞速发展的当下&#xff0c;寻找蓝海项目成为了许多创业者和投资者的首要任务。近期&#xff0c;知名网红老阳分享了一些他认为具有巨大潜力的蓝海项目&#xff0c;其中包括RPO人力资源、视频号带货和Temu跨境电商。下面我们将对这三个项目进行详细解析。 老阳分享…

照明灯十大知名品牌排行榜,前十名护眼台灯推荐

孩子们在学习时&#xff0c;良好的光线至关重要&#xff0c;因此&#xff0c;护眼台灯成为了许多家庭的首选。尽管人们对于护眼台灯的使用效果持有不同观点&#xff0c;但我多年来的使用体验证明&#xff0c;护眼台灯在保护视力、减轻眼睛疲劳方面发挥着不可或缺的作用&#xf…

C++ Qt学习——Qt启动流程

目录 1、点击文件&#xff0c;新建文件或项目 2、选择模板为Application&#xff08;Qt&#xff09;&#xff0c;Qt Qwidgets Application,再点击Choose ​编辑 3、给自己的文件起个名字 4、点击下一步 5、点击下一步 6、点击下一步 7、点击下一步 8、点击完成 9、直接…

应用方案 |安防摄像头(IPC)的步进马达及IR-CUT驱动芯片D6212

应用领域 安防摄像头&#xff08;IPC&#xff09;的步进马达及IR-CUT驱动。 02 功能介绍 D6212内置8路带有续流二极管的达林顿驱动管阵列和一个H桥驱动&#xff0c;单芯片即可实现2个步进电机和一个IR-CUT的直接驱动&#xff0c;使得电路应用非常简单。单个达林顿管在输入…

Verovio简介及在Windows10和Ubuntu 22.04上编译过程

Verovio是一个快速、便携、轻量级的开源库&#xff0c;用于将音乐编码倡议(Music Encoding Initiative(MEI))数字乐谱雕刻到SVG图像中。Verovio还包含即时转换器(on-the-fly converters)用于渲染Plaine & Easie Code、Humdrum、Musedata、MusicXML、EsAC和ABC数字乐谱。源代…

【Loss总结】适用与弱监督语义分割中的各类loss

【Loss总结】适用与弱监督语义分割中的各类loss 文章目录 【Loss总结】适用与弱监督语义分割中的各类loss交叉熵损失相对熵&#xff08;KL散度&#xff09;交叉熵 L1 LossL2LossSmoothL1LossDice loss梯度分析语义分割代码 交叉熵损失 交叉熵损失函数(CrossEntropy Loss)&…

大模型优化——重排序模型

检索增强生成(RAG)技术作为自大模型兴起后爆火的方向之一,已经广受研发者们追捧,大型语言模型(LLMs)如GPT系列和LLama系列在自然语言处理领域取得了显著的成功,但它们面临着幻觉、过时知识和不透明、不可追溯的推理过程等挑战。检索增强生成(RAG)通过整合外部数据库的…

VideoDubber时长可控的视频配音方法

本次分享由中国人民大学、微软亚洲研究院联合投稿于AAAI 2023的一篇专门为视频配音任务定制的机器翻译的工作《VideoDubber: Machine Translation with Speech-Aware Length Control for Video Dubbing》。这个工作将电影或电视节目中的原始语音翻译成目标语言。 论文地址&…

【Python】【Matplotlib】解决使用 plt.savefig() 保存的图片出现一片空白的问题

【Python】【Matplotlib】解决使用 plt.savefig() 保存的图片出现一片空白的问题 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#…

Leetcode : 1137. 高度检查器

学校打算为全体学生拍一张年度纪念照。根据要求&#xff0c;学生需要按照 非递减 的高度顺序排成一行。 排序后的高度情况用整数数组 expected 表示&#xff0c;其中 expected[i] 是预计排在这一行中第 i 位的学生的高度&#xff08;下标从 0 开始&#xff09;。 给你一个整数…

CV论文--2024.3.7

1、FAR: Flexible, Accurate and Robust 6DoF Relative Camera Pose Estimation 中文标题&#xff1a;FAR&#xff1a;灵活、准确和稳健的6DoF相机相对姿态估计 简介&#xff1a;在计算机视觉领域&#xff0c;估计图像之间的相对相机姿态一直是一个关键问题。通常&#xff0c;…

php导出excel文件

环境 php7.4hyperf3composer require phpoffice/phpspreadsheet代码 class IndexController extends AbstractController { /*** Inject* var Picture*/private $picture;public function index(){$res_data[]["robot" > 哈哈机器人,"order" > TES…

记录一下C++的学习之旅吧--C++基础

文章目录 前言using namespace std; 使用标准命名空间一、helloworld-输出表示1.1代码1.2 运行结果 二、变量2.1.1 普通变量代码2.1.2 运行结果2.2.1 常量和变量代码2.2.2 运行结果 三、sizeof---统计数据类型所占的内存大小3.1 代码3.2 运行结果 四、小数表示4.2 运行结果 总结…

02- 使用Docker安装RabbitMQ

使用Docker安装RabbitMQ 下载安装镜像 方式一: 启动docker服务,然后在线拉取 # 在线拉取镜像 docker pull rabbitmq:3-management# 使用docker images查看是否已经成功拉取方式二: 从本地加载 ,将RabbitMQ上传到虚拟机中后使用命令加载镜像即可 docker load -i mq.tar启动M…

mabatis 中

手动实现MaBatis底层机制 实现任务阶段一&#x1f34d;完成读取配置文件, 得到数据库连接&#x1f966;分析 代码实现&#x1f966;完成测试 实现任务阶段二&#x1f34d;编写执行器, 输入SQL语句, 完成操作&#x1f966;分析 代码实现&#x1f966;完成测试 实现任务阶段三&…

Redis缓存预热-缓存穿透-缓存雪崩-缓存击穿

什么叫缓存穿透? 模拟一个场景: 前端用户发送请求获取数据,后端首先会在缓存Redis中查询,如果能查到数据,则直接返回.如果缓存中查不到数据,则要去数据库查询,如果数据库有,将数据保存到Redis缓存中并且返回用户数据.如果数据库没有则返回null; 这个缓存穿透的问题就是这个…

使用python将数据输出为图表图片

数据示例&#xff08;数组或其他&#xff09;&#xff1a; hourly_data {00:00: 10,01:00: 15,02:00: 20,03:00: 25,04:00: 30,# 添加更多数据... }示例输出&#xff08;图片&#xff09;&#xff1a; python代码&#xff1a; 下面代码中使用了matplotlib库&#xff0c;如果…