[Python学习日记-4] Python中的变量

[Python学习日记-4] Python中的变量

简介

变量的运行原理

变量的使用规则

简介

        在Python中,变量是一个具有名称的存储位置,用于存储数据。它们被用来在程序中引用和操作数据。变量在使用前需要先进行声明或赋值,Python是一种动态类型语言,意味着变量的类型可以根据赋给它的值自动推断。

变量的运行原理

        我们所谓的变量其实就跟数学当中的一个方程是差不多的,先看看下面的例子:

y = 4
x = 2
print(x + y) # 输出为6

        y = 4 就是对 y 的定义,x = 2 就是对 x 的定义,而 x + y 输出6就是对前面两个定义了的变量做调用。从上面的例子就能看出,Python的变量定义是有一定顺序的,这种顺序在大多数的编程语言中都适用。

1、先定义变量

        变量,是用于在内存中存放程序数据的容器。计算机的最核心功能就是“计算”, 计算需要数据源,数据源要存在内存里,如果完全是小白的话可能连什么是内存都不懂,我们在这里就简单说一下,在计算机里面CPU是只进行计算,而数据源是存储在内存当中的,举个例子,x + y 这是一个运算公式,x + y 这个加的动作是由CPU来做的,但是 x 和 y 是多少这个CPU是不知道的,而这个内存知道,当要运算时,CPU会去内存中拿。当然这里只是简单的描述一下,计算机的数据存储原理是相当复杂的,如果想要了解得更深的话需要学习一下《计算机原理》这本书,也可以去看看这个视频:小白扫盲之-计算机为何需要内存

        比如我要把小明的姓名、身高、年龄信息存下来,后面程序会调用,怎么存呢,直接设置一个“变量名=值”就可以了,如下

name = "小明"
age = 22
height = 160

2、代码后调用

         后面程序想调用的时候,直接使用变量名就可以调用了

print(name) # 打印 name 变量的内容
print(age) # 打印 age 变量的内容

变量的使用规则

        程序是从上到下执行的,所以变量必须先定义,后调用,否则程序会报错

一、变量名定义规则——法律层面

        Python中的变量是弱类型的,这意味着你可以将一个变量赋给另一个类型不同的值,而不需要进行任何类型声明或类型转换,这就是为什么说Python比Java要简单的原因(Java、C、C++都要事先声明变量的类型)。需要注意的是变量在赋值后可以被重新赋值,而且可以存储任何类型的值。不过龟叔为了区分Python和其他语言的区别还是给出了命名的一些官方规则,在学习过程中一定要注重标准化,所以我们也要好好学习一下这个命名规则,规则如下:

1、变量名只能是 字母、数字或下划线的任意组合(隐含的意思就是除了这些其他都不能用,包括特殊字符)

age_of_jove = 27
age_OF_Jove = 27

2、变量名的第一个字符不能是数字

3、以下关键字不能声明为变量名['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']

变量名区分大小写。

二、常用定义方式——道德层面

1、驼峰体(代表Java、C#)

AgeOfLady = 56
NumberOfStudents = 80

2、下划线(代表Python(官方推荐))

age_of_lady = 56
number_of_students = 80

定义变量不好的方式举例:

  • 变量名为中文、拼音
  • 变量名过长
  • 变量名词不达意

三、变量的修改

        这个就是字面的意思,在第一次定义后,再给同一个变量名的变量赋值

四、常量

        常量即指不变的量,比如 pai 等于 3.1415926...或者是在程序运行全过程当中不会改变的量。例如,手表里的时间时时刻刻都在增加,这个就是个变量,如果突然间有个时间遥控器把时间暂停了而且永远不会启动,那这时候时间就变成了常量了。在Python中没有一个专门的语法代表常量,而是约定俗成的用变量命全为大写代表常量,如下

AGE_OF_LADY = 56

        在C语言当中有专门代表常量的定义语法,如下

const int count = 60;

        const 就是C语言中常量的定义语法,count 这一常量如果在C语言编写的程序中更改将会报错。 

Python,多线程共享全局变量需要注意线程安全性。引用的代码示例展示了在多线程共享全局变量的情况。在这个例子,定义了一个全局变量g_num,并在两个线程修改它的值。然而,由于多线程的执行是并发的,可能会出现竞态条件,导致最终的结果不可预测。 在引用的第二个例子,增加了大量的循环来展示竞态条件的问题。两个线程分别对全局变量g_num进行递增操作,但由于线程执行的时机不确定,最终的结果可能不是我们期望的。 为了解决多线程共享变量的竞态条件问题,可以使用锁来保护共享的资源。引用的代码示例展示了如何使用锁来实现多线程共享变量的安全操作。在这个例子,使用了threading模块的Lock类来创建一个锁对象。在对全局变量g_num进行修改之前,先获取锁对象,确保只有一个线程能够修改该变量,然后在修改完成后释放锁,让其他线程可以获取锁进行操作。 总结来说,为了确保多线程共享变量的安全操作,可以使用锁来保护共享资源,避免竞态条件的发生。这样可以保证多个线程对同一个全局变量的操作是有序的,避免出现不可预测的结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [3_python高阶_线程—多线程-共享全局变量](https://blog.csdn.net/brawly/article/details/126734141)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [五分钟,说说Python 多线程共享全局变量的问题](https://blog.csdn.net/m0_74872863/article/details/130254062)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Python学习日记-第三十三天-多线程共享全局变量](https://blog.csdn.net/arizia/article/details/127942056)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JoveZou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值