首页 > 其他分享 >常量和变量

常量和变量

时间:2024-01-13 22:56:41浏览次数:31  
标签:常量 18 age 整数 变量名 变量

【一】变量

【1】什么是变量

  • 变量是用于存储数据值的标识符,可以通过变量名访问和操作这些数据。
    • 在程序中,变量就像一个容器,用于存储和管理数据。
  • 变量就是可以变化的量,量指的是事物的状态
    • 比如人的年龄、性别,游戏角色的等级、金钱等等

【2】为什么要有变量

  • 变量的存在使得程序能够更灵活地处理数据,而不是每次都硬编码数据值。
  • 通过使用变量,程序可以在运行时根据需要存储和修改数据,从而实现动态的状态和行为。
  • 为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
  • 变量在程序中扮演着存储和传递信息的角色
    • 程序执行的本质就是一系列状态的变化,变是程序执行的直接体现
    • 所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态,以及状态的变化

【3】变量的定义与调用

  • 【一】定义规范示例
    # 用一个变量name 保存名字叫Green
    name = 'Green'
    # 用一个变量 sex 保存性别 是 男
    sex = '男'
    # 用一个变量 age 保存年龄 是 21
    age = 21
    # 用一个变量 age 保存薪资 是 15k
    salary = 15k
    【二】解释器执行到变量定义的代码时会申请内存空间存放变量值
    1.然后将变量值的内存地址绑定给变量名
    2.以变量的定义age=18为例,如下图
    

img

  • 通过变量名即可应用到对应的值:
    • 通过变量名即可引用到值,我们可以结合print()功能将其打印出来 print(age)
    • 通过变量名age找到值18,然后执行print(18),输出:18

【4】变量的命名规范

  • 原则:变量的命名应该见名知意
  • 如果我们要存储的数据18代表的是一个人的年龄,那么变量名推荐命名为:

    • age = 18
  • 如果我们要存储的数据18代表的是一个人的等级,那么变量名推荐命名为:

    • level = 18
  • 其他的命名规范如下

    • 变量名只能是 字母、数字或下划线的任意组合
    • 变量名的第一个字符不能是数字
    • 关键字不能声明为变量名,常用关键字如下
    ['and', 'as', 'assert', 'break', 
    'class', 'continue', 'def', 'del', 
    'elif', 'else', 'except', 'exec', 
    'finally', 'for', 'from','global', 
    'if', 'import', 'in', 'is', 'lambda', 
    'not', 'or', 'pass', 'print', 
    'raise', 'return', 'try', 'while', 
    'with', 'yield'] 
    
  • 错误命名示范

# 错误示范如下
*a=123 
$b=456 
c$=789 
2_name='lili' 
123='lili' 
and=123 
年龄=18   # 强烈建议不要使用中文命名

# 正确示范如下
age_of_ly=31 
page1='首页' 
_class='终极一班'

【5】变量名的风格

(1)驼峰体

  • 大驼峰:每个单词的首字母都大写,其余字母小写
    • AgeOfTony = 56
  • 小驼峰:每个单词的首字母都大写,只有第一个单词的首字母是小写
    • numberOfStudents = 80

(2)纯小写下划线

  • 所有字母都小写,每个单词之间使用下划线分隔(在python中,变量名的命名推荐使用该风格)
    • age_of_tony = 56
    • number_of_students = 80

【6】变量的三大特性

(1)id (内存地址 - 内存编号)

  • 反应的是变量在内存中的唯一编号,内存地址不同id肯定不同

(2)type (数据类型)

  • 变量值的类型

(3)value (变量值)

  • 变量值

【7】如何查看变量的三大特性

# 定义变量
x = 'Info Dream:18'

# id (内存地址 - 内存编号)  : 反应的是变量在内存中的唯一编号,内存地址不同id肯定不同
print(id(x))  # 2304891956272

# type (数据类型) : 变量值的类型
print(type(x))  # <class 'str'>

# value (变量值) : 变量值
print(x)  # Info Dream:18

【补充】初识小整数池

  • 对于小整数,Python有一个小整数池的概念。小整数池是一个预先创建好的、包含一定范围的整数的池子,这些整数在程序运行过程中会被重复使用,以提高内存利用效率。
  • 在Python中,整数对象是不可变的,因此如果一个整数值在小整数池中已经存在,那么多个变量使用相同的整数值时,它们实际上是指向同一个整数对象的引用。这就是小整数池的机制。
  • 小整数池一般包括一定范围内的整数,例如,通常会包含从-5到256的整数。这是因为在Python中,经常会用到一些小的整数,比如循环的索引、计数器等,因此预先创建这些小整数,可以减少内存的消耗,提高程序的执行效率。

【二】常量

【1】什么是常量

  • 常量指在程序运行过程中不会改变的量

