当前位置: 首页 > news >正文

常量和变量——“Python”

各位CSDN的uu们你们好呀,今天,小雅兰的内容是Python的一些基础语法噢,会讲解一些常量和变量的知识点,那么,现在就让我们进入Python的世界吧


常量和表达式

变量和类型

   变量是什么

   变量的语法

   变量的类型


常量和表达式 

我们可以把 Python 当成一个计算器, 来进行一些算术运算。

print(1 + 2 - 3)print(1 + 2 * 3)print(1 + 2 / 3)

注意:  

  • print 是一个 Python 内置的函数。
  • 可以使用 + - * / ( ) 等运算符进行算术运算,先算乘除,后算加减。
  • 运算符和数字之间,可以没有空格,也可以有多个空格。但是一般习惯上写一个空格(比较美观)。
  •  在Python中,2/3等于0.666666,而不是0!!!
  •  在C语言或者Java中,整数除以整数的结果还是整数,并且会把小数部分直接舍弃

print(1+2/3)   打印出来的结果是1.6666666666666665

667???

在编程中,一般没有“四舍五入”这样的规则

浮点数,IEEE 754标准中,这套规则下,在内存中表示浮点数的时候,可能会存微小的误差 

IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number)),一些特殊数值(无穷(Inf)与非数值(NaN)),以及这些数值的“浮点数运算符”;它也指明了四种数值舍入规则和五种例外状况(包括例外发生的时机与处理方式)。


IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。只有32位模式有强制要求,其他都是选择性的。大部分编程语言都有提供IEEE浮点数格式与算术,但有些将其列为非必需的。例如,IEEE 754问世之前就有的C语言,有包括IEEE算术,但不算作强制要求(C语言的float通常是指IEEE单精确度,而double是指双精确度)。


该标准的全称为IEEE二进制浮点数算术标准(ANSI/IEEE Std 754-1985),又称IEC 60559:1989,微处理器系统的二进制浮点数算术(本来的编号是IEC 559:1989)。后来还有“与基数无关的浮点数”的“IEEE 854-1987标准”,有规定基数为2跟10的状况。最新标准是“ISO/IEC/IEEE FDIS 60559:2010”。

  • 形如 1 + 2 - 3 这样是算式, 在编程语言中称为表达式。
  • 算式的运算结果, 称为表达式的返回值。
  • 其中 1 , 2 , 3 这种称为字面值常量。
  • + - * / 这种称为运算符或者操作符。

下面,我们来看一个题目:

给定四个分数, 67.5, 89.0, 12.9, 32.2 , 编写代码, 求这四个分数的平均数.  

print( (67.5 + 89.0 + 12.9 + 32.2) / 4 )


变量和类型

变量是什么

当程序执行计算时,我们希望存储某些值,以便稍后可以使用这些值。在Python程序中,使用变量存储值。

定义变量

变量是计算机程序中的存储单元。每个变量都有一个名称并存有一个值。

使用赋值语句将值放入变量中。

cansPerPack=6

赋值语句的左侧是一个变量,右边是结果,为一个值的表达式。

赋值语句右侧的值存储在左侧的变量中。

第一次给变量赋值时,将使用该值创建和初始化该变量。变量定义后,可以在其他语句中使用。

例如:以下语句将打印存储在变量cansPerPaack中的值

print(cansPerPack)

如果一个现有变量被赋予一个新值,则该值将替换先前存储的值。

例如:以下语句将变量cansPerPack的值从6改变为8

cansPerPack=8

等号“=”并不意味着等式的左边等于右边,而是将右边的值赋给左边的变量。

下面,我们来看一个题目:

给定四个分数, 67.5, 89.0, 12.9, 32.2 , 编写代码, 求这四个分数的方差。

方差又是什么呢?

方差是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。在许多实际问题中,研究方差即偏离程度有着重要意义。
方差是衡量源数据和期望值相差的度量值。

  •  计算平均值(此处的平均值,就会在后面反复地被使用)
  •  针对每个数字,分别计算数字和平均值的差值,再平方
  •  把上述的平均值相加
  •  除以(项数-1)
avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2
result = total / 3
print(result)

 

注意:

  • avg, total, result 均为变量。
  • ** 在 Python 中表示乘方运算. ** 2 即为求平方。

 就像计算器中的 M 键功能类似, 通过变量就可以保存计算过程中的中间结果.

只不过, 计算器一般只能保存一个数据, 而在 Python 代码中, 可以创建任意多的变量, 来随心所欲的保存很多很多的数据.  

变量可以视为是一块能够容纳数据的空间. 这个空间往往对应到 "内存" 这样的硬件设备上.

