首页 > 编程语言 >【python系列】python之变量赋值操作

【python系列】python之变量赋值操作

时间:2024-11-13 17:20:00浏览次数:3  
标签:10 变量 python 下划线 Python 变量名 赋值

1.前言

变量是什么?我们学任何什么东西,都要从定义入手,只有清晰且无歧义的定义,才能真正理解这个概念是什么意思。
维基百科的定义:

在数学、物理学中,变量(variable)又称变数,是表达式或公式中,没有固定的值而可以变动的数或量;该数或量可以是随意的,也可能是未指定或未定的。——Wikipedia

从字面意思理解就是变数,它是一个动词,也可以理解成我们脑海里每一个念头,也就是七情六欲。
从大脑的角度来理解,就是什么跟什么,用符号来表示就是:?=?
表达形式就是,等号 = 左边是一个变量名,等号 = 右边是存储在变量中的值。

既然你知道了什么是变量及变量的表达形式,这里边又涉及到两个问题,变量名和变量值是不是可以随便写,人的脑子可以随便想,那是你的自由,就像美国有八十多个性别,但是你别当回事啊,当回事那不乱套了。所以计算机不能这么胡来,计算机是模拟人脑的一个工具,一定是从无序到有序的这样一个过程,那么变量名和变量值都有哪些要求得。

2.变量命名规则和要求

在 Python 中,变量名 和 变量值 都有一定的命名规则和要求。变量名代表了存储数据的标识符,而变量值则是你赋给变量的实际数据。

2.1 变量名的要求

变量名是用来标识数据的名称,它遵循一些特定的规则和约定。Python 对变量名有以下要求:

2.1.1 变量名必须以字母或下划线(_)开头
  • 变量名可以包含字母(a-z 和 A-Z)、数字(0-9)和下划线(_),但它不能以数字开头。
my_var = 10    # 有效
var_1 = 20     # 有效
1var = 30      # 无效,不能以数字开头
2.1.1.2 变量名只能包含字母、数字和下划线
  • 除了字母、数字和下划线外,不能使用其他特殊符号,如空格、连字符(-)、点号(.)、感叹号(!)等。
my_var = 10      # 有效
my-var = 10      # 无效,不能使用连字符
my.var = 10      # 无效,不能使用点
2.1.1.3 大小写敏感
  • Python 是区分大小写的,也就是说,myVar 和 myvar 被视为两个不同的变量。
myVar = 10
myvar = 20
print(myVar)  # 输出 10
print(myvar)  # 输出 20
2.1.1.4 不能使用 Python 保留字
  • Python 具有一组 保留字(关键字),这些是 Python 的语法元素,不能作为变量名使用。可以通过 keyword 模块查看所有的保留字。
import keyword
print(keyword.kwlist)  # 打印所有关键字

示例:if, for, while, class 等是保留字,不能作为变量名。

2.1.1.5 有意义的命名
  • 尽管这不是严格的规则,但 Python 强烈建议使用有意义的、能描述变量内容的名称。这有助于代码的可读性和可维护性。

例如:

age = 25       # 比 x = 25 更具可读性
total_price = 100.50

2.2. 特殊字符和变量名

