Python学習(オン)

パイソン

1. Pythonの役割

コンピューターを使って多くの作業を行うと、最終的には自動化したいタスクがいくつかあることに気づくでしょう。たとえば、多数のテキスト ファイルで検索/置換を実行したり、複雑な方法で多数の画像の名前を変更したり整理したりする必要があるとします。おそらく、小さなカスタム データベース、特別な GUI アプリケーション、または単純な小さなゲームを作成したいと思うかもしれません。

プロのソフトウェア開発者であれば、いくつかの C/C++/JAVA クラス ライブラリを使用する必要があり、通常の書き込み、コンパイル、テスト、再コンパイルのサイクルが非常に長いことに気づくかもしれません。おそらく、これらのライブラリのテスト ケースを作成していると思いますが、これは面倒な作業だと感じています。あるいは、拡張言語を使用できるプログラムは完成したが、そのプログラム用にまったく新しい言語を再設計して実装したくない場合もあります。

その場合、Python はまさに必要な言語です。

Unix シェル スクリプトや Windows バッチ ファイルを作成してこれらのタスクの一部を処理することもできますが、シェル スクリプトは、GUI アプリケーションやゲームの作成ではなく、ファイルの移動やテキスト データの変更に適しています。プログラムは C/C++/JAVA で作成できますが、単純な初稿プログラムを作成するだけでも、開発に多くの時間を費やす可能性があります。対照的に、Python は使いやすく、Windows、Mac OS X、Unix オペレーティング システムのいずれの場合でも、作業をより迅速に完了するのに役立ちます。

Python は使いやすいですが、完全なプログラミング言語であり、シェル スクリプトやバッチ ファイルよりも多くの構造と大規模なプログラムの作成をサポートします。一方、Python は C よりも多くのエラー チェックを提供し、高級言語であるため、高度なデータ構造タイプのサポートが組み込まれています。例: 柔軟な配列と辞書。Python はより一般的なデータ型のため、Awk や Perl よりも多くの問題領域に適用でき、少なくともほとんどのことは Python で他の言語と同じくらい簡単です。

Python を使用すると、プログラムをさまざまなモジュールに分割して、他の Python プログラムで再利用できます。Python には、プログラムの基礎として、または Python プログラミングを学習するためのサンプルとして使用できる多数の標準モジュールが付属しています。これらのモジュールは、ファイル I/O、システム コール、ソケット サポート、さらには Tk のようなグラフィカル ユーザー インターフェイス (GUI) ツールキット インターフェイスなどの機能を提供します。

Python はインタープリタ言語であり、コンパイルやリンクの必要がないため、プログラム開発の貴重な時間を節約できます。Python インタープリターは対話的に使用できるため、言語機能の実験、アドホック プログラムの作成、またはボトムアップ プログラム開発でのメソッドのテストが容易になります。デスクトップ電卓としても使用できます。

Python を使用すると、プログラムがコンパクトで読みやすくなります。Python で作成されたプログラムは、通常、次のような理由から、同等の C、C++、または Java プログラムよりも短くなります。

  • 高度なデータ構造により、複雑な操作を 1 つのステートメントで表現できます。

  • ステートメントのグループは、左中括弧と右中括弧の代わりにインデントを使用して編成されます。

  • 変数やパラメータを宣言する必要はありません。

Python は拡張可能です。C でプログラムできる場合は、組み込み関数やモジュールをインタプリタに簡単に追加したり、パフォーマンスのボトルネックを最適化したり、Python プログラムをバイナリ形式のみのライブラリ (プロ仕様の商用グラフィック ライブラリなど) にリンクしたりすることができます。一度コツを掴めば、Python インタープリターを C アプリケーションに統合し、そのプログラムの拡張機能またはコマンドライン言語として使用できるようになります。

ちなみに、この言語の名前はBBCの番組「モンティ・パイソンのフライング・シレカス」に由来しており、爬虫類とは何の関係もありません。ドキュメント内でモンティ パイソンの言及を引用することは可能であるだけでなく、推奨されます。

Python に興味を持った皆さんは、さらに詳しく知りたいと思うでしょう。言語を学習する最善の方法は言語を使用することです。このガイドでは、読みながら Python インタープリターの使用を練習することをお勧めします。

