Pythonの基本的な説明
定数と式
print(1 + 2 - 3)
print(1 + 2 * 3)
print(1 + 2 / 3)
演算結果
0
7
1.6666666666666665
print
これは、他の演算子を使用して算術演算を実行できるPython
組み込み関数です。乗算と除算が最初に計算され、次に加算と減算が続きます。演算子と数値の間にスペースを入れたり、複数のスペースを入れたりすることはできません。ただし、一般に次のように記述するのが一般的です。スペース+ - * / ( )
このような形式の1 + 2 - 3
式をプログラミング言語では式といい、式の結果を式の戻り値といい、
この1 , 2 , 3
ようなものをリテラル定数といい、+ - * /
このようなものを演算子または演算子といいます。
注:C / C++
に慣れている学生は、2 / 3
結果が0
(小数部分が切り捨てられる) であると考えるかもしれませんが、Python
で得られた結果は小数であり、日常使用の直感と一致しています。
変数と型
1. 変数とは何ですか?
Python では、変数はデータ値を格納するために使用される識別子です。これらの識別子には文字、数字、アンダースコアを組み合わせて使用できますが、いくつかの命名規則に従う必要があります。たとえば、変数名を数字で始めたり、スペースを含めたりすることはできません。Python の変数は動的に型付けされます。つまり、変数のデータ型を事前に宣言する必要はなく、Python は変数に割り当てられた値に基づいてその型を自動的に決定します。
簡単な Python 変数の例を次に示します。
x = 10 # 创建一个整数类型的变量x并赋值为10
name = "John" # 创建一个字符串类型的变量name并赋值为"John"
is_student = True # 创建一个布尔类型的变量is_student并赋值为True
total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2 #创建一个浮点数类型的变量total并赋值为四个小数的方差
Python の変数には、C と比較していくつかの大きな違いがあります。
- 動的型付け: C では、変数を宣言するときに変数のデータ型を明示的に指定する必要がありますが、Python では、変数のデータ型は、変数に割り当てられた値によって自動的に決定されます。これにより、Python はより柔軟かつ簡潔になります。
- 宣言は必要ありません: C では、変数を使用する前に明示的に宣言する必要がありますが、Python ではその必要はありません。変数に値を直接割り当てることができ、Python が自動的に値を作成します。
- セミコロンは不要: C では通常、ステートメントはセミコロンで終わりますが、Python ではコードのブロックを表すためにインデントが使用されるため、セミコロンは必要ありません。
- より高度なデータ型: Python には、リスト、辞書、セット、タプルなどの高度なデータ型が多数組み込まれており、Python での複雑なデータ構造の処理がより便利になります。
- ガベージ コレクション: Python には自動メモリ管理とガベージ コレクション メカニズムがあり、メモリの割り当てと解放を手動で管理する必要がなくなります。
全体的に、Python は C 言語よりも簡潔で学習が容易ですが、場合によってはパフォーマンスが犠牲になる場合があります。プログラミング言語を選択するときは、プロジェクトのニーズとパフォーマンス要件に基づいたトレードオフがあります。
注:
x,name,is_student,total
これらはすべて変数であり、
**
Python では、累乗演算、** 2
つまり 2 乗の計算を表します。
2. 変数の構文
2.1 変数の定義
a = 10
変数を作成するステートメントは非常に単純です。
a
は変数名です。多くの変数を作成するとき、それらの名前を使用してそれらを区別できます。これは
=
代入演算子であり、=
右側のデータを左側の=
スペースに入れることを意味します
注: 変数の名前は特定のルールに従う必要があります。
厳格なルール (必ず従わなければなりません)
変数名は、数字、文字、アンダースコアで構成されます。
数字から始めることはできません。
変数名で「キーワード」を繰り返すことはできません。
変数名は大文字と小文字が区別されます。num と Num は 2 つの異なる変数名です。
ソフトルール (従うことを推奨)
変数名には説明的な言葉を使用して、変数の機能をできるだけ表現します。
変数名は複数の単語で構成できますが、長くてもかまいませんが、意味が明確でなければなりません。
変数名に複数の単語が含まれる場合は、最初の単語を除き、残りの単語の最初の文字を大文字にする「キャメルケースネーミング」を使用することを推奨し
totalCount
ますpersonInfo
。
数学では、変数は通常、x、y、z などの単純な英語文字またはラテン文字で表されますが、プログラミングでは通常、プログラム内で多くの変数が同時に作成されるため、これはお勧めできません。 1 つの文字で表すだけでは、変数が多すぎるとどの変数が何をするのかを覚えるのが難しくなり、プログラムの保守が困難になります。そのため、目的を明確に説明する名前を使用することをお勧めします。変数。
2.2 変数の使用
変数の値を読み取る
a = 10
print(a)
変数の値を変更する
a = 20
print(a)
Python では、変数の変更にも = 演算が使用されますが、これは変数の定義と大きな違いはないようです。
もちろん、ある変数の値を別の変数に代入することもできます。
a = 10
b = 20
a = b
print(a)
print(b)
3. 変数の種類
Python の整数型 (int)、浮動小数点型 (float)、文字列型 (str)、および論理値 (bool) は、C 言語の対応する型といくつかの違いがあります。
-
整数型(int):
- Python の整数型は動的であり、指定する必要はありません。Python は、変数に割り当てられた値に基づいてその型を自動的に決定します。
- Python の整数型は、固定範囲制限なしで任意のサイズの整数を表すことができ、これを「任意精度整数」と呼びます。
- C では、整数型のサイズはコンパイラとプラットフォームに依存し、通常はビット数と範囲が固定されています。
Python では、整数型はオーバーフローの問題を心配することなく、非常に大きな整数を表すことができます。例えば:
x = 1234567890123456789012345678901234567890 print(x) print(type(x))
この数値により、C ではオーバーフローや精度の問題が発生する可能性がありますが、Python では問題ありません。
1234567890123456789012345678901234567890 <class 'int'>
-
浮動小数点型(float):
- Python の浮動小数点型も動的であり、明示的な型指定を必要としません。
- Python は倍精度浮動小数点標準 (IEEE 754) を使用し、通常は 15 ~ 17 桁の小数精度をサポートします。
- C では、浮動小数点型のサイズと精度はコンパイラとプラットフォームに依存し、単精度または倍精度の浮動小数点数になります。
Python の浮動小数点型は倍精度を備えており、次のような 10 進数値を表すことができます。
y = 3.14159265358979323846 print(y) print(type(y))
この浮動小数点数は、Python では π の近似を表すのに十分な精度を持っています。C では、浮動小数点の精度はコンパイラとプラットフォームに依存するため、十分な精度が得られない場合があります。
3.141592653589793 <class 'float'>
-
文字列型 (str):
- Python の文字列タイプは Unicode 文字列です。つまり、ASCII 文字と非 ASCII 文字を含む、世界中のほとんどの文字セットの文字を表現できます。
- Python の文字列は不変です。つまり、一度作成された文字列の内容は変更できません。
- C では、文字列は通常文字配列であり、NULL で終了し、変更できます。
Python の文字列型には、Unicode 文字を含むさまざまな文字を含めることができます。これにより、次のようなさまざまな文字セットのテキスト データを操作するときに非常に便利になります。
name = "李雷" print(name) print(type(name))
これは漢字を含む文字列であり、Python では簡単に処理できます。C では、Unicode 文字の処理がより複雑になる可能性があり、ワイド文字または Unicode 変換関数の使用が必要になります。
李雷 <class 'str'>
全体として、Python の整数型と浮動小数点型は柔軟性と精度が高く、文字列型は Unicode サポートと不変性が優れています。これらの違いにより、Python はさまざまなデータ型の処理に便利になりますが、基本的なデータの処理では一般に C の方が効率的であるため、パフォーマンスにはトレードオフがあります。特定のニーズに応じて、さまざまな言語とデータ型の使用を選択できます。
注: Python では、一重引用符で構成される文字列と二重引用符で構成される文字列に違いはなく、'hello'
完全"hello"
に同等です。
len関数を使用すると文字列の長さを取得できます
a = 'hello'
print(len(a))
出力5
+ を使用して 2 つの文字列を連結できます
a = 'hello
b = 'world'
print(a + b)
出力helloworld
ここでは 2 つの文字列を加算しますが、文字列と整数/浮動小数点数を加算することはできません。
- 論理値 (ブール値) :
- Python のブール型には、True と False の 2 つの値があります。
- ブール型は、if ステートメントなどの条件判断によく使用されます。
- Python のブール型は大文字と小文字が区別されます。True と False は大文字で始まる必要があります。小文字の true と false はブール値ではありません。
is_true = True
is_false = False
if is_true:
print("这是True")
if not is_false:
print("这是False")
print(type(is_true))
print(type(is_false))
出力
这是True
这是False
<class 'bool'>
<class 'bool'>
- 他の
上記以外にもカスタムタイプなどPython
もありますlist, tuple, dict
ので、後ほど別途ご紹介させていただきます。
4. なぜこんなに種類があるのですか?
データがメモリ内で占めるスペースの量は型によって決まります。
たとえば、float 型はメモリ内で 8 バイトを占めます。
コンピュータはデータを表すためにバイナリを使用します。つまり、各ビットは 0 または 1 のみを表すことができます。1
バイナリ ビットは「ビット」と呼ばれ、8 バイナリ ビットは「バイト」(バイト)と呼ばれます。float
変数は 8 バイトのスペースを占有します。私のコンピュータには 16GB のメモリ空間があり、合計 1024 * 1024 * 1024 * 8 という非常に多くのバイナリ ビットがあることになります。
実際には、この型は、この変数に対してどのような種類の操作を実行できるかを規定します。
たとえば、 int / float
型の変数はなどの+ - * /
操作を実行できます
が、str
型の変数は + (および動作は文字列の連結) のみを実行でき、これは実行できませんが- * /
、それらを使用しlen
たり、他の操作を実行したりすることもできます。
要約: 型システムは実際には変数を「分類」します。同じ型の変数 (データ) は、多くの場合、同様の特性と使用規則を持っています。
5. ダイナミック型の特徴
Python では、「プログラムの実行」プロセス中に変数の型が変更されることがあります。この機能は「動的型付け」と呼ばれます。
a = 10
print(type(a))
a = 'hello'
print(type(a))
出力:
<class 'int'>
<class 'str'>
プログラムの実行中、a の型は最初は int で、その後 str になります。
C++/Java などの言語ではこのような操作はできませんが、変数の型は定義後に固定されます。この機能を「静的型付け」といいます。
動的タイピングは諸刃の剣です
小規模および中規模のプログラムの場合、コードの量は大幅に削減できます (たとえば、1 つのコードを作成するだけで複数のタイプを同時にサポートできます)。大規模なプログラムの場合、モジュール間の対話のコストが増加します
。プログラマー A が提供したコードは、プログラマー B が理解するのは困難です。)
コメント
Python には、単一行コメントと複数行コメントという 2 つの主なタイプのコメントがあります。コメントはコードに説明や注釈を追加するために使用され、インタプリタによって実行されることはありません。
- 単一行のコメント:単一行のコメントはシャープ
#
記号で始まり、その後の内容は行の終わりまでコメントとして扱われます。単一行コメントは、コードの簡単な説明を追加するためによく使用されます。
例:
# 这是一个单行注释
x = 5 # 这是赋值语句,将5赋给变量x
- 複数行のコメント: Python には C や C++ のようなブロック コメントはありませんが、三重引用符を使用したり、
'''
複数"""
行の文字列を作成してコード内に配置したりして、複数行のコメントの効果を得ることができます。実際には文字列が作成されますが、変数に代入しない場合はコメントとして扱われます。
例:
'''
这是一个
多行注释
它实际上是一个多行字符串,但没有分配给变量
'''
print("Hello, World!")
または、二重引用符を使用します。
"""
这也是一个
多行注释
"""
print("Hello, World!")
複数行の文字列は複数行のコメントに使用できますが、通常、開発者はコメントやドキュメントを追加するために単一行のコメントと関数/クラス/メソッドのドキュメント文字列 (docstring) を使用することを好むことに注意してください。
例:
def add(x, y):
"""
这是一个函数的文档字符串
它用于计算两个数字的和
"""
return x + y
このような docstring はhelp()
関数を使用して表示でき、ドキュメントを生成できるツールもあります。実際の開発では、ドキュメント文字列はコードの読みやすさと保守性の点で非常に役立ちます。
アノテーション仕様
- 正確な内容: コメントの内容は一貫性があり、コードと一致している必要があり、コードが変更された場合は適時に更新される必要があります。
- 適度な長さ: メモは簡潔すぎても長すぎてもいけません。
- 中国語を使用する: 一般に、中国企業ではメモを中国語で書く必要がありますが、外国企業では話が異なります。
- ポジティブであること: コメントにネガティブなエネルギーを含めないでください(リーダー SB など)。ニュースになって撮影されたそうですが、手動操作が面白かったです
入出力
1. プログラムとユーザー間の対話
プログラムはユーザーと対話する必要がある
ユーザーがプログラムに情報を渡す処理を「入力」といい、
プログラムが結果をユーザーに表示する処理を「出力」といいます。
最も基本的な入出力方法はコンソールです。ユーザーはコンソールを介して文字列を入力し、プログラムはコンソールを介して文字列を出力します。
PyCharm がプログラムを実行すると、以下にポップアップ表示されるウィンドウがコンソールと見なされます。
Windows に付属の cmd プログラムもコンソールとみなすことができます。
最も一般的な入出力方法はグラフィカル インターフェイスです。
もちろん、Python を使用してグラフィカル インターフェイスを使用したプログラムを開発することもできますが、グラフィカル プログラム開発自体は大きなトピックなので、後ほど詳しく紹介します。
2. コンソールからの出力
たとえば、他の型の変数を出力する
a = 10
print(a)
b = True
print(b)
出力
10
True
多くの場合、出力したいコンテンツは文字列と変数が混在しています。
例: 出力 num = 10
num = 10
print(f'num = {
num}')
他の変数/式を埋め込むために使用できる内部
f
で呼び出されるプレフィックス文字列として使用しますf-string
{ }
3. コンソールから入ります
Pythonはinput関数を使用してコンソールからユーザー入力を読み取ります
num = 0
num = input('请输入一个整数: ')
print(f'你输入的整数是 {
num}')
入力後の出力
请输入一个整数: 2
你输入的整数是 2
inputのパラメータは「プロンプトメッセージ」に相当するか、存在しない可能性があります。input
の戻り値はユーザーが入力した内容です。文字列型です。
a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
print(f'a + b = {
a + b}')
入力後の出力
请输入第一个整数: 20
请输入第二个整数: 23
a + b = 2023
ここでの結果は、算術演算ではなく、文字列の連結です。算術演算を実行したい場合は、最初に型を変換する必要があります。
a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
a = int(a)
b = int(b)
print(f'a + b = {
a + b}')
入力後の出力
请输入第一个整数: 20
请输入第二个整数: 23
a + b = 43
int( )
変数をint
型に変換することで、
同様に、float( ), bool( ), str( )
etc を使用して対応する型変換を完了できます。
コード例: 小数点以下 4 桁を入力し、小数点以下 4 桁の平均を求めます。
a = input('请输入第一个数字: ')
b = input('请输入第二个数字: ')
c = input('请输入第三个数字: ')
d = input('请输入第四个数字: ')
a = float(a)
b = float(b)
c = float(c)
d = float(d)
avg = (a + b + c + d) / 4
print(f'平均值: {
avg}')
入力後の出力
请输入第一个数字: 21.2
请输入第二个数字: 20.3
请输入第三个数字: 21.4
请输入第四个数字: 21.5
平均值: 21.1
コード例: ヘロンの公式を使用して三角形の面積を計算する
import math
a=float(input("输入直角三角形第一条边"))
b=float(input("输入直角三角形第二条边"))
c=float(input("输入直角三角形第三条边"))
#计算海伦公式中p的值,即半周长
p=(a+b+c)/2
s=math.sqrt(p*(p-a)*(p-b)*(p-c))
print(s)
入力後の出力
输入直角三角形第一条边3
输入直角三角形第二条边4
输入直角三角形第三条边5
6.0
オペレーター
1. 算術演算子
このような+ - * / % ** //
算術演算を実行する演算子を算術演算子と呼びます
- 他の言語と同様に、
/
0 を除数として使用することはできず、例外がスローされます。
print(10 / 0)
出力
Traceback (most recent call last):
File "C:\Users\xzq20\PycharmProjects\pythonProject1\hello.py", line 1, in <module>
print(10 / 0)
~~~^~~
ZeroDivisionError: division by zero
例外とは、プログラミング言語における一般的なメカニズムであり、プログラムの実行中に何らかの「予期せぬ状況」が発生し、プログラムの実行を続行できなくなることを意味します。
整数 / 整数
結果は小数になる場合があります。切り捨てなし
print(1 / 2)
出力
0.5
%
「パーセント」ではなく「余り」
print(7 % 2)
出力
1
**
べき乗を求めるもので、整数のべき乗だけでなく、小数のべき乗も計算できます。
print(4 ** 2)
print(4 ** 0.5)
出力
16
2.0
//
四捨五入(階割りとも言います)で、整数を整数で割っても結果は整数になります(小数点以下は切り捨てて切り捨てます。四捨五入はしません)。
print(7 // 2)
print(-7 // 2)
出力
3
-4
2. 関係演算子
このシリーズのような演算子< <= > >= == !=
は関係演算子と呼ばれ、オペランド間の関係を比較します。
で
<=
「以下」です
>=
「以上」です
==
「等しい」です
!=
は「等しくない」
関係が true の場合、式は を返しますTrue
。関係が true でない場合、式は を返します。False
a = 10
b = 20
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)
出力
True
True
False
False
False
True
関係演算子は、整数/浮動小数点数を比較するだけでなく、文字列も比較します。
a = 'hello'
b = 'world'
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)
出力
True
True
False
False
False
True
==
またはを使用して、!=
文字列の内容が等しいかどうかを直接判断できます (これはC / C++
とは異なります)。
文字列比較のルールは「辞書順」です (C++ のマップ アプリケーションに相当します)。
浮動小数点数の場合、等しいかどうかを判断するために == を使用しないでください。
print(0.1 + 0.2 == 0.3)
出力
False
コンピュータにおける浮動小数点数の表現は正確ではありません! 計算プロセス中に、非常に小さなエラーが発生する傾向があります。
print(0.1)
print(0.2)
print(0.3)
print(0.1 + 0.2)
出力
0.1
0.2
0.3
0.30000000000000004
0.1 + 0.2
の結果は ではなく0.3
、小さな尾が付いていることがわかります。この尾は非常に小さいですが、すべてのペニーが重要ですが、依然としての結果に==
つながります。==
False
これは Python だけでなく、主流のプログラミング言語にも当てはまります。これは、IEEE754
標準で指定されている浮動小数点形式によってもたらされる問題です。これは、以前の C 言語ブログでも触れました。
正しい比較方法: 厳密に等しいと比較するのではなく、差が許容誤差範囲未満であると判断します。
a = 0.1 + 0.2
b = 0.3
print(-0.000001 < (a - b) < 0.000001)
実際のエンジニアリングの実践では、誤差が妥当な範囲内である限り、誤差は避けられません。
3. 論理演算子
この一連の演算子はand or not
論理演算子と呼ばれます。
And : 両方のオペランドが True で、最終結果が True。それ以外の場合、False (一方が false の場合、False)
または Or : 両方のオペランドが False、最終結果が False。それ以外の場合、それは False True (どちらかが true の場合は False。True)
not 論理否定: オペランド自体が True の場合は False が返され、オペランド自体が False の場合は True が返されます
a = 10
b = 20
c = 30
print(a < b and b < c)
print(a < b and b > c)
print(a > b or b > c)
print(a < b or b > c)
print(not a < b)
print(not a > b)
出力
True
False
False
True
False
True
特殊な書き方
a < b and b < c
この操作は と同等ですa < b < c
。この設定は、ほとんどのプログラミング言語とは異なります。
短絡評価
他のプログラミング言語と同様に、Python にも短絡評価のルールがあります。
for and の場合、左側の式が False の場合、全体が False である必要があり、右側の式は実行されなくなります。for の場合、左側の式が True の場合、
全体が True である必要があり、右側の式は実行されなくなります。
print(10 > 20 and 10 / 0 == 1)
print(10 < 20 or 10 / 0 == 1)
出力
False
True
4. 代入演算子
=
の使用法
=
代入を示します。何度も使用していますが、==
区別に注意してください。
=
基本的な使い方に加えて、複数の変数に同時に値を代入することもできます。
チェーンの割り当て
a = b = 10
複数の割り当て
a, b = 10, 20
コード例: 2 つの変数を交換する
基本的な書き方(Cの書き方と同様)
a = 10
b = 20
tmp = a
a = b
b = tmp
複数の割り当てに基づく
a = 10
b = 20
a, b = b, a
- 複合代入演算子
Python には複合代入演算子もいくつかあります。たとえば、+= -= *= /= %=
where はa += 1
と同等ですa = a + 1
。他の複合代入演算子にも同じことが当てはまります。
a = 10
a = a + 1
print(a)
b = 10
b += 1
print(b)
注:
inと同様に、このようなインクリメント/デクリメント演算子C / C++
があります。 in はこの演算をサポートしていません。使用する必要がある場合は、直接使用するか、最大の問題は、前置と後置の違いが区別できなくなることです。この構文は、これは、このような直感的ではなく混乱を招く構文を避けるために、設計時に避けられました。++ --
Python
+= 1
-= 1
++ --
Python
上記に加えて、Python には恒等演算子( is, is not
)、メンバー演算子( in, not in
)、ビット演算子( & | ~ ^ << >>
) などの演算子がいくつかあります。
条件文
if else キーワードを使用して Python で条件文を表現します
if
if expression:
do_something1
do_something2
next_something
式の値が True の場合は do_something1、do_something2、next_something が実行され、
式の値が False の場合は next_something のみが実行され、do_something1、do_something2 は実行されません。
if - else
if expression:
do_something1
else:
do_something2
式の値が True の場合は do_something1 が実行され、
式の値が False の場合は do_something2 が実行されます。
if - elif - else
if expression1:
do_something1
elif expression2:
do_something2
else:
do_something3
Expression1 の値が True の場合、do_something1 が実行されます
式 1 が False で、式 2 が True の場合、do_something2 が実行されます。
式 1 が False で、式 2 が False の場合、do_something3 が実行されます。
注: Python で条件文を記述する方法は、多くのプログラミング言語とは異なります。
if の後の条件式 () なしでは、最後に: が使用されます。if
/ else が条件にヒットした後に実行される「ステートメント ブロック」は、{ } の代わりにインデント (通常は 4 つのスペースまたは 1 つのタブ) で表されます
。複数の条件分岐の場合は、else if を記述する代わりに、elif を記述します。
インデントとコードブロック
コード ブロックとは、一緒に実行されるコードのグループを指します。Python
では、コード ブロックを表すためにインデントが使用されます。インデントのレベルが異なると、プログラムの実行効果も異なります。
コード1
a = input("请输入一个整数: ")
if a == "1":
print("hello")
print("world")
コード2
a = input("请输入一个整数: ")
if a == "1":
print("hello")
print("world")
違い
コード 1 では、print("world") のインデントは 1 レベルです。このステートメントは if 内のコード ブロックに属しており、条件が true の場合にのみ実行されます。条件が true でない場合は、実行されます。コード 2 では、print("world
" ) はインデントされていません。このステートメントは if の外側のコードであり、if 内のコード ブロックに属しません。これは、条件が if であるかどうかに関係なく実行されることを意味します。さらに、コード ブロックをコード ブロック内にネストすることもできます。
a = input("请输入第一个整数: ")
b = input("请输入第二个整数: ")
if a == "1":
if b == "2":
print("hello")
print("world")
print("python")
このコードでは
print("hello") には 2 レベルのインデントがあり、条件 if b == "2" が true であるコード ブロックに属します。
print("world") には 1 レベルのインデントがあり、条件が true であるコード ブロックに属します。 of if a == "1" is true.
print("python") has no indentation. このステートメントは、上記 2 つの条件が true であるかどうかに関係なく実行されます。
インデントに基づいてコード ブロックを表現する利点は、プログラマがコード間の相対的な関係を明確にするために明確なインデントを記述する必要があることです。インデントが正しく記述されていない場合、エラーが直接報告されます。C++ / Java 言語と同様、たとえそうでなくても、インデントが全く書かれていない場合、構文はエラーを報告しません。コードの可読性は比較的劣ります。同時に、インデントのレベルが多いと、あるステートメントがどのレベルのステートメントであるかを区別できなくなりやすいという欠点があります。属する。
if a == 1:
if b == 2:
if c == 3:
if d == 4:
if e == 5:
if f == 6:
if g == 7:
print("hello")
print("1")
print("2")
そのため、「Python を書くには独自のノギスが必要」と言われています。
空のステートメントパス
例: 数字を入力します。数字が 1 の場合は、hello と出力します。
a = int(input("请输入一个整数:"))
if a == 1:
print("hello")
次のようにも等価に書くこともできます
a = int(input("请输入一个整数:"))
if a != 1:
pass
else:
print("hello")
Pass は空のステートメントを表し、プログラムの実行には何の影響も与えず、Python 構文形式を要件に準拠させるために場所を占めるだけです。
しかし、次のように書くことはできません
a = int(input("请输入一个整数:"))
if a != 1:
else:
print("hello")
Python 構文に準拠していない場合は、エラーが直接報告されます。
ループ文
1. while ループ
基本的な構文形式
while 条件:
循环体
条件が true の場合はループ本体のコードが実行され、
条件が false の場合はループが終了します。
例: 1! + 2! + 3! + 4! + 5! を検索します。
num = 1
sum = 0
while num <= 5:
factorResult = 1
i = 1
while i <= num:
factorResult *= i
i += 1
sum += factorResult
num += 1
print(sum)
このプログラムは二重ループを使用します。つまり、ループをループ ステートメントに含めることもできます。
2.forループ
基本的な構文形式
for 循环变量 in 可迭代对象:
循环体
知らせ:
Python の for は他の言語と異なり、「初期化文」「ループ条件判定文」「ループ変数更新文」などはなく、より単純ないわゆる「内部に複数の要素を含む」ことを指す「反復可能オブジェクト」が存在します
。要素を1つずつ取り出せる特殊な変数です。」
例 1: 1 ~ 10 を印刷する
for i in range(1, 11):
print(i)
range 関数を使用すると、反復可能なオブジェクトを生成できます。生成される範囲は [1, 11)、つまり [1, 10] です。
例 2: 2、4、6、8、10 を印刷する
for i in range(2, 12, 2):
print(i)
range の 3 番目のパラメーターを使用して、反復中の「ステップ サイズ」、つまりループ変数を一度に何回追加するかを指定できます。
例 3: 10-1 を印刷する
for i in range(10, 0, -1):
print(i)
範囲のステップ サイズは負の数に設定することもできます
例 3: 1 ~ 100 の合計を求める
sum = 0
for i in range(1, 101):
sum += i
print(sum)
continue と Break の使用法は C 言語と同様であるため、ここでは説明しません。