我们可以把内存想像成是一个宿舍楼, 这个宿舍楼上有很多的房间. 每个房间都可以存放数据.

衡量内存的一个重要指标就是内存空间的大小, 比如我的电脑内存是 16GB. 这个数字越大, 意味着 内存的存储空间就越大, 能够存放的数据(变量) 就越多.


变量的语法 

 (1) 定义变量

创建变量的语句非常简单, 其中a 为变量名.

当我们创建很多个变量的时候, 就可以用名字来进行区分。 = 为赋值运算符, 表示把 = 右侧的数据放到 = 左侧的空间中.

注意: 变量的名字要遵守一定规则.

硬性规则(务必遵守)

变量名由数字、字母、下划线构成,不能包含特殊字符。

     像a1是合法的变量名

     像1a,a*a都是非法的变量名

数字不能开头.

变量名不能和 "关键字" 重复.

     关键字:在语法中有特定含义的单词

     像if这种也是非法变量名

变量名大小写敏感,区分大小写。

     num 和 Num 是两个不同的变量名.

软性规则(建议遵守)

给变量命名的时候,变量名使用有描述性的单词来表示,尽量通过名字表现出变量的作用。

一个变量名可以由多个单词构成,长一点没关系,但是含义要清晰,不怕变量名字长,就怕变量的含义表达得不清楚。

当我们使用一个单词描述不清楚的时候,可以使用多个单词来命名。

当变量名包含多个单词的时候,命名有多种规范。

   1.驼峰命名法。形如 totalCount , personInfo 这种,除了首个单词外,剩余单词首字母大        写。

   2.蛇形命名法。形如person_info、total_count这种,单词之间,使用下划线_来进行分          隔。

在公司里开发商业程序,一般公司都会有明确的编程规范。

数学上, 变量通常使用 x, y, z 这种简单的英文字母或者拉丁字母表示. 但是在编程中不建议这样使用.

原因是编程中, 一个程序里通常会同时创建出很多个变量. 如果只是使用单个字母表示, 在变量多了的时候, 就很难记住哪个变量是干啥的, 从而给维护程序带来了一定的困难. 因此我们更建议使用带 有明确描述性的名字, 来表示变量的用途.

(2) 使用变量  

读取变量的值

a = 10
print(a)

修改变量的值

a = 20
print(a)

注意: 在 Python 中, 修改变量也是使用 = 运算, 看起来和定义变量没有明显区别.

当然, 也可以用一个变量的值赋给另外一个变量.

a = 10b = 20a = bprint(a)print(b)

 


变量的类型

变量里面存储的不仅仅是数字, 还可以存储其它种类的数据. 为了区分不同种类的数据, 我们引入了 "类型"这样的概念.

(1) 整数

a = 10
print(type(a))

type 和 print 类似, 也是 python 内置的函数. 可以使用 type 来查看一个变量的类型.  

Python中的变量的类型,不需要在定义变量的时候显式声明,而只是依靠初始化语句,根据初始化的值的类型来进行确定的。

在Python中,int能够表示的数据范围,是“无穷”的

Python的int是可以根据要表达的数据的大小,自动扩容

因此Python这里就没有long这样的类型了

像byte、short这些类型在Python中也不存在

Java int最大就能表示到-21亿~21亿

(2) 浮点数(小数) 

a = 0.5
print(type(a))

像C++和Java里面,float是四个字节,也叫做“单精度浮点数”

把一个二进制位,称为一个bit

8个bit放在一起,就称为是一个字节

double是八个字节的,也叫做“双精度浮点数”

相比于单精度浮点数, 双精度浮点数占用的内存空间更多, 同时表示的数据精度更高即可(大概精确到小数点后 15 位).

 Python中的float就是双精度浮点数,等同于C++/Java里的double

Python的一个设计哲学:解决一个问题,只提供一种方案

(3) 字符串

a = 'hello'
print(type(a))

a="hello"
print(type(a))

使用 ' ' 或者 " " 引起来的, 称为字符串. 可以用来表示文本.  

英文字母、阿拉伯数字、标点符号、甚至汉字符号,都可以认为是“字符”。

例如:a      8      +

注意: 在 Python 中, 单引号构成的字符串和双引号构成的字符串, 没有区别. 'hello' 和 "hello" 是 完全等价的.

字符串这个单词——>string=>str

如果有这样一段话:My name is "yalan",如果把这段话作为字符串,那么该怎么办呢?

如果是这么写,编译器都看不下去了,所以:

 