2. Python インタープリターの使用

2.1. Python インタープリターの呼び出し

Python インタープリターは通常、ターゲット マシンの /usr/local/bin/python3.5 ディレクトリにインストールされます。Unix シェルの検索パスに /usr/local/bin ディレクトリを含めて、「python3.5」コマンドを入力して起動できるようにします。Python インタープリターのインストール パスはオプションであるため、他のパスも可能であり、Python をインストールしたユーザーまたはシステム管理者に確認できます (たとえば、/usr/local/python が一般的な選択です)。

Windows マシンでは、Python は通常 C:\Python35 にインストールされますが、インストール ウィザードの実行時にこの値を変更できます。このディレクトリを PATH 環境変数に追加するには、DOS ウィンドウに次のコマンドを入力します。

パスを設定=%path%;C:\python35

通常、メイン ウィンドウにファイル終了文字 (Unix システムでは Control-D、Windows システムでは Control-Z) を入力して、インタープリタをステータス コード 0 で終了させることができます。それが機能しない場合は、quit() コマンドを入力してインタープリタを終了できます。

Python インタープリターには、単純な行編集機能があります。Unix システムでは、Python インタプリタに GNU readline ライブラリのサポートが追加されている可能性があり、これにより、きちんと対話型の編集や履歴などが可能になります。コマンドライン編集がサポートされているかどうかを確認するには、Python のメイン ウィンドウで Control-P を入力するのがおそらく最も簡単な方法です。ビープ音 (コンピューターのスピーカー) が鳴る場合は、コマンド ライン編集機能を使用できることを意味します。その他のショートカット キーについては、「対話型入力ライン編集履歴のバックトラック」を参照してください。音が鳴らない場合、または ^P 文字が表示される場合、コマンド ライン編集は無効になっており、バックスペースで現在の行から入力した文字を削除し、再入力することしかできません。

Python インタプリタは、Unix シェルに似た動作をします。標準入力として端末デバイス (tty) を使用して呼び出された場合は、コマンドを解釈して対話的に実行します。ファイル名引数または標準入力としてファイルを使用して呼び出された場合は、ファイルを読み取り、スクリプトとして実行します。

Python インタープリターを開始する 2 番目の方法は python -c command [arg] ... です。この方法では、シェルの -c オプションと同様に、コマンド ラインで Python ステートメントを実行できます。Python ステートメントにはスペースやその他の特殊なシェル文字が含まれることが多いため、通常はコマンドを一重引用符で囲むことをお勧めします。

スクリプトとしても使用できる Python モジュールがいくつかあります。python -m module [arg] ... コマンドを使用してこれらを呼び出すことができます。これは、コマンド ラインに完全なパス名を入力してモジュール ソース ファイルを実行するのと似ています。

スクリプト ファイルを使用する場合は、スクリプトを実行してから対話モードに入るのが一般的です。これは、スクリプトの先頭に -i パラメータを追加することによっても実行できます。

2.1.1. パラメータの受け渡し

インタプリタが呼び出されると、スクリプト名と追加の引数が sys.argv という文字列のリストに渡されます。このリストは import sys を実行することで取得できます。リストの長さは 1 以上です。スクリプトとパラメータが指定されていない場合は、少なくとも 1 つの要素も含まれます。sys.argv[0] はこの時点では空の文字列です。スクリプト名が '-' (標準入力) として指定された場合、sys.argv[0] は '-' に設定され、-c コマンドが使用された場合、sys.argv[0] は '-c' に設定されます。-m module 引数を使用すると、sys.argv[0] は指定されたモジュールの完全名に設定されます。-c コマンドまたは -m モジュールに続くパラメーターは、Python インタープリターのオプション処理メカニズムによってインターセプトされませんが、スクリプト コマンド操作のために sys.argv に残ります。

2.1.2. インタラクティブモード

tty からコマンドを読み取るとき、インタープリターは対話モードで動作すると言います。このモードでは、通常は 3 つの不等号 (>>>) で識別されるマスター プロンプトから実行され、継続はスレーブ プロンプトと呼ばれ、3 つのドット (…) で識別されます。最初の行の前に、インタープリターはウェルカム メッセージ、バージョン番号、および認証プロンプトを出力します。

