当前位置:首页>python>Python变量

Python变量

  • 2026-08-24 03:46:36
Python变量

一、变量的定义

什么是变量:变量是用于存储数据的容器,可以通过变量名来引用存储的值,直白一点就是变量代表了一个值,我们可以通过变量存储和获取值。

基本特点

  • 不需要显示声明类型,编译器会通过赋值进行类型推断
  • 同一个变量名在声明以后,可以被赋值不同类型的值

命名规则

  • 变量名只能包含:字母(a-z, A-Z)、数字(0-9)、下划线(_)
  • 首字母只能以字母或下划线开头,不能以数字开头
  • 区分大小写 name 和 NAME表示不同的变量
  • 不能使用Python关键字,可以通过使用 keyword.kwlist 获取当前版本Python的保留关键字
# ✅ 允许的
name = "张三"
age_1 = 25
_user_count = 100
variable = 10# 字母开头
_variable = 20# 下划线开头
var123 = 30# 字母开头,包含数字

# ❌ 不允许的
# my-name = "张三"     # 不允许连字符
# my.name = "李四"     # 不允许点号
# my name = "王五"     # 不允许空格
# name@email = "test"  # 不允许@符号
# $price = 100         # 不允许$符号
123var = 10# 数字开头
1variable = 20# 数字开头
123 = "test"# 纯数字也不行

建议的命名

类型
命名约定
示例
变量
snake_case(小写下划线)
student_name
total_score
函数
snake_case(小写下划线)
get_user_info()
calculate_total()
类名
PascalCase(大驼峰)
StudentInfo
DataProcessor
常量
UPPER_CASE(全大写)
MAX_SIZE
DEFAULT_TIMEOUT
模块
snake_case(小写下划线)
my_module.py
包名
snake_case(全小写)
my_package/

二、局部变量与全局变量

1、局部变量

定义位置:定义在函数内部的变量

作用域:只在定义它的函数内部生效

生命周期:函数调用时创建,函数结束时销毁

访问权限:只能在函数内部访问

defgreet():
    msg = "Hello Python!"
    print(msg)  # 这里能访问 msg

greet()
print(msg)  # 报错:msg 在这里不存在

2、全局变量

定义位置:函数外部,模块顶层

作用域:在整个模块中有效

生命周期:程序运行时创建,程序结束时销毁

访问权限:可以在任何地方访问

x = 10# 全局变量

defshow():
    print(x)  # 在函数内部访问全局变量

show()
print(x)  # 同样能访问

2.1 同名遮蔽(Shadowing)

如果全局有一个变量 a,函数里也定义了 a,局部变量 不会修改 全局变量,仅在函数内遮蔽它

a = 10

deff():
    a = 99# 局部变量,函数内部定义的局部变量 a 会遮蔽全局变量 a
    print(a)

f()        # 输出 99
print(a)   # 仍然是 10

2.2 全局变量的修改

对全局变量的修改,需要借助关键字 global 完成,如果在修改全局变量时没有使用global 会发生错误。

语法:

global 变量名
# 赋值操作

错误示例:

x = 5

deff():
    x = x + 1# 会出错

f()

报错:

UnboundLocalError: cannot access local variable 'x' where it isnot associated with a value

正确示例:

x = 5

definc():
global x
    x += 1

inc()
print(x)  # 输出6

全局变量的滥用容易导致以下问题:

  • 增加代码耦合度

  • 增加非预期状态改变的风险

  • 让调试变难

三、常量

常量:一种特殊的变量,在程序整个生命周期中值不会发生改变,例如:数学的 π 。不过,Python 语言无法像Java等语言一样,通过constfinal关键字来声明变量为常量,限制代码对变量的修改。

命名风格:全大写字母 + 下划线,以此种方式声明变量预期是一个常量,不应该被修改

常量的访问和变量是相同的,可以直接访问,只是声明为常量以后,不应该去修改它

PI = 3.14159
MAX_RETRIES = 5
BASE_URL = "https://api.example.com"

最新文章

随机文章