搜尋
首頁後端開發Python教學跟老齐学Python之赋值,简单也不简单

变量命名

在《初识永远强大的函数》一文中,有一节专门讨论“取名字的学问”,就是有关变量名称的问题,本温故而知新的原则,这里要复习:

名称格式:(下划线或者字母)+(任意数目的字母,数字或下划线)

注意:
 1.区分大小写
 2.禁止使用保留字
 3.遵守通常习惯
 •以单一下划线开头的变量名(_X)不会被from module import *语句导入的。
 •前后有下划线的变量名(X)是系统定义的变量名,对解释器有特殊意义。
 •以两个下划线开头,但结尾没有两个下划线的变量名(__X)是类本地(压缩)变量。
 •通过交互模式运行时,只有单个下划线变量(_)会保存最后的表达式结果。
 
需要解释一下保留字,就是python里面保留了一些单词,这些单词不能让用户来用作变量名称。都有哪些呢?(python2和python3少有差别,但是总体差不多)

代码如下:


and 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 yield

需要都记住吗?当然不需要了。一方面,可以在网上随手查到,另外,还能这样:

代码如下:

>>> not = 3
  File "", line 1
    not = 3
        ^
SyntaxError: invalid syntax

>>> pass = "hello,world"
  File "", line 1
pass = "hello,world"
         ^
SyntaxError: invalid syntax

 在交互模式的实验室中,用保留字做变量,就报错了。当然,这时候就要换名字了。

以上原则,是基本原则。在实际编程中,大家通常还这样做,以便让程序更具有可读性:
 •名字具有一定的含义。比如写:n = "qiwsir",就不如写:name = "qiwsir"更好。
 •名字不要误导别人。比如用account_list指一组账号,就会被人误解为是list类型的数据,事实上可能是也可能不是。所以这时候最好换个名称,比如直接用accounts。
 •名字要有意义的区分,有时候你可能会用到a1,a2之类的名字,最好不要这么做,换个别的方式,通过字面能够看出一定的区分来更好。
 •最好是名称能够读出来,千万别自己造英文单词,也别乱用所写什么的,特别是贵国的,还喜欢用汉语拼音缩写来做为名字,更麻烦了,还不如全拼呢。最好是用完整的单词或者公认的不会引起歧义的缩写。
 •单个字母和数字就少用了,不仅是显得你太懒惰,还会因为在一段代码中可能有很多个单个的字母和数字,为搜索带来麻烦,别人也更不知道你的i和他理解的i是不是一个含义。
 
总之,取名字,讲究不少。不论如何,要记住一个标准:明确

赋值语句

对于赋值语句,看官已经不陌生了。任何一个变量,在python中,只要想用它,就要首先赋值。

语句格式:变量名称 = 对象

上一节中也分析了赋值的本质。

还有一种赋值方式,叫做隐式赋值,通过import、from、del、class、for、函数参数。等模块导入,函数和类的定义,for循环变量以及函数参数都是隐式赋值运算。这方面的东西后面会徐徐道来。

代码如下:


>>> name = "qiwsir"

>>> name, website = "qiwsir","qiwsir.github.io"     #多个变量,按照顺序依次赋值
>>> name
'qiwsir'
>>> website
'qiwsir.github.io'

>>> name, website = "qiwsir"    #有几个变量,就对应几个对象,不能少,也不能多
Traceback (most recent call last):
  File "", line 1, in
ValueError: too many values to unpack

 如果这样赋值,也得两边数目一致:

代码如下:


>>> one,two,three,four = "good"
>>> one
'g'
>>> two
'o'
>>> three
'o'
>>> four
'd'

 这就相当于把good分拆为一个一个的字母,然后对应着赋值给左边的变量。

代码如下:


>>> [name,site] = ["qiwsir","qiwsir.github.io"]
>>> name
'qiwsir'
>>> site
'qiwsir.github.io'
>>> name,site = ("qiwsir","qiwsir.github.io")
>>> name
'qiwsir'
>>> site
'qiwsir.github.io'

 这样也行呀。

其实,赋值的样式不少,核心就是将变量和某对象对应起来。对象,可以用上面的方式,也许是这样的

代码如下:


>>> site = "qiwsir.github.io"
>>> name, main = site.split(".")[0], site.split(".")[1]   #还记得str.split()这个东东吗?忘记了,google一下吧。
>>> name
'qiwsir'
>>> main
'github'

 增强赋值

这个东西听名字就是比赋值强的。

在python中,将下列的方式称为增强赋值:

增强赋值语句 等价于语句
x+=y x = x+y
x-=y x = x-y
x*=y x = x*y
x/=y x = x/y

其它类似结构:x&=y  x|=y  x^=y  x%=y  x>>=y x

看下面的例子,有一个list,想得到另外一个列表,其中每个数比原来list中的大2。可以用下面方式实现:

代码如下:


>>> number
[1, 2, 3, 4, 5]
>>> number2 = []
>>> for i in number:
...     i = i+2
...     number2.append(i)
...
>>> number2
[3, 4, 5, 6, 7]

 如果用上面的增强赋值,i = i+2可以写成 i +=2,试一试吧:

代码如下:


>>> number
[1, 2, 3, 4, 5]
>>> number2 = []
>>> for i in number:
...     i +=2
...     number2.append(i)
...
>>> number2
[3, 4, 5, 6, 7]

 这就是增强赋值。为什么用增强赋值?因为i +=2,比i = i+2计算更快,后者右边还要拷贝一个i。