Python 不允许在变量名中使用许多特殊字符(如 !, @, #, $, % 等),但有以下两种情况可以使用特殊符号:

2.2.2.1 下划线 _
  • 下划线是唯一可以在变量名中使用的特殊符号。它在 Python 中有特殊意义,用于表示 “私有” 变量(如 _my_var),或者用于分隔词(如 my_variable)。

  • 单下划线 _ 作为变量名的前缀,通常用于表示该变量是内部使用的(私有变量),虽然它不是真正的私有。

  • 双下划线 __ 作为变量名的前缀,Python 会进行名称改写(name mangling),例如 __my_var。

_my_var = 10   # 以单下划线开始,表示“私有”变量
my_var_2 = 20  # 有效的变量名
2.2.2.2 双下划线 __
  • 双下划线前缀(如 __var)用于类中的私有成员变量,但它也有一个特殊的用途:名称改写(name mangling),Python 会改变变量的名称以避免与子类的同名属性冲突。
class MyClass:
    def __init__(self):
        self.__private_var = 10  # 双下划线表示私有变量

obj = MyClass()
print(obj.__private_var)  # 会抛出 AttributeError

使用 __ 前缀并不会使变量真正私有,只是改变了变量的名称,例如:_MyClass__private_var,这样做的目的是防止子类覆盖父类的私有变量。

2.2.3. 变量值的要求

变量值是你赋给变量的实际数据,可以是 Python 中的任何数据类型,如数字、字符串、列表、字典等。变量值没有严格的格式要求,但是应符合其数据类型的规范:

  • 数字类型:可以是整数、浮点数或复数。
x = 10           # 整数
y = 3.14         # 浮点数
z = 2 + 3j       # 复数
  • 字符串类型:可以是单引号或双引号括起来的文本。
s1 = "Hello"
s2 = 'World'
  • 集合类型:可以是列表、元组、集合等。
lst = [1, 2, 3]    # 列表
tup = (1, 2, 3)    # 元组
  • 布尔值:True 或 False。
flag = True
  • 字典类型:键值对的集合。
my_dict = {"name": "Alice", "age": 25}

2.4. 变量命名的最佳实践

  • 除了遵守语法规则外,Python 中也有一些关于变量命名的最佳实践:

使用 小写字母和下划线(snake_case)来命名变量。

total_price = 100
first_name = "John"
  • 避免使用与 Python 内建函数、类或模块同名的变量名,如 list, str, int 等。

  • 使用有意义的变量名,能表达变量的作用和内容。

2.5. 总结
  • 变量名要求:必须以字母或下划线开头,可以包含字母、数字和下划线,不能包含其他特殊符号,且区分大小写。
  • 特殊符号:Python 只允许使用下划线作为合法的特殊符号。
  • 变量值:可以是任何合法的 Python 数据类型,如整数、浮点数、字符串、列表、字典等。

3.变量赋值不同的写法和方式

在 Python 中,变量赋值有多种不同的写法和方式,根据需求和代码风格可以选择不同的赋值方式。针对初学者,前三种赋值方式必须要掌握,后面几种赋值方式只作为了解。以下是一些常见的变量赋值写法:

3.1. 基本赋值

最简单的赋值方式是将一个值赋给一个变量:

x = 10
name = "Alice"

3.2. 多重赋值

Python 允许一次赋值多个变量,可以使用逗号分隔:

x, y, z = 1, 2, 3

这会将 x 赋值为 1,y 赋值为 2,z 赋值为 3。

3.3. 交换变量值

Python 允许通过多重赋值轻松交换两个变量的值:

x, y = y, x  # 交换 x 和 y 的值

3.4. 默认值赋值

如果变量没有初始化,使用 = 进行普通赋值。如果想要为变量提供默认值,可以使用如下方式:

x = x if x is not None else 10  # 若 x 为 None,则赋值为 10

3.5. 扩展解包赋值

Python 允许对可迭代对象进行解包并赋值到多个变量中,支持收集剩余部分到列表或元组中:

a, *b, c = [1, 2, 3, 4, 5]
# a = 1, b = [2, 3, 4], c = 5

这种方法可以将中间的多个元素收集到 b 列表中。

3.6. 列表推导式赋值

可以通过列表推导式或生成器表达式来动态生成并赋值:

x = [i**2 for i in range(5)]  # x = [0, 1, 4, 9, 16]

3.7. 字典赋值

字典赋值可以使用键值对的方式,直接给字典中的某个键赋值:

my_dict = {}
my_dict["name"] = "Alice"
my_dict["age"] = 30

3.8. or 赋值(常用于给变量设置默认值)

可以使用 or 进行赋值,这样当变量为 None、False、0 或其他空值时,会使用右侧的默认值:

x = x or 10  # 如果 x 为假值(例如 None 或 0),就赋值为 10

3.9. += 增量赋值

Python 支持通过增量操作符进行赋值,这是一种简洁的表达式:

x = 10
x += 5  # 相当于 x = x + 5,x 现在是 15

3.10. * 运算符赋值(解包赋值)

在函数参数传递时,你也可以使用 * 来解包并进行赋值:

def func(*args):
    a, b, *rest = args
    print(a, b, rest)

func(1, 2, 3, 4)  # 输出: 1 2 [3, 4]

3.11. 字典解包赋值

Python 3.5+ 允许字典解包,简化字典的合并操作:

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3}
merged_dict = {**dict1, **dict2}  # 合并两个字典

3.12. lambda 表达式赋值

可以将 lambda 表达式赋值给变量,用于创建匿名函数:

square = lambda x: x**2
print(square(5))  # 输出: 25

3.13. 类型注解赋值

Python 3.5+ 引入了类型注解,可以在变量赋值时指定类型:

x: int = 10
name: str = "Alice"

3.14. 常量赋值

Python 中没有常量的概念,但有些开发者使用全大写的变量名作为常量标志,表示这些值不应该被修改:

PI = 3.14159  # 常量赋值

3.15. global 和 nonlocal 赋值

在函数或作用域内,global 和 nonlocal 可以用来访问和修改外部作用域(如全局变量或闭包变量)的变量:

x = 10

def func():
    global x
    x = 20  # 修改全局变量 x
    print(x)

func()  # 输出 20

def outer():
    x = 10

    def inner():
        nonlocal x
        x = 20  # 修改外层函数的变量 x
        print(x)

    inner()

outer()  # 输出 20

Python 提供了多种不同的变量赋值方式,支持基本赋值、多重赋值、解包赋值等多种灵活方式。在日常编程中,可以根据具体的需求选择最合适的赋值写法,保持代码简洁和可读性。

4.总结

