Hi~新朋友,记得点上面蓝字(网虫root)关注哟~
前言:
主要分享的是Python版本为Python3的内容。
一、什么是变量
在Python中,变量是用于存储数据的容器。你可以将变量理解为一个带标签的盒子,标签就是变量名,盒子里装的就是数据。
从技术角度讲,变量是内存位置的引用。当你创建一个变量时,Python会在内存中分配一块空间来存储数据,而变量名则指向这个内存位置。
# 创建变量name = "张三"age = 25print(name) # 输出: 张三print(age) # 输出: 25
Python变量有一个重要特点:变量本身没有类型,类型属于值(对象)。这意味着同一个变量可以存储不同类型的数据,可以使用type()来查看变量被赋值以后的类型。
x = 10 # x现在指向一个整数print(type(x)) # 输出: <class 'int'>x = "hello" # x现在指向一个字符串print(type(x)) # 输出: <class 'str'>
二、变量的作用
变量在编程中扮演着至关重要的角色:
1. 数据存储与重用
# 计算圆的面积radius = 5pi = 3.14159area = pi * radius * radiusprint(f"半径为{radius}的圆面积是: {area}")# 输出: 半径为5的圆面积是: 78.53975# 修改半径值,无需重写整个公式radius = 8area = pi * radius * radiusprint(f"半径为{radius}的圆面积是: {area}")# 输出: 半径为8的圆面积是: 201.06176
# 没有变量的代码(难以理解)print((60 * 60 * 24) * 7)# 使用变量的代码(清晰明了)seconds_per_minute = 60minutes_per_hour = 60hours_per_day = 24days_per_week = 7seconds_per_week = seconds_per_minute * minutes_per_hour * hours_per_day * days_per_weekprint(f"一周有{seconds_per_week}秒")
# 用户输入处理user_name = input("请输入您的姓名: ")user_age = int(input("请输入您的年龄: "))# 数据处理birth_year = 2024 - user_agegreeting = f"您好,{user_name}!您出生于{birth_year}年。"print(greeting)
三、变量命名规则与规范
命名规则(必须遵守)
只能包含:字母(a-z, A-Z)、数字(0-9)和下划线(_)
不能以数字开头
3. 区分大小写
4. 关键字不能用作变量名
# 合法的变量名my_var = 1var2 = 2_private = 3VAR_NAME = 4varName = 5# 不合法的变量名# 2var = 1 # 错误:以数字开头# my-var = 2 # 错误:包含连字符# class = 3 # 错误:使用关键字
命名规范(约定俗成)
小写蛇形命名法:用于普通变量和函数名
user_name = "张三"total_count = 100
MAX_SIZE = 1024PI = 3.14159
class UserProfile: # 类使用驼峰命名 def __init__(self): self.user_name = "" # 实例变量使用小写蛇形
5. 双下划线开头:表示名称修饰(Name Mangling)
6. 避免使用的情况:
单个字符(除了计数器i, j, k或坐标x, y, z)
含义模糊的缩写
拼音或中英混合
慎用小写字母1和大写字母o,因为它们可能被人错看成数字1和0。
四、变量的语法与使用
1. 基本赋值
# 单个赋值x = 10name = "Alice"# 多个变量赋同一个值a = b = c = 0print(a, b, c) # 输出: 0 0 0# 多个变量赋不同的值(元组解包)x, y, z = 10, 20, 30print(x, y, z) # 输出: 10 20 30# 交换两个变量的值(无需临时变量)a, b = 10, 20print(f"交换前: a={a}, b={b}") # 输出: 交换前: a=10, b=20a, b = b, aprint(f"交换后: a={a}, b={b}") # 输出: 交换后: a=20, b=10
# 加法赋值count = 5count += 3 # 相当于 count = count + 3print(count) # 输出: 8# 减法赋值count -= 2 # 相当于 count = count - 2print(count) # 输出: 6# 乘法赋值count *= 2 # 相当于 count = count * 2print(count) # 输出: 12# 除法赋值count /= 3 # 相当于 count = count / 3print(count) # 输出: 4.0# 其他复合运算符count **= 2 # 幂运算赋值: count = count ** 2count //= 3 # 整除赋值: count = count // 3count %= 2 # 取模赋值: count = count % 2
# 整数age = 25temperature = -10large_number = 1_000_000 # Python3.6+支持使用下划线提高可读性# 浮点数price = 19.99pi = 3.1415926535scientific = 1.23e-4 # 科学计数法: 0.000123# 字符串name = "张三"message = 'Hello, World!'multiline = """这是一个 多行字符串"""# 布尔值is_active = Truehas_permission = False# 列表(可变序列)fruits = ["苹果", "香蕉", "橙子"]fruits.append("葡萄")# 元组(不可变序列)coordinates = (10.5, 20.3)# 字典(键值对)person = {"name": "张三", "age": 25, "city": "北京"}# 集合(无序不重复)unique_numbers = {1, 2, 3, 4, 5}
# 动态类型 - 同一个变量可以存储不同类型的数据value = 100print(type(value)) # 输出: <class 'int'>print(value) # 输出: 100value = "一百"print(type(value)) # 输出: <class 'str'>print(value) # 输出: 一百value = [1, 2, 3]print(type(value)) # 输出: <class 'list'>print(value) # 输出: [1, 2, 3]# 类型检查与转换x = "123"print(type(x)) # 输出: <class 'str'># 字符串转整数x_int = int(x)print(type(x_int)) # 输出: <class 'int'>print(x_int + 10) # 输出: 133# 整数转字符串y = 456y_str = str(y)print(type(y_str)) # 输出: <class 'str'>print("数字是: " + y_str) # 输出: 数字是: 456
# 全局变量global_var = "我是全局变量"def my_function(): # 局部变量 local_var = "我是局部变量" print(local_var) # 可以访问局部变量 print(global_var) # 可以访问全局变量my_function()# print(local_var) # 错误:在函数外部无法访问局部变量# 修改全局变量counter = 0def increment(): global counter # 声明使用全局变量 counter += 1increment()print(counter) # 输出: 1
# 创建变量temp_data = "临时数据"print(temp_data) # 输出: 临时数据# 删除变量del temp_data# print(temp_data) # 错误:变量已被删除,NameError: name 'temp_data' is not defined
五、总结
Python变量是编程的基础,理解变量的本质、作用、命名规则和使用方法是掌握Python的关键。记住:
变量是数据的引用,而不是数据本身
命名要清晰明确,遵循命名规范
Python是动态类型语言,变量类型可以改变
合理使用变量可以提高代码的可读性和可维护性
【微语】人生的层次:生存,苟活,小成,大成,开心,从容,忘我,无我。