上面的例子还能修改,别忘记了list解析的强大功能呀。

代码如下:


>>> [i+2 for i in number]
[3, 4, 5, 6, 7]

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何为VMware虚拟机启用复制和粘贴如何为VMware虚拟机启用复制和粘贴Feb 21, 2024 am 10:09 AM

您可以轻松地在VMware虚拟机(VM)和物理系统之间复制和粘贴文本和文件。这种功能让您可以方便地在虚拟机和主机系统之间传输图像、格式化和非格式化文本,甚至电子邮件附件。本文将向您展示如何启用这一功能,并演示复制数据、文件和文件夹的方法。如何在VMware中启用复制/粘贴VMware提供了三种不同的方式将数据、文件或文件夹从虚拟机复制到物理计算机,反之亦然,如下所述:复制和粘贴要素拖放功能文件夹共享1]使用VMware工具启用复制粘贴如果您的VMWare安装和来宾操作系统满足要求,则可以使用键盘

如何在Word中复制页面如何在Word中复制页面Feb 20, 2024 am 10:09 AM

是否要复制MicrosoftWord中的页面,并保持格式不变?这是一个聪明的想法,因为当您想要创建特定文档布局或格式的多个副本时,在Word中复制页面可能是一种有用的节省时间的技术。本指南将逐步引导您在Word中复制页面的过程,无论是创建模板还是复制文档中的特定页面。这些简单的说明旨在帮助您轻松地重新制作页面,省去从头开始的麻烦。为什么要在MicrosoftWord中复制页面?在Word中复制页面非常有益的原因有以下几点:当您有一个具有特定布局或格式的文档要复制时。与从头开始重新创建整个页面不同

在终端中禁用或启用自动复制所选内容以进行复制在终端中禁用或启用自动复制所选内容以进行复制Mar 24, 2024 am 09:46 AM

本文将向您介绍如何在Windows终端中启用或禁用自动将选择内容复制到剪贴板的功能。Windows终端是微软专为Windows11/10开发的多标签终端模拟器,取代了传统的命令提示符。它支持运行命令提示符、PowerShell、WSL、Azure等应用程序。通常在终端工作时,用户需要复制命令和输出,然而终端默认情况下不支持复制选择操作。请继续阅读本文,了解如何解决这个问题。如何在终端中启用或禁用自动复制所选内容到缓存?以下是您如何启用或禁用自动复制选择到终端剪贴板:打开终端应用程序,然后点击上面

解锁 macOS 剪贴板历史记录,高效复制、粘贴技巧解锁 macOS 剪贴板历史记录,高效复制、粘贴技巧Feb 19, 2024 pm 01:18 PM

在Mac上,经常需要在不同文档之间复制和粘贴内容是常见的。macOS的剪贴板只保留最后一个复制项,这限制了我们的工作效率。幸运的是,有一些第三方应用程序可以帮助我们轻松查看和管理剪贴板的历史记录。如何在「访达」中查看剪贴板内容「访达」中内置了一个剪贴板查看器,让你可以随时查看当前剪贴板中的内容,以免错误粘贴。操作非常简单:打开「访达」,点击「编辑」菜单,然后选择「显示剪贴板」。在「访达」中查看剪贴板内容这个功能虽小,却有几点需要注意:「访达」中的剪贴板查看器只能显示内容,无法编辑。如果你复制的是

php中赋值方式有哪些php中赋值方式有哪些Jul 26, 2023 pm 01:11 PM

php中赋值方式有:1、直接赋值,使用"="操作符直接为变量赋值;2、引用赋值,使用"=&"操作符,将一个变量的引用赋给另一个变量;3、动态赋值,通过变量名的字符串形式,使用可变变量进行赋值;4、数组赋值,将一个数组赋给另一个变量;5、列表赋值,将一个数组的值赋给一组变量,一次可以赋多个值;6、对象赋值,将一个对象赋给一个变量;7、使用赋值运算符的扩展形式,如+=、-=等。

技巧和注意事项:不同的字符串数组赋值方法技巧和注意事项:不同的字符串数组赋值方法Dec 26, 2023 am 11:30 AM

使用不同方式给字符串数组赋值的技巧与注意事项简介:在编程中,经常需要使用数组来存储一组相关数据。尤其是在处理字符串时,经常需要使用字符串数组来存储多个字符串。本文将介绍一些常用的方法,给字符串数组赋值的技巧和注意事项,并提供代码示例。直接赋值直接赋值是最简单的一种方式,可以在声明字符串数组的同时,直接给数组元素赋值。示例代码如下:String[]fruit

字符串数组赋值方式有哪些字符串数组赋值方式有哪些Dec 25, 2023 pm 05:07 PM

常见编程语言中字符串数组的赋值方式:1、Python:“string_array = ["apple", "banana", "cherry"]”;2、Java:“String[] stringArray = {"apple", "banana", "cherry"}”;3、C++等等。

学习Golang中的变量定义和赋值学习Golang中的变量定义和赋值Jan 18, 2024 am 10:00 AM

Golang中变量的定义与赋值,需要具体代码示例在Golang中,变量的定义和赋值是非常简单和直观的。本文将通过具体的代码示例来介绍Golang中变量的定义和赋值。首先,我们来看看Golang中变量的定义。在Golang中,变量的定义可以使用var关键字来完成。具体的语法如下所示:var变量名类型其中,var表示变量的定义关键字,变量名为你自己定义的变量

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)