【2】为什么要有常量

  • 在程序运行过程中,有些值是固定的、不应该被改变
    • 比如圆周率 3.141592653…
  • 在其他语言中,真正意义上的常量,中间是不能改变的,如果你改变,就报错,但是,在python中,无所谓,你改变也不报错!
  • 在JavaScript语言中,就有真正意义的常量,中途不能修改,修改就报错

【3】常量的使用

  • 在Python中,虽然没有真正的常量概念,但可以通过一些约定来表示常量。

  • 通常,程序员会使用全大写的变量名来表示常量,以提醒自己和其他人这个变量的值应该保持不变。

  • 例如:

    PI = 3.141592653
    
  • 尽管在Python中可以修改这样的变量,但是程序员通常会视其为常量,不去改变它的值。

  • 这样的约定有助于提高代码的可读性,并且在实际应用中,这些变量的值不会被轻易修改。

  • 在Python中,强制性的常量机制并不像其他一些语言那样严格,所以这主要依赖于程序员的自律和代码规范。

标签:常量,18,age,整数,变量名,变量
From: https://www.cnblogs.com/Hqqqq/p/17963157

相关文章

  • 【C语言】全局变量与局部变量
    在不同的函数之间传递数据时,可以使用如下方法:参数:通过形参和实参返回值:用return语句返回计算结果全局变量全局变量与局部变量全局变量:函数之外定义的变量称为全局变量(外部变量);局部变量:在一个函数内部定义的变量称为局部变量(内部变量)。全局变量使用:#include<stdio.h......
  • 无涯教程-LISP - 常量声明
    在LISP中,常量是在程序执行期间永不更改其值的变量,常量使用defconstant构造进行声明。以下示例显示了声明全局常量PI并随后在名为area-circle的函数中使用此值来计算圆的面积的情况。defun构造用于定义一个函数,我们将在Function一章中对其进行研究。创建一个名为main.l......
  • 无涯教程-LISP - 环境变量
    Lisp执行器CLISP是用于在Windows中设置LISP的GNU通用LISP多体系结构编译器,Windows版本使用Windows下的MingW模拟Unix环境,安装程序会处理此问题,并自动将clisp添加到WindowsPATH变量。您可以从此处获取最新的WindowsCLISP-https://sourceforge.net/projects/clisp/files/late......
  • 【LeetCode 2701. 连续递增交易】MySQL用户变量编程得到严格递增连续子序列的开始位置
    题目地址https://leetcode.cn/problems/consecutive-transactions-with-increasing-amounts/代码#WriteyourMySQLquerystatementbelowwitht1as(select*#--------------------------只需要改动这里的逻辑,其他不要动。注意里面的语句是“顺序执行的......
  • 【Leetcode 2474. 购买量严格增加的客户】MySQL用户变量编程解决严格递增连续子序列问
    题目地址https://leetcode.cn/problems/customers-with-strictly-increasing-purchases/description/代码#WriteyourMySQLquerystatementbelowwitht1as(selectcustomer_id,year(order_date)asmy_year,sum(price)astotal_spendfromOrders......
  • 【LeetCode 2494. 合并在同一个大厅重叠的活动】MySQL用户变量编程解决区间合并问题
    题目地址https://leetcode.cn/problems/merge-overlapping-events-in-the-same-hall/代码#WriteyourMySQLquerystatementbelowwitht2as(select*#----只需要改动这里的逻辑,其他不要动。注意里面的语句是“顺序执行的”-------------如果切换......
  • Ansible - 定义变量
     Ansible 支持十几种定义变量的方式Inventory变量HostFacts变量Register 变量Playbook 变量Playbook 提示变量变量文件命令行变量  Inventory 变量1、定义变量(在主机清单配置文件中进行定义)[root@controlansible]#cat~/ansible/hosts[test]node1m......
  • 【LeetCode1747. 应该被禁止的 Leetflex 账户】MySQL用户变量编程;尝试维护一个multise
    题目地址https://leetcode.cn/problems/leetflex-banned-accounts/description/代码witht1as(selectaccount_id,ip_address,loginastick,"login"asmytypefromLogInfounionallselectaccount_id,ip_address,logoutastick......
  • js中的对象,如果赋值给多个变量,那么会有性能问题吗
    js中的对象,如果赋值给多个变量,那么会有性能问题吗?在JavaScript中,将一个对象赋值给多个变量时,并不会直接导致性能问题。当一个对象被赋值给多个变量时,实际上这些变量都会引用同一个对象,即它们指向内存中的同一块地址。这种行为称为“对象引用”。例如:constobj={a:1,b:2}......
  • 【LeetCode 2142. 每辆车的乘客人数 I】乘客到站等车,车到站载客。MySQL用户变量编程完
    题目地址https://leetcode.cn/problems/the-number-of-passengers-in-each-bus-i/description/思路将所有关键时刻作为tick。(同一时刻车和人同时到,默认人在车前到)之后按照tick升序,使用MySQL用户变量编程完成计算逻辑。输出结果。代码withticksas(selectarrival_tim......