应该这样写 

 

 因此,如果字符串里面包含了双引号,表示字符串就可以用单引号引起来

 如果字符串里面包含了单引号,表示字符串就可以用双引号引起来

 那么,如果同时有单引号和双引号,又该咋办呢?

    Python中还有一种字符串,使用三引号表示

a='''my 'name' is "yalan" '''
print(a)

 

可以使用 len 函数来获取字符串的长度.

a = 'hello'
print(len(a))

可以使用 + 针对两个字符串进行拼接.

a = 'hello '
b = 'world'
print(a + b)

形如这样的代码,就是“字符串拼接”,也就是把后面的字符串拼接到前一个字符串的末尾,得到了一个更大的字符串!!!(对于原来的a、b是没有影响的)

此处是两个字符串相加. 不能拿字符串和整数/浮点数相加.

在Python中报错,有两种情况:

  1. 语法错误 在程序运行之前,Python解释器就能把错误识别出来
  2. 运行错误 在程序运行之前,识别不了的,必须要执行到对应的代码,才能发现问题

(4) 布尔 

布尔类型是一个特殊的类型, 取值只有两种, True (真) 和 False (假),在后续进行逻辑判断的时候, 是非常有用的.

布尔类型也是数学上的一个概念. 我们初中就学过一个概念叫做 "命题" , 进一步的就可以判定命题的真假.

c1=True
c2=False
print(type(c1))
print(type(c2))

(5) 其他

除了上述类型之外, Python 中还有 list、tuple、dict、自定义类型等等 


为什么要有这么多类型?

(1) 类型决定了数据在内存中占据多大空间.

(2) 类型其实约定了能对这个变量做什么样的操作.

类型系统其实是在对变量进行 "归类". 相同类型的变量(数据) 往往具有类似的特性和使用规则.  


动态类型特性

程序运行过程中,变量的类型可能会发生变化。

a=10
print(type(a))
a='hello'
print(type(a))
a=True
print(type(a))

 a的类型随着程序的运行,就发生改变。

静态类型:程序运行过程中,变量的类型始终不变

 C++ Java  

Java中的 int a=10; a这个变量在程序运行的整个过程中,始终都是int,如果尝试a="hello",编译阶段就会报警告。

一个编程语言,是否是动态类型,只是取决于运行时,类型是否发生变化,不取决于变量定义的时候是否声明类型。

Python作为一个动态类型的语言,在定义变量的时候,也是可以写类别的。

动态类型,写法是比较灵活的,提高了语言的表达能力,然而,在编程中,“灵活”这个词往往是“贬义”的,更容易出错!!!

相比之下,静态类型的语言还是更好一些的。尤其是在大型的程序中,多人协作开发。 


 好啦,小雅兰今天的内容就到这里啦,之后还会好好学python噢

 

相关文章:

常量和变量——“Python”

各位CSDN的uu们你们好呀,今天,小雅兰的内容是Python的一些基础语法噢,会讲解一些常量和变量的知识点,那么,现在就让我们进入Python的世界吧 常量和表达式 变量和类型 变量是什么 变量的语法 变量的类型 常量和表达式 …...

《蓝桥杯每日一题》KMP算法·AcWing 141. 周期

1.题目描述一个字符串的前缀是从第一个字符开始的连续若干个字符,例如 abaab 共有 55 个前缀,分别是 a,ab,aba,abaa,abaab。我们希望知道一个 N 位字符串 S 的前缀是否具有循环节。换言之,对于每…...

URL介绍

前言Internet上的每一个网页都具有一个唯一的名称标识,通常称之为URL(Uniform Resource Locator, 统一资源定位器)。它是www的统一资源定位标志,简单地说URL就是web地址,俗称“网址”。一、URL概念URL是对互联网上得到…...

学习 Python 之 Pygame 开发魂斗罗(一)

学习 Python 之 Pygame 开发魂斗罗(一)Pygame回忆Pygame1. 使用pygame创建窗口2. 设置窗口背景颜色3. 获取窗口中的事件4. 在窗口中展示图片(1). pygame中的直角坐标系(2). 展示图片(3). 给部分区域设置颜色5. 在窗口中显示文字6. 播放音乐7. 图片翻转与…...

ARM uboot 源码分析8 - uboot的环境变量

一、uboot 的环境变量基础 1、环境变量的作用 (1) 让我们可以不用修改 uboot 的源代码,而是通过修改环境变量,来影响 uboot 运行时的一些数据和特性。譬如说,通过修改 bootdelay 环境变量,就可以更改系统开机自动启动时倒数的秒…...

【蓝牙mesh】Network协议层介绍

