ホームページ バックエンド開発 Python チュートリアル 跟老齐学Python之赋值,简单也不简单

跟老齐学Python之赋值,简单也不简单

Jun 06, 2016 am 11:32 AM
割り当て

变量命名

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

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

注意:
 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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VMware 仮想マシンのコピー アンド ペーストを有効にする方法 VMware 仮想マシンのコピー アンド ペーストを有効にする方法 Feb 21, 2024 am 10:09 AM

VMware 仮想マシン (VM) と物理システム間でテキストやファイルを簡単にコピー アンド ペーストできます。この機能を使用すると、仮想マシンとホスト システムの間で、画像、書式設定済みおよび書式なしのテキスト、さらには電子メールの添付ファイルを簡単に転送できます。この記事では、この機能を有効にする方法と、データ、ファイル、フォルダーをコピーする方法を示します。 VMware でコピー/ペーストを有効にする方法 VMware では、次に説明するように、データ、ファイル、またはフォルダを仮想マシンから物理コンピュータに、またはその逆にコピーするための 3 つの異なる方法を提供しています。 要素のコピー アンド ペースト ドラッグ アンド ドロップ機能 フォルダ共有 1 ] コピーを有効にする-VMware Tools を使用して貼り付けます。VMWare インストールとゲスト OS が要件を満たしている場合は、キーボードを使用できます。

Wordでページをコピーする方法 Wordでページをコピーする方法 Feb 20, 2024 am 10:09 AM

Microsoft Word でページをコピーし、書式設定をそのまま維持したいですか? Word でページを複製すると、特定の文書レイアウトまたは形式のコピーを複数作成する場合に時間の節約に役立つため、これは賢明なアイデアです。このガイドでは、テンプレートを作成する場合でも、文書内の特定のページをコピーする場合でも、Word でページをコピーする手順を段階的に説明します。これらの簡単な手順は、最初から始めなくてもページを簡単に再作成できるように設計されています。 Microsoft Word でページをコピーする必要があるのですか? Word でページをコピーすることが非常に有益である理由はいくつかあります。 特定のレイアウトまたは形式の文書をコピーしたい場合。ページ全体を最初から再作成するのとは異なります

ターミナルでのコピーの自動コピー選択を無効または有効にする ターミナルでのコピーの自動コピー選択を無効または有効にする Mar 24, 2024 am 09:46 AM

この記事では、Windows ターミナルでクリップボードへの選択内容の自動コピーを有効または無効にする方法を説明します。 Windows ターミナルは、Microsoft が Windows 11/10 向けに特別に開発したマルチタブ ターミナル エミュレータで、従来のコマンド プロンプトに代わるものです。コマンド プロンプト、PowerShell、WSL、Azure などのアプリケーションの実行をサポートします。多くの場合、ターミナルで作業する場合、ユーザーはコマンドと出力をコピーする必要がありますが、ターミナルはデフォルトでは選択操作のコピーをサポートしていません。この問題を解決する方法については、この記事を読み続けてください。ターミナルのキャッシュへの選択内容の自動コピーを有効または無効にするにはどうすればよいですか?ターミナル クリップボードへの選択内容の自動コピーを有効または無効にする方法は次のとおりです。 ターミナル アプリケーションを開き、上をクリックします。

macOS のクリップボード履歴のロックを解除し、効率的なコピー アンド ペーストのテクニックを使用する macOS のクリップボード履歴のロックを解除し、効率的なコピー アンド ペーストのテクニックを使用する Feb 19, 2024 pm 01:18 PM

Mac では、異なるドキュメント間でコンテンツをコピーして貼り付ける必要があるのが一般的です。 macOS のクリップボードには最後にコピーされた項目のみが保持されるため、作業効率が制限されます。幸いなことに、クリップボード履歴を簡単に表示および管理できるサードパーティ製アプリケーションがいくつかあります。 Finder でクリップボードの内容を表示する方法 Finder にはクリップボード ビューアが組み込まれており、現在のクリップボードの内容をいつでも表示して、貼り付けエラーを回避できます。操作は非常に簡単です。Finder を開き、[編集] メニューをクリックして、[クリップボードを表示] を選択します。 Finder でクリップボードの内容を表示する機能は小さいですが、いくつか注意点があります。Finder のクリップボード ビューアは内容を表示するだけで、編集することはできません。コピーした場合

phpの代入メソッドにはどのようなものがありますか? phpの代入メソッドにはどのようなものがありますか? Jul 26, 2023 pm 01:11 PM

PHP の代入方法には、1. 直接代入: "= 演算子を使用して値を変数に直接代入します。2. 参照代入: "=&" 演算子を使用して変数への参照を別の変数に代入します。 3. 動的代入、変数名の文字列形式を通じて値を割り当てる変数変数の使用、4. 配列代入、別の変数への配列の代入、5. 変数のセットへの配列の値の代入、リスト代入、 1 つの値に複数の代入を行うことができます; 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 " ", "チェリー"}"; 3. C++ など。

Golang での変数の定義と代入を学習する Golang での変数の定義と代入を学習する Jan 18, 2024 am 10:00 AM

Golang での変数の定義と割り当てには、特定のコード例が必要ですが、Golang では、変数の定義と割り当ては非常にシンプルで直感的です。この記事では、具体的なコード例を通して、Golang における変数の定義と代入を紹介します。まず、Golang における変数の定義を見てみましょう。 Golang では、変数の定義は var キーワードを使用して行うことができます。具体的な構文は次のとおりです: var 変数名 type このうち、var は変数の定義キーワードを表し、変数名は定義する変数です。

See all articles