Python3 基本構文
エンコーディング
デフォルトでは、Python3 ソースファイルはUTF-8エンコードされ、すべての文字列は unicode 文字列です。
もちろん、ソースファイルに別のエンコーディングを指定することもできます:
# -*- coding: cp-1252 -*-
上記の定義は、ソースファイルで Windows-1252 文字セットの文字エンコーディングを使用することを許可します。対応する適切な言語は、ブルガリア語、ベラルーシ語、マケドニア語、ロシア語、セルビア語です。
識別子
- 最初の文字は英字(a-z, A-Z)またはアンダースコアで始まる必要があります_ 。
- 識別子の残りの部分は、英字、数字、アンダースコアで構成されます。
- 識別子は大文字と小文字を区別します。count と Count は異なる識別子です。
- 識別子の長さに厳格な制限はありませんが、簡潔に保つことをお勧めします(通常は20文字以内)。
- 予約キーワードの使用は禁止されています。たとえば、if、for、class などは識別子として使用できません。
有効な識別子:
age = 25 # 普通变量名,最常见 user_name = "Alice" # 用下划线连接单词,清晰易读 _total = 100 # 下划线开头通常表示“内部使用”或“私有” MAX_SIZE = 1024 # 全大写通常表示“常量”(固定不变的值) calculate_area() # 函数名,动词+名词 StudentInfo # 类名,首字母大写(驼峰命名法) __private_var # 双下划线开头,有特殊含义
無効な識別子:
2nd_place = "silver" # 错误:以数字开头 user-name = "Bob" # 错误:包含连字符 class = "Math" # 错误:使用关键字 $price = 9.99 # 错误:包含特殊字符 for = "loop" # 错误:使用关键字
Python 3 は Unicode 文字を識別子として使用できます。中国語(漢字)を変数名として使用でき、非 ASCII 識別子も許可されています。
姓名 = "张三" # 合法 π = 3.14159 # 合法
識別子が有効かどうかをテストする:
例
try:
exec(f"{name} = None")
return True
except:
return False
print(is_valid_identifier("2var")) # False
print(is_valid_identifier("var2")) # True
Python 予約キーワード
予約語はキーワードです。これらを識別子名として使用することはできません。Python の標準ライブラリは keyword モジュールを提供しており、現在のバージョンのすべてのキーワードを出力できます:
>>> import keyword >>> keyword.kwlist ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] >>>
| カテゴリ | キーワード | 説明 |
|---|---|---|
| 論理値 | True | ブール真値 |
False | ブール偽値 | |
None | 空値または無値を表します | |
| 論理演算 | and | 論理 AND 演算 |
or | 論理 OR 演算 | |
not | 論理 NOT 演算 | |
| 条件制御 | if | 条件判断文 |
elif | それ以外の場合(else if の略) | |
else | それ以外の分岐 | |
| ループ制御 | for | 反復ループ |
while | 条件ループ | |
break | ループを抜ける | |
continue | 現在のループの残りの部分をスキップして、次の反復に進みます | |
| 例外処理 | try | コードブロックの実行を試みる |
except | 例外をキャッチする | |
finally | 例外が発生するかどうかに関係なく実行されるコードブロック | |
raise | 例外をスローする | |
| 関数定義 | def | 関数を定義する |
return | 関数から値を返す | |
lambda | 無名関数を作成する | |
| クラスとオブジェクト | class | クラスを定義する |
del | オブジェクト参照を削除する | |
| モジュールのインポート | import | モジュールをインポート |
from | モジュールから特定の部分をインポート | |
as | インポートしたモジュールまたはオブジェクトにエイリアスを作成する | |
| スコープ | global | グローバル変数を宣言する |
nonlocal | 非ローカル変数を宣言する(ネストされた関数用) | |
| 非同期プログラミング | async | 非同期関数を宣言する |
await | 非同期操作の完了を待つ | |
| その他 | assert | アサーション。条件が真かどうかをテストするために使用されます |
in | メンバーシップをチェックする | |
is | オブジェクトの同一性をチェックする(同じオブジェクトかどうか) | |
pass | 空文。プレースホルダーとして使用される | |
with | コンテキストマネージャー。リソース管理に使用される | |
yield | ジェネレーター関数から値を返す |
その他の Python 予約キーワードのリファレンス:https://www.example.com/python3/python3-keyword.html。
コメント
Python では単行コメントは#で始まります。例は次のとおりです:
例(Python 3.0+)
上記のコードを実行すると、出力結果は次のようになります:
Hello, Python!
複数行コメントは複数の#記号、および'''と""":
例(Python 3.0+)
上記のコードを実行すると、出力結果は次のようになります:
Hello, Python!
行とインデント
Python の最大の特徴は、インデントを使用してコードブロックを表すことであり、中括弧を使用する必要はありません。{} 。
インデントのスペース数は変更可能ですが、同じコードブロック内の文は同じ数のインデントスペースを含む必要があります。例は次のとおりです:
例(Python 3.0+)
次のコードでは、最後の行の文のインデントスペース数が一致しないため、実行時エラーが発生します:
例
print ("Answer")
print ("True")
else:
print ("Answer")
print ("False") # 缩进不一致,会导致运行错误
上記のプログラムはインデントが一致しないため、実行後に次のようなエラーが発生します:
File "test.py", line 6
print ("False") # 缩进不一致,会导致运行错误
^
IndentationError: unindent does not match any outer indentation level
複数行の文
Python は通常1行に1つの文を書きますが、文が非常に長い場合は、バックスラッシュを使用できます\を使用して複数行の文を実現します。例:
total = item_one + \
item_two + \
item_three
例
item_two = 2
item_three = 3
total = item_one + \
item_two + \
item_three
print(total) # 出力は 6
[]、{}、または () 内の複数行の文は、バックスラッシュを使用する必要はありません\、例:
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
数値(Number)型
Python の数値には、整数、ブール型、浮動小数点数、複素数の4つの型があります。
- int(整数)、例 1。整数型は int の1つだけで、長整数として表されます。python2 の Long はありません。
- bool(ブール)、例 True。
- float(浮動小数点数)、例 1.23、3E-2
- complex(複素数) - 複素数は実部と虚部から構成され、形式は a + bj です。a は実部、b は虚部、j は虚数単位を表します。例 1 + 2j、1.1 + 2.2j
文字列(String)
- Python の一重引用符'と二重引用符"使用は完全に同じです。
- 三重引用符を使用します(''' 或 """)を使用すると、複数行の文字列を指定できます。
- エスケープ文字\。
- バックスラッシュはエスケープに使用でき、rバックスラッシュをエスケープさせないようにできます。例えばr"this is a line with \n" 则 \nが表示され、改行ではありません。
- 文字列をリテラルに連結します。例えば"this " "is " "string"は自動的に変換されますthis is string。
- 文字列は+演算子で連結でき、*演算子で繰り返すことができます。
- Python の文字列には2つのインデックス方式があり、左から右へは0で始まり、右から左へは-1で始まります。
- Python の文字列は変更できません。
- Python には独立した文字型はありません。1文字は長さ1の文字列です。
- 文字列のスライスstr[start:end]、ここで start(含む)はスライスの開始インデックス、end(含まない)はスライスの終了インデックスです。
- 文字列のスライスにはステップパラメータ step を追加できます。構文形式は次のとおりです:str[start:end:step]
word = '字符串' sentence = "这是一个句子。" paragraph = """这是一个段落, 可以由多行组成"""
例(Python 3.0+)
ここでの r は raw、つまり raw string を指し、バックスラッシュを自動的にエスケープします。例えば:
>>> print('\n') # 输出空行
>>> print(r'\n') # 输出 \n
\n
>>>
上記の例の出力結果:
123456789 12345678 1 345 3456789 24 123456789123456789 123456789你好 ------------------------------ hello サンプル hello\nサンプル
空行
関数間やクラスのメソッド間は空行で区切り、新しいコードの始まりを表します。クラスと関数エントリの間も1行の空行で区切り、関数エントリの開始を強調します。
空行はコードのインデントとは異なり、Python の構文の一部ではありません。空行を挿入しなくても、Python インタプリタはエラーになりません。しかし、空行は異なる機能や意味を持つコードのブロックを区切る役割があり、将来のコードの保守やリファクタリングを容易にします。
覚えておきましょう:空行もプログラムコードの一部です。
ユーザー入力の待機
次のプログラムを実行すると、Enterキーを押した後でユーザー入力を待ちます:
例(Python 3.0+)
上記のコードでは、\n\n結果の出力前に、2つの新しい空行が出力されます。ユーザーがenterキーを押すと、プログラムは終了します。
同一行に複数の文を表示
Python は同じ行に複数の文を記述できます。文の間はセミコロンを使用します。;で区切ります。以下は簡単な例です:
例(Python 3.0+)
スクリプトで上記のコードを実行すると、出力結果は次のとおりです:
サンプル
対話型コマンドラインで実行すると、出力結果は次のとおりです:
>>> import sys; x = 'サンプル'; sys.stdout.write(x + '\n') サンプル 7
ここの 7 は文字数を表し、サンプル6文字あり、\n1文字を表すため、合計すると7文字になります。
>>> import sys
>>> sys.stdout.write(" hi ") # hi 前后各有 1 个空格
hi 4
複数の文でコードグループを構成
インデントが同じ文の集まりは1つのコードブロックを構成し、これをコードグループと呼びます。
if、while、def、class のような複合文は、最初の行がキーワードで始まり、コロン( : )で終わります。その後の1行または複数行のコードがコードグループを構成します。
最初の行とそれに続くコードグループをまとめて節(clause)と呼びます。
以下の例のとおりです:
if expression : suite elif expression : suite else : suite
print 出力
printデフォルトの出力は改行されます。改行しないようにするには、変数の末尾に追加しますend="":
例(Python 3.0+)
上記の例の実行結果は次のとおりです:
a b --------- a b
詳細は以下を参照してください:Python2 と Python3 の print の改行なし
import と from...import
python ではimportまたはfrom...importを使用して、対応するモジュールをインポートします。
モジュール全体(somemodule)をインポートする形式は次のとおりです:import somemodule
特定のモジュールから特定の関数をインポートする形式は次のとおりです:from somemodule import somefunction
特定のモジュールから複数の関数をインポートする形式は次のとおりです:from somemodule import firstfunc, secondfunc, thirdfunc
特定のモジュール内のすべての関数をインポートする形式は次のとおりです:from somemodule import *
sys モジュールをインポート
sys モジュールの argv, path メンバーをインポート
詳細は以下を参照できます:Python の import と from … import の主な違い
コマンドライン引数
多くのプログラムは、基本情報を確認するための操作を実行できます。Python では -h パラメータを使用して各パラメータのヘルプ情報を確認できます:
$ python -h usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresponding environment variables): -c cmd : program passed in as string (terminates option list) -d : debug output from parser (also PYTHONDEBUG=x) -E : ignore environment variables (such as PYTHONPATH) -h : print this help message and exit [ etc. ]
Python をスクリプト形式で実行する場合、コマンドラインから入力された引数を受け取ることができます。具体的な使用方法は参照できます:Python 3 コマンドライン引数。
その他の拡張