【蓝牙mesh】Network协议层介绍 Network层简介 上一章节我们讲解了蓝牙Mesh中Lower层的功能和数据格式。 Lower层的数据往下传输就到了网络层(Network Layer)。网络层定义了收到Lower层的数据后,如何对其进行判断、封装、加密、认证&#xf…...

基于遗传算法的配电网故障定位(Matlab代码实现)

👨‍🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…...

Leetcode.1247 交换字符使得字符串相同

题目链接 Leetcode.1247 交换字符使得字符串相同 Rating : 1597 题目描述 有两个长度相同的字符串 s1和 s2,且它们其中 只含有 字符 "x"和 "y",你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时…...

python语音识别whisper

一、背景 最近想提取一些视频的字幕,语音文案,研究了一波 二、whisper语音识别 Whisper 是一种通用的语音识别模型。它在不同音频的大型数据集上进行训练,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。 …...

Prometheus -- 浅谈Exporter

Prometheus系统 – Exporter原理 为什么我们需要Exporter? 广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter。而Exporter的一个实例称为target,如下所示,Prometheus通过轮询的方式定期从这些target中获取样本…...

如何确定RocketMQ中消费者的线程大小

背景 随着物联网行业的发展、智能设备数量越来越多,随着设备活跃量过大,常常存在一些高并发的请求,形成了流量尖峰,过多的请求会压垮服务器,影响其他服务运行。因此,为了保护云端服务,需要对请求…...

OpenAPI SDK组件之Spring Aop源码拓展

Spring Aop 看这个分享的应该都用过Spring Aop,这里就不再过多介绍了它是什么了。 我抽取了Spring Aop的部分源码,通过它实现请求参数可变拦截,同时apisdk离开Spring框架,仍然可以正常运行。 讲拦截也好,通知也罢&a…...

蓝桥杯C/C++VIP试题每日一练之龟兔赛跑预测

💛作者主页:静Yu 🧡简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者 💛社区地址:前端知识交流社区 🧡博主的个人博客:静Yu的个人博客…...

为你的Vue2.x老项目安装Vite发动机吧

天下苦webpack久矣,相信作为前端开发者一定经历过在项目迭代时间较长的时候经历漫长等待的这一过程,每一次保存都会浪费掉大量时间,这是webpack这种机制所带来的问题。 于是,尤大为我们带来了新一代前端构建工具:vite…...

ZCMU--5012: 铺设道路(差分思路)

Description 春春是一名道路工程师,负责铺设一条长度为 n 的道路。 铺设道路的主要工作是填平下陷的地表。 整段道路可以看作是 n 块首尾相连的区域,一开始,第 i 块区域下陷的深度为 di。  春春每天可以选择一段连续区间 [L,R]&…...

算法模板总结(自用)

算法模板总结滑动窗口双指针算法数组相关合并两个有序数组左右指针技巧快慢指针技巧字符串相关左右指针反转字符串问题快慢指针替换空格字符问题链表相关快慢双指针删除链表的倒数第N个节点链表相交环形链表链表操作几数之和两数之和四个数组的四数之和三数之和同一数组中四数之…...

【架构师】零基础到精通——架构发展

博客昵称:架构师Cool 最喜欢的座右铭:一以贯之的努力,不得懈怠的人生。 作者简介:一名Coder,软件设计师/鸿蒙高级工程师认证,在备战高级架构师/系统分析师,欢迎关注小弟! 博主小留言…...

C++(20):三路比较运算符

C20增加了三路比较运算符<>&#xff08;戏称航天飞机运算符&#xff09;&#xff0c;用于对类的比较运算符进行统一的设计。有两种使用方式&#xff1a;默认比较对于某些类&#xff0c;如果按照其成员逐一比较即可决定比较运算符的值&#xff0c;那么可以使用默认的三路运…...

MySQL workbench 字符集、字符序的概念与联系

在数据的存储上&#xff0c;MySQL提供了不同的字符集支持。而在数据的对比操作上&#xff0c;则提供了不同的字符序支持。 MySQL提供了不同级别的设置&#xff0c;包括server级、database级、table级、column级&#xff0c;可以提供非常精准的设置。 什么是字符集、字符序&am…...

DBA之路---数据库启动与关闭过程

DBA之路—数据库启动与关闭过程 1、启动过程 oracle启动的四个状态 shutdown、就是数据库关闭状态。 nomount模式 #启动instance &#xff0c;读取参数文件、分配sga空间启动后台进程&#xff0c;打开alter日志和其他trace文件startup nomount #该模式下只会创建实例并不加…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...