$ python3.5
Python 3.5 (default, Mar 16 2014, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

複数行の構成要素 (たとえば、次の if ステートメント) を入力するときに、スレーブ プロンプトが必要になりました。

>>> the_world_is_flat = 1
>>> if the_world_is_flat:
...     print("Be careful not to fall off!")
...
Be careful not to fall off!

インタラクティブ モードの詳細については、「インタラクティブ モード」を参照してください。

2.2. インタプリタとその環境

2.2.1. ソースコード

デフォルトでは、Python ソース ファイルは UTF-8 でエンコードされます。このエンコーディングでは、世界中のほとんどの言語の文字を文字列、識別子、およびコメントで同時に使用できます。ただし、Python 標準ライブラリは識別子として ASCII 文字のみを使用します。これは移植可能なコードが従うべき単なる規則です。すべての文字を正しく表示するには、エディターがファイルが UTF-8 でエンコードされていることを認識でき、ファイル内のすべての文字をサポートするフォントを使用する必要があります。

ソース ファイルに別の文字エンコーディングを指定することもできます。これを行うには、#! 行 (最初の行) の後に少なくとも 1 つの特別なコメント行を挿入して、ソース ファイルのエンコーディングを定義します。

# -*- coding: encoding -*-

この宣言により、ソース ファイル内のすべてが、encoding で指定された UTF-8 エンコーディングとして扱われます。利用可能なエンコーディングのリストは、Python ライブラリ リファレンスのコーデック セクションにあります。

たとえば、エディタが UTF-8 エンコード ファイルをサポートしていないが、Windows-1252 などの他のエンコードをサポートしている場合は、次のように定義できます。

# -*- coding: cp-1252 -*-

これにより、Windows-1252 文字セットのすべての文字をソース ファイルで使用できるようになります。この特殊なエンコード コメントは、ファイルの 1 行目または 2 行目に定義する必要があります。

3. Python の概要

次の例では、入力と出力は大なり記号とピリオドのプロンプト ( >>> と ... ) でマークされています。これらの例を再現するには、インタプリタのプロンプトの後に、プロンプトを含まないコード行を (プロンプトに続いて) 入力します。演習で遭遇したスレーブ プロンプトは、インタプリタが複数行のコマンドの終わりであることを認識できるように、最後に追加の空白行を入力する必要があることを示していることに注意してください。

このマニュアルの多くの例 (対話型プロンプトを含む例を含む) にはコメントが含まれています。Python のコメントは # 文字で始まり、実際の行の終わりで終わります。コメントは行の先頭から始めたり、空白やコードの後に​​置くことができますが、文字列には現れません。テキスト文字列内の # 文字は単に # を意味します。コード内のコメントは Python によって解釈されず、サンプルに入るときに無視できます。

例えば:

# this is the first comment
spam = 1  # and this is the second comment
          # ... and now a third!
text = "# This is not a comment because it's inside quotes."

3.1. Python を計算機として使用する

簡単な Python コマンドをいくつか試してみましょう。インタプリタを起動し、メイン プロンプト >>> が表示されるまで待ちます (それほど時間はかかりません)。

3.1.1. 数字

インタプリタは単純な計算機のように動作します。インタプリタにいくつかの式を入力すると、値が返されます。式の構文は単純です: 演算子 +、-、*、/ は他の言語 (Pascal や C など) と同じであり、括弧 (()) はグループ化に使用されます。例えば:

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5  # division always returns a floating point number
1.6

整数 (2、4、20 など) は int 型で、小数部を含む数値 (5.0、1.6 など) は float 型です。数値型については、このチュートリアルで後ほど詳しく説明します。

除算 (/) は常に浮動小数点数を返します。フロア除算を使用して整数の結果を取得するには (小数部分を切り捨て)、// 演算子を使用できます。剰余を計算するには % を使用できます。

>>> 17 / 3  # classic division returns a float
5.666666666666667
>>>
>>> 17 // 3  # floor division discards the fractional part
5
>>> 17 % 3  # the % operator returns the remainder of the division
2
>>> 5 * 3 + 2  # result * divisor + remainder
17

Python では、** 演算子を使用してべき乗を計算することもできます。

>>> 5 ** 2  # 5 squared
25
>>> 2 ** 7  # 2 to the power of 7
128

等号 (「=」) は、変数に値を割り当てるために使用されます。割り当て後は、次のプロンプトが表示されるまで結果は表示されません。

>>> width = 20
>>> height = 5*9
>>> width * height
900

変数は使用する前に「定義」(割り当て)する必要があります。そうしないとエラーが発生します。

>>> # try to access an undefined variable
... n
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined

浮動小数点数は完全にサポートされており、整数と浮動小数点数の混合計算では、整数は浮動小数点数に変換されます。

>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5

対話モードでは、最新の式の値が変数 _ に割り当てられます。このようにして、デスクトップ電卓として使用でき、次のような連続的な計算に非常に便利です。

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

この変数はユーザーにとって読み取り専用です。値を割り当てようとしないでください。同じ名前の別のローカル変数を作成するだけです。これにより、システムの組み込み変数の魔法がブロックされます。

int と float に加えて、Python は Decimal や Fraction などの他の数値型もサポートします。Python には、接尾辞 j または J を使用して虚数部を示す複素数のサポートも組み込まれています (たとえば、3+5j)。

3.1.2. 文字列

数値と比較して、Python はいくつかの異なる方法で表現できる文字列も提供します。これらは一重引用符 (「…」) または二重引用符 (「…」) で識別できます。\ は引用符をエスケープするために使用できます。

>>> 'spam eggs'  # single quotes
'spam eggs'
>>> 'doesn\'t'  # use \' to escape the single quote...
"doesn't"
>>> "doesn't"  # ...or use double quotes instead
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'

対話型インタープリターでは、出力文字列は引用符で囲まれ、特殊文字はバックスラッシュでエスケープされます。入力と同じようには見えないかもしれませんが、2 つの文字列は等しいです。文字列内に一重引用符のみがあり、二重引用符がない場合は二重引用符を使用し、それ以外の場合は一重引用符を使用します。print() 関数は、引用符を省略し、エスケープされた特殊文字を出力することにより、より読みやすい出力を生成します。

>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
>>> print('"Isn\'t," she said.')
"Isn't," she said.
>>> s = 'First line.\nSecond line.'  # \n means newline
>>> s  # without print(), \n is included in the output
'First line.\nSecond line.'
>>> print(s)  # with print(), \n produces a new line
First line.
Second line.

\ が前に付く文字が特殊文字として扱われる場合は、最初の引用符の前に r を付けることで生の文字列を使用できます。

>>> print('C:\some\name')  # here \n means newline!
C:\some
ame
>>> print(r'C:\some\name')  # note the r before the quote
C:\some\name

文字列リテラルは複数行に分割できます。1 つの方法は、三重引用符を使用することです: """…""" または '''...'''。行末の改行は自動的に文字列に含まれますが、行末に \ を追加することでこの動作を回避できます。次の例: 行末にバックスラッシュを連続文字列として使用できます。これは、次の行が論理的にこの行のフォローアップ コンテンツであることを意味します。

print("""\
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to
""")

次の出力が生成されます (最初の行には先頭がないことに注意してください)。

Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to

文字列は + 演算子で連結 (接着) でき、* で繰り返すことができます。

>>> # 3 times 'un', followed by 'ium'
>>> 3 * 'un' + 'ium'
'unununium'

2 つの隣接する文字列リテラルは自動的に連結されます。

>>> 'Py' 'thon'
'Python'

これは 2 つの文字列リテラルでのみ機能し、文字列式では機能しません。

>>> prefix = 'Py'
>>> prefix 'thon'  # can't concatenate a variable and a string literal
  ...
SyntaxError: invalid syntax
>>> ('un' * 3) 'ium'
  ...
SyntaxError: invalid syntax

複数の変数を連結する場合、または変数と文字列リテラルを連結する場合は、+ を使用します。

>>> prefix + 'thon'
'Python'

この機能は、非常に長い文字列を分割する場合に特に便利です。

>>> text = ('Put several strings within parentheses '
            'to have them joined together.')
>>> text

「複数の文字列を括弧内に置くと、それらが結合されます。」
文字列をインターセプト (取得) することもできます。C と同様に、文字列の最初の文字のインデックスは 0 です。Python には個別の文字タイプはなく、文字は単に長さ 1 の文字列です。

>>> word = 'Python'
>>> word[0]  # character in position 0
'P'
>>> word[5]  # character in position 5
'n'

インデックスは負の値にすることもでき、その場合は右からカウントが開始されます。例えば:

>>> word[-1]  # last character
'n'
>>> word[-2]  # second-last character
'o'
>>> word[-6]
'P'

-0 は実際には 0 であるため、計算が右から開始されるわけではないことに注意してください。

インデックス作成に加えて、スライスもサポートされています。インデックス作成は単一文字を取得するために使用され、スライスにより部分文字列を取得できます。

>>> word[0:2]  # characters from position 0 (included) to 2 (excluded)
'Py'
>>> word[2:5]  # characters from position 2 (included) to 5 (excluded)
'tho'

最初の文字は含まれますが、最後の文字は含まれないことに注意してください。これにより、s[:i] + s[i:] は常に s と等しくなります。

>>> word[:2] + word[2:]
'Python'
>>> word[:4] + word[4:]
'Python'

スライス インデックスには非常に便利なデフォルト値があり、最初のインデックスが省略された場合はデフォルトでゼロになり、2 番目のインデックスが省略された場合はスライスされた文字列のサイズがデフォルトになります。

>>> word[:2]  # character from the beginning to position 2 (excluded)
'Py'
>>> word[4:]  # characters from position 4 (included) to the end
'on'
>>> word[-2:] # characters from the second-last (included) to the end
'on'

スライスの仕組みを簡単に覚える方法があります。スライスするとき、インデックスは 2 つの文字の間にあります。長さ n の文字列の左側の最初の文字はインデックス 0 を持ち、右側の文字列の最後の文字はインデックス n を持ちます。例えば:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

テキストの最初の行の数字は、文字列内のインデックス ポイント 0 ~ 6 を示します。2 行目は、対応する負のインデックスを示します。スライスは、数値で示された 2 つの境界間の i から j までのすべての文字です。

負でないインデックスの場合、上部と下部の両方が範囲内にある場合、スライスの長さは 2 つのインデックスの差になります。たとえば、word[1:3] は 2 です。

大きすぎるインデックスを使用しようとすると、エラーが発生します。

>>> word[42]  # the word only has 6 characters
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range

Python は、これらの無意味なスライス インデックスを適切に処理できます。大きすぎるインデックス値 (つまり、添え字の値が文字列の実際の長さより大きい) は、文字列の実際の長さに置き換えられ、上限が下限よりも大きい (つまり、スライスの左の値が r の値より大きい) 場合は、空の文字列が返されます。

>>> word[4:42]
'on'
>>> word[42:]
''

Python 文字列は変更できません。不変です。したがって、文字列インデックスの位置に代入するとエラーが発生します。

>>> word[0] = 'J'
  ...
TypeError: 'str' object does not support item assignment
>>> word[2:] = 'py'
  ...
TypeError: 'str' object does not support item assignment

別の文字列が必要な場合は、新しい文字列を作成する必要があります。

>>> 'J' + word[1:]
'Jython'
>>> word[:2] + 'py'
'Pypy'

組み込み関数 len() は文字列の長さを返します。

>>> s = 'supercalifragilisticexpialidocious'
>>> len(s)
34
See also

テキスト シーケンス タイプ — str: 文字列は、このタイプに共通の操作をサポートするシーケンス タイプの例です。
文字列メソッド: 文字列と Unicode 文字列はどちらも、基本的な変換と検索のための多数のメソッドをサポートしています。
文字列の書式設定: str.format() を使用した文字列の書式設定については、ここで説明します。
文字列フォーマット操作: これは、文字列および Unicode 文字列が % 演算子の左側のオペランドである場合に呼び出される、古いスタイルの文字列フォーマット操作について説明します。

3.1.3. リスト

Python には、他の値を表すための複合データ型がいくつかあります。最も一般的なのは list (リスト) で、角かっこで囲まれたカンマ区切りの値のリストとして記述できます。リストの要素は同じ型である必要はありません。

>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]