通过这篇文章,我相信大家已经掌握了这个小小的变量操作,看起来很繁琐,事实上确实挺繁琐,不过不要气馁,还是有章法可循得。
以下内容是需要反复记忆和练习得:

  • 理解并记忆变量赋值的含义
  • 练习并记忆变量的命名规则,练和记相辅相成
  • 变量赋值的姿势多种多样,但是基本赋值、多重赋值、交叉赋值是必须要掌握,其他变量赋值也重要,目前只作为了解,饭要一口一口吃。

补充一点:学习一个新知识,我们知道概念才是学习的核心和思考的核心。除了清晰准确的记忆和理解定义,还需要知道集合概念,集合概念类似于变量赋值的多样性,这个时候我们就需要做分类、比较、应用,这么多种变量赋值方式告诉我们什么,编程最核心的目的是传达感知,也就是求一个变量值,但是每个人的想法和表达的方式都不一样,我们现在在做得就是学习他们更高级的思考方式和表达方式,也许这就是编程学习的乐趣。

头发秃了不要紧最主要是武装我们的头脑。

当你读到这里时,说明你是一个认真学习的同学,如果对你有很大帮助,欢迎点赞、关注、赞赏!

未完待续,持续更新中…

标签:10,变量,python,下划线,Python,变量名,赋值
From: https://blog.csdn.net/gaolc888/article/details/143738888

相关文章

  • Python爬虫知识体系-----正则表达式-----持续更新
    数据科学、数据分析、人工智能必备知识汇总-----Python爬虫-----持续更新:https://blog.csdn.net/grd_java/article/details/140574349文章目录一、正则基础1.为什么使用正则2.正则与re模块简介二、正则表达式1.匹配单个字符与数字2.限定符3.定位符4.选择匹配符5.......
  • python实现赛博宠物(纯代码无需素材)
    1、创作背景    今天如往常一样来上班,一进公司就看见财务小姐姐闷闷不乐,就走过去跟她聊天,她说她很想养一只小狗,但是家里面不同意,怕把家里弄得乱七八糟。看着小姐姐悲伤的样子,我恏大力最舍不得小姐姐不开熏,所以我恏大力就要出来帮助美丽的财务小姐姐咯。2、技术选择......
  • 忽悠财务小姐姐神器(python实现3D爱心)
    1、设计背景        最近在网上看到了很多粒子爱心的python源码,所以就突发奇想也做一个爱心,但是粒子爱心这么多人做了就没什么意思了,那我就来做一个3D粉嫩旋转爱心,要的就是别出心裁,出人意料。这发给财务小姐姐,我恏大力的春天不就来了!!2、使用技术        这......
  • Python 桌面应用开发:使用 Tkinter 创建 GUI 应用程序
    Python桌面应用开发:使用Tkinter创建GUI应用程序引言随着计算机技术的飞速发展,桌面应用程序依然在许多领域中发挥着重要作用。Python作为一种强大的编程语言,提供了多种工具和库来创建桌面应用程序。其中,Tkinter是Python的标准GUI(图形用户界面)库,易于使用且功能强......
  • python毕设毕业设计管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于毕业设计管理系统的研究,现有研究主要以传统的管理模式为主,专门针对使用Python开发的毕业设计管理系统的研究较少。在当前教育环境......
  • Python Web 应用开发基础知识
    PythonWeb应用开发基础知识引言随着互联网的快速发展,Web应用程序的需求日益增加。Python作为一种简单易学且功能强大的编程语言,已经成为Web开发中广受欢迎的选择之一。本文将深入探讨PythonWeb开发的基础知识,包括常用框架、基本概念、数据库交互以及前后端分离等......
  • 2024 同一个网段,反弹shell四种方法【linux版本】bash、python、nc、villian反弹shell
    实验环境准备(同一个网段下,我是桥接的虚拟机)一、bash反弹shell二、python反弹shell三、nc反弹shell四、villain反弹shell实验环境准备(同一个网段下,我是桥接的虚拟机)      一台kali的linux(攻击者)        一台centos7/debian[另一个linux](受害者)一、b......
  • 免费送源码:Java+python+django+MySQL 小区疫情订菜系统 计算机毕业设计原创定制
    摘 要随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于小区疫情订菜系统当然也不能排除在外,随着网络技术的不断成熟,带动了小区疫情订菜系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种......
  • Windows 下安装miniconda 虚拟python环境,搭配 VS Code
    miniconda下载地址https://docs.anaconda.com/miniconda/miniconda-install/miniconda仓库:https://repo.anaconda.com/miniconda/可以按照官方文档校验哈希值,本次在Windows安装,不设置环境变量。从Anacondaprompt启动。2.配置国内源查看源设置condaconfig--show-so......
  • python装饰器decorator的应用
    python中的装饰器类似于java中的AOP切面编程的思想,下面通过demo教大家如何实现(1)一个最简单的装饰器demo1 #一个最简单的装饰器defmy_decorator(func):defwrapper():print("Somethingishappeningbeforethefunctioniscalled.")func()......