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 章) 这一部分重点介绍了日常学习或工作中最常用的一些算法,包括常用的排序算法、查找 算法以及字符串匹配算法。这些算法并不复杂,但是都有着非常高的使用频率,掌握它们将 快速提升读者对算法的应用和实践能力。

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

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

相关文章

Day6 java 常用API

文章目录 1、Calendar1.1 Calendar日历对象 2、JDK8 之后新增的时间类2.1 LocalDate、LocalTime 、LocalDateTime2.2 ZoneId 、ZoneIdTime2.3 Instant2.4 DateTimeFormatter2.5 Period2.6 Duration 1、Calendar 在了解calendar之前&#xff0c;先用SimpleDateFormat 写一个小例…

Linux快速入门学习-2 Linux安装环境准备

文章目录 Linux发展前景及就业形势Windows操作系统简介硬盘分区简介Linux安装环境准备Linux系统安装图解 Linux发展前景及就业形势 权威部门统计&#xff0c;未来几年内我国软件行业的从业机会十分庞大&#xff0c;中国每年对IT软件人才的需求将达到200万人左右。而对于Linux专…

Docker进阶:深入理解 Dockerfile

Docker进阶&#xff1a;深入理解 Dockerfile 一、Dockerfile 概述二、为什么要学习Dockerfile三、Dockerfile 编写规则四、Dockerfile 中常用的指令1、FROM2、LABEL3、RUN4、CMD5、ENTRYPOINT6、COPY7、ADD8、WORKDIR9、 ENV10、EXPOSE11、VOLUME12、USER13、注释14、ONBUILD 命…

Java面试题之JVM

JVM整体架构 堆 minor gc&#xff1a;回收年轻代的垃圾对象 full GC&#xff1a;回收整个堆的垃圾对象 当full GC也回收不了就会OOM STW运行时会停掉所有用户线程 JVM调优的真正目的就是为了减少STW的次数 为什么会有STW&#xff1a;避免非垃圾对象发生变化&#xff0c;暂…

【深度学习笔记】优化算法——Adam算法

Adam算法 &#x1f3f7;sec_adam 本章我们已经学习了许多有效优化的技术。 在本节讨论之前&#xff0c;我们先详细回顾一下这些技术&#xff1a; 在 :numref:sec_sgd中&#xff0c;我们学习了&#xff1a;随机梯度下降在解决优化问题时比梯度下降更有效。在 :numref:sec_min…

Linux-socket套接字

前言 在当今数字化时代&#xff0c;网络通信作为连接世界的桥梁&#xff0c;成为计算机科学领域中至关重要的一部分。理解网络编程是每一位程序员必备的技能之一&#xff0c;而掌握套接字编程则是深入了解网络通信的关键。本博客将深入讨论套接字编程中的基本概念、常见API以及…

GitOps实践之Argo CD (2)

argocd 【-1】argocd可以解决什么问题? helm 部署是手动的?依赖流水线。而有时候仅仅更新一个小东西,流水线跑好久,CD真的不应该和CI耦合。不同环境的helm配置不同,手动修改问题多,可以用git管理起来,例如分不同环境用目录区分。argocd创建应用可以不通环境部署到不同集…

Langchain-Chatchat本地搭建ChatGLM3模型和提取PDF内容

文章目录 1、软件要求2、安装CUDA2.1、安装gcc2.2、安装CUDA 3、安装Anaconda33.1、下载Anaconda33.2、创建python虚拟环境 4、部署系统4.1、下载源码4.2、安装依赖4.3、下载模型4.4、初始化配置和知识库4.4.1、初始化配置4.4.2、初始化知识库 4.5、运行4.6、运行4.6.1、启动4.…

C语言编译成库文件的要求

keil编译成库文件 在Keil中&#xff0c;将C语言源文件编译成库文件通常需要进行以下步骤&#xff1a; 创建一个新的Keil项目&#xff0c;并将所需的C语言源文件添加到该项目中。 在项目设置中配置编译选项&#xff0c;确保生成的目标文件符合库文件的标准格式。 编译项目&…