文字列 (および他のすべての組み込みシーケンス型) と同様に、リストにはインデックスを付けてスライスすることができます。

>>> squares[0]  # indexing returns the item
1
>>> squares[-1]
25
>>> squares[-3:]  # slicing returns a new list
[9, 16, 25]

すべてのスライス操作は、要求された要素を含む新しいリストを返します。これは、次のスライス操作がリストの新しい (浅い) コピーを返すことを意味します。

>>> squares[:]
[1, 4, 9, 16, 25]

リストは連結などの操作もサポートしています。

>>> squares + [36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

不変の文字列とは異なり、リストは変更可能であり、要素を変更できます。

>>> cubes = [1, 8, 27, 65, 125]  # something's wrong here
>>> 4 ** 3  # the cube of 4 is 64, not 65!
64
>>> cubes[3] = 64  # replace the wrong value
>>> cubes
[1, 8, 27, 64, 125]

append() メソッド (リスト メソッドについては後で詳しく説明します) を使用して、リストの最後に新しい要素を追加することもできます。

>>> cubes.append(216)  # add the cube of 6
>>> cubes.append(7 ** 3)  # and the cube of 7
>>> cubes
[1, 8, 27, 64, 125, 216, 343]

スライスには値を割り当てることもでき、リストのサイズを変更したり空にしたりすることができます。

>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # replace some values
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # now remove them
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> # clear the list by replacing all the elements with an empty list
>>> letters[:] = []
>>> letters
[]

組み込み関数 len() はリストに対しても機能します。

>>> letters = ['a', 'b', 'c', 'd']
>>> len(letters)
4

ネストされたリスト (他のリストを含むリストの作成) は許可されます。例:

>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

3.2 プログラミングの最初のステップ

もちろん、Python を使用すると、2 つを 2 つ足すよりも複雑なタスクを実行できます。たとえば、次のようにフィボナッチ部分列を生成するプログラムを作成できます。

>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1
>>> while b < 10:
...     print(b)
...     a, b = b, a+b
...
1
1
2
3
5
8

この例では、いくつかの新機能が導入されています。

最初の行には複数の代入が含まれています。変数 a と b は新しい値 0 と 1 を同時に取得し、最後の行が再度使用されます。このデモでは、変数が割り当てられる前に右側が最初に評価されます。右側の式は左から右に評価されます。

while ループは、条件 (ここでは b < 10) が true の間実行されます。Python では、C と同様に、ゼロ以外の整数はすべて true、0 は false 条件は文字列またはリスト、実際には任意のシーケンスにすることもできます。

ゼロ以外の長さはすべて true、空のシーケンスは false です。この例のテストは単純な比較です。標準の比較演算子は C の場合と同じです: < 、 > 、 == 、 <= 、 >= および !=。

ループ本体はインデントされます。インデントは、ステートメントを編成する Python の方法です。Python には (まだ) 統合された行編集が提供されていないため、インデントされた行ごとに TAB またはスペースを入力する必要があります。

実際には、複雑な Python プログラムを入力するにはテキスト エディターを見つけることをお勧めします。ほとんどのテキスト エディターには自動インデントが備わっています。複合ステートメントを対話的に入力する場合は、終了をマークするために最後に空行を入力する必要があります (インタプリタには、入力した行が最後の行であることを推測する方法がないため)。同じステートメント ブロック内のステートメント ブロックは、同じ量の空白スペースでインデントする必要があることに注意してください。

キーワード print() ステートメントは、指定された式の値を出力します。これは、複数の式と必要な文字列への文字列出力を制御します (前述の電卓の例で行ったように)。

文字列は引用符なしで出力され、2 つのサブ項目ごとにスペースが挿入されるため、次のようにきれいな書式設定を行うことができます。

>>> i = 256*256
>>> print('The value of i is', i)
The value of i is 65536
用一个逗号结尾就可以禁止输出换行:

>>> a, b = 0, 1
>>> while b < 1000:
...     print(b, end=',')
...     a, b = b, a+b
...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

おすすめ

転載: blog.csdn.net/weixin_43121885/article/details/128031531