基于PHP的餐厅管理系统APP设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 MVC 3 1.2 ThinkPHP 3 1.3 MySQL数据库 3 1.4 uni-app 4 1.5 本章小结 4 2 系统分析 5 2.1 功能需求 5 2.2 用例分析 7 2.3 非功能需求 8 2.4 本章小结 8 3 系统设计 9 3.1 系统总体设计 9 3.2 系统详细设计 10 3.3 本章小…

基于Java+springboot+VUE+redis实现的前后端分类版网上商城项目

基于Java springbootVUEredis实现的前后端分类版网上商城项目 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…

Ajax、Axios、Vue、Element与其案例

目录 一.Ajax 二.Axios 三.Vue 四.Element 五.增删改查案例 一.依赖&#xff1a;数据库&#xff0c;mybatis&#xff0c;servlet&#xff0c;json-对象转换器 二.资源&#xff1a;elementvueaxios 三.pojo 四.mapper.xml与mapper接口 五.service 六.servlet 七.html页…

css flex 布局换行

默认使用display: flex;是不换行的&#xff0c;只需要加上flex-wrap: wrap;就行了&#xff0c;效果图 .app-center {display: flex;flex-wrap: wrap;justify-content:flex-start; } 通过上面我们发现虽然时间换行了&#xff0c;但是每行的边距不一样 加上这个就行了&#xff…

微信小程序-分包

分包 1.什么是分包 分包指的是把一个完整的小程序项目&#xff0c;按照需求划分为不同的子包&#xff0c;在构建时打包成不同的分包&#xff0c;用户在使用时按需进行加载。 2.分包的好处 对小程序进行分包的好处主要有以下两点&#xff1a; 可以优化小程序首次启动的下载时间…

二维码图案样式怎么改?二维码改样式的简单方法

怎么修改二维码图案的样式呢&#xff1f;一般情况下生成的二维码图案大多是黑白的普通样式&#xff0c;那么很多人会为了提高展现效果或者增加辨识度&#xff0c;需要修改二维码的图案样式、添加logo、文字等其他内容&#xff0c;那么面对这样的需求该如何解决呢&#xff1f;下…

docker学习(十四)docker搭建私服

docker私服搭建&#xff0c;配置域名访问&#xff0c;设置访问密码 启动registry docker run -d \-p 5000:5000 \-v /opt/data/registry:/var/lib/registry \registrydocker pull hello-world docker tag hello-world 127.0.0.1:5000/hello-world docker push 127.0.0.1:5000…

SQL中如何添加数据

SQL中如何添加数据 一、SQL中如何添加数据&#xff08;方法汇总&#xff09;二、SQL中如何添加数据&#xff08;方法详细解说&#xff09;1. 使用SQL脚本&#xff08;推荐&#xff09;1.1 在表中插入1.1.1 **第一种形式**1.1.2 **第二种形式**SQL INSERT INTO 语法示例SQL INSE…

Keepalived+LVS构建高可用集群

目录 一、Keepalive基础介绍 1. Keepalive与VRRP 2. VRRP相关技术 3. 工作原理 4. 模块 5. 架构 6. 安装 7. Keepalived 相关文件 7.1 配置组成 7.2 全局配置 7.3 VRRP实例配置&#xff08;lvs调度器&#xff09; 7.4 虚拟服务器与真实服务器配置 二、Keepalived…

IDEA管理Git + Gitee 常用操作

文章目录 IDEA管理Git Gitee 常用操作1.Gitee创建代码仓库1.创建仓库1.点击新建仓库2.完成仓库信息填写3.创建成功4.管理菜单可以修改这个项目的设置 2.设置SSH公钥免密登录基本介绍1.找到.ssh目录2.执行指令 ssh-keygen3.将公钥信息添加到码云账户1.点击设置2.ssh公钥3.复制.…

软件开发服务合同套用模板

一、合作方式 二、合同标的 三、开发进度及软件成果交付 四、开发费用 五、付款结算方式 六、知识产权条款 七、双方的权利和义务 八、验收 九、售后服务支持 十、培训 十一、保密责任 十二、不可抗力 十三、争议的解决 十四、其它事项 软件开发全套资料获取下载…