推奨事項: NSDT シーン エディターを使用して 3D アプリケーション シーンを迅速に構築する
Python が開発環境にすでにインストールされている場合は、Python REPL とコードを起動します。あるいは、インストールをスキップしてすぐにコーディングを開始したい場合は、Google Colab にアクセスして一緒にコーディングすることをお勧めします。
こんにちは、パイソン!
古典的な「Hello, world!」プログラムを Python で作成する前に、この言語に関する情報をいくつか説明します。Python はインタプリタ型言語です。それはどういう意味ですか?
どのようなプログラミング言語であっても、作成したすべてのソース コードは機械語に翻訳される必要があります。C や C++ などのコンパイル言語では、プログラムを実行する前にマシン コード全体が必要ですが、インタプリタはソース コードを解析して動的に解釈します。
Python スクリプトを作成し、次のコードを入力して実行します。
print("Hello, World!")
Hello, World! を印刷するには では、Python に多数ある組み込み関数の 1 つである「print()」関数を使用しました。
この非常に単純な例では、「Hello, World!」がシーケンス、つまり文字列であることに注意してください。Python 文字列は一対の単一引用符または二重引用符で区切られます。したがって、任意のメッセージ文字列を出力するには、「print("<message_string>")」を使用できます。
ユーザー入力を読む
ここでさらに一歩進んで、「input()」関数を使用してユーザーからの入力を読み取りましょう。ユーザーには、何を入力する必要があるかを常に知らせるプロンプトが表示される必要があります。
これは、ユーザー名を入力として受け取り、ユーザーに挨拶する単純なプログラムです。
コメントはユーザーに追加のコンテキストを提供することで、コードを読みやすくするのに役立ちます。Python の単一行コメントは # で始まります。
以下のコード スニペットの文字列の前に「f」があることに注意してください。このような文字列は、フォーマット文字列または f-stringと呼ばれます。f-string 内の変数の値を置換するには、次のように、一対の中括弧内に変数の名前を指定します。
# Get user input
user_name = input("Please enter your name: ")
# Greet the user
print(f"Hello, {user_name}! Nice to meet you!")
プログラムを実行すると、最初に入力を求められ、次に挨拶メッセージが出力されます。
Please enter your name: Bala
Hello, Bala! Nice to meet you!
Python の変数とデータ型について学び続けましょう。
Python の変数とデータ型
どのプログラミング言語でも、変数は情報を格納するコンテナのようなものです。これまでに書いたコードでは、変数「user_name」を作成しました。ユーザーが自分の名前 (文字列) を入力すると、その名前は「user_name」変数に保存されます。
Python の基本的なデータ型
相互に構築する簡単な例を使用して、Python の基本的なデータ型である「int」、「float」、「str」、および「bool」を見てみましょう。
整数 ('int'): 整数は、小数点のない整数です。次のように整数を作成して変数に割り当てることができます。
age = 25
discount= 10
これらは、変数に値を代入する代入ステートメントです。C などの言語では、変数を宣言するときにデータ型を指定する必要がありますが、Python は動的に型指定される言語です。値からデータ型を推測します。したがって、変数を再割り当てして、まったく異なるデータ型の値を保持することができます。
number = 1
number = 'one'
Python では「type」関数を使用して変数のデータ型を確認できます。
number = 1
print(type(number))
「数値」は整数です。
Output >>> <class 'int'>
次に、文字列値を「number」に割り当てます。
number = 'one'
print(type(number))
Output >>> <class 'str'>
浮動小数点 (「float」): 浮動小数点は、小数点付きの実数を表します。次のようにして、「float」データ型の変数を作成できます。
height = 5.8
pi = 3.14159
数値データ型に対してさまざまな演算 (加算、減算、下限除算、累乗など) を実行できます。ここではいくつかの例を示します。
# Define numeric variables
x = 10
y = 5
# Addition
add_result = x + y
print("Addition:", add_result) # Output: 15
# Subtraction
sub_result = x - y
print("Subtraction:", sub_result) # Output: 5
# Multiplication
mul_result = x * y
print("Multiplication:", mul_result) # Output: 50
# Division (floating-point result)
div_result = x / y
print("Division:", div_result) # Output: 2.0
# Integer Division (floor division)
int_div_result = x // y
print("Integer Division:", int_div_result) # Output: 2
# Modulo (remainder of division)
mod_result = x % y
print("Modulo:", mod_result) # Output: 0
# Exponentiation
exp_result = x ** y
print("Exponentiation:", exp_result) # Output: 100000
文字列 ('str'):文字列は、一重引用符または二重引用符で囲まれた一連の文字です。
name = "Alice"
quote = 'Hello, world!'
ブール値(「bool」): ブール値は「true」または「false」を表し、条件の真理値を表します。
is_student = True
has_license = False
Python はさまざまなデータ型を柔軟に処理できるため、データを効率的に保存、さまざまな操作を実行、操作できます。
これまでに学習したすべてのデータ型をまとめた例を次に示します。
# Using different data types together
age = 30
score = 89.5
name = "Bob"
is_student = True
# Checking if score is above passing threshold
passing_threshold = 60.0
is_passing = score >= passing_threshold
print(f"{name=}")
print(f"{age=}")
print(f"{is_student=}")
print(f"{score=}")
print(f"{is_passing=}")
これが出力です:
Output >>>
name='Bob'
age=30
is_student=True
score=89.5
is_passing=True
基本的なデータ型を超えて
教室の生徒に関する情報を管理しているとします。学生ごとに変数を繰り返し定義するよりも、コレクションを作成する(すべての学生の情報を保存する)方が便利です。
リスト
リストは、角括弧で囲まれた順序付けされた項目のコレクションです。リスト内の項目はすべて同じデータ型または異なるデータ型にすることができます。リストは可変です。つまり、作成後にその内容を変更できます。
ここで、「student_names」には学生の名前が含まれています。
# List
student_names = ["Alice", "Bob", "Charlie", "David"]
タプル
タプルはリストと同様に順序付けされたコレクションですが、不変。つまり、タプルの作成後に内容を変更することはできません。
「student_scores」を学生のテストのスコアを含む不変のコレクションにしたいとします。
# Tuple
student_scores = (85, 92, 78, 88)
辞書
ディクショナリは、キーと値のペアのコレクションです。ディクショナリのキーは一意である必要があり、対応する値にマップされます。これらは変更可能であり、情報を特定のキーに関連付けることができます。
ここで、「student_info」には、各生徒に関する情報 (名前とスコア) がキーと値のペアとして含まれています。
student_info = {'Alice': 85, 'Bob': 92, 'Charlie': 78, 'David': 88}
しかし、待ってください。Python で辞書を作成するもっと洗練された方法があります。
私たちは辞書の理解という新しい概念を学ぼうとしています。すぐには分からなくても、心配する必要はありません。いつでもさらに学習して、後で取り組むことができます。
しかし、その理解は非常に直感的な理解です。「student_info」辞書に学生の名前をキーとして、対応するテストのスコアを値として含めたい場合は、次のように辞書を作成できます。
# Using a dictionary comprehension to create the student_info dictionary
student_info = {name: score for name, score in zip(student_names, student_scores)}
print(student_info)
「zip()」関数を使用して「student_names」リストと「student_scores」タプルの両方を反復処理する方法に注目してください。
Output >>>
{'Alice': 85, 'Bob': 92, 'Charlie': 78, 'David': 88}
この例では、辞書理解により、「student_names」リスト内の各生徒名と「student_scores」タプル内の対応するテストスコアが直接ペアリングされ、名前がキー、スコアが値である「student_info」辞書が作成されます。
プリミティブ データ型といくつかのシーケンス/反復可能オブジェクトについては理解できたので、説明の次の部分である制御構造に進みましょう。
Python の制御構造
Python スクリプトを実行すると、スクリプト内でコードが実行されるのと同じ順序でコードが実行されます。
場合によっては、特定の条件に基づいて実行フローを制御したり、反復可能なオブジェクトをループしてオブジェクト内の項目を処理したりするロジックを実装する必要があります。
if-else ステートメントが分岐と条件付き実行をどのように容易にするかを見ていきます。また、ループを使用してシーケンスを反復し、ループ制御ステートメントを使用して中断して続行する方法も学びます。
if ステートメント
「if」ステートメントは、特定の条件が true の場合にのみコード ブロックを実行する必要がある場合に使用できます。条件が false と評価された場合、コード ブロックは実行されません。
画像出典:作者
次の例を考えてみましょう。
score = 75
if score >= 60:
print("Congratulations! You passed the exam.")
この例では、「if」ブロック内のコードは、「score」が 60 以上の場合にのみ実行されます。「スコア」は 75 なので、「おめでとうございます! 試験に合格しました。」というメッセージが出力されます。
Output >>> Congratulations! You passed the exam.
If-else 条件文
「if-else」ステートメントを使用すると、条件が true の場合は 1 つのコード ブロックを実行し、条件が false の場合は別のコード ブロックを実行できます。
画像出典:作者
テストスコアの例を基にしてみましょう。
score = 45
if score >= 60:
print("Congratulations! You passed the exam.")
else:
print("Sorry, you did not pass the exam.")
ここで、「スコア」が 60 未満の場合、「else」ブロック内のコードが実行されます。
Output >>> Sorry, you did not pass the exam.
イフ・エリフ・エルス・ラダー
「if-elif-else」ステートメントは、チェックする条件が複数ある場合に使用されます。これにより、複数の条件をテストし、最初に真の条件が見つかった場合に対応するコード ブロックを実行できます。
「if」ステートメントとすべての「elif」ステートメントの条件が false と評価された場合、「else」ブロックが実行されます。
画像出典:作者
score = 82
if score >= 90:
print("Excellent! You got an A.")
elif score >= 80:
print("Good job! You got a B.")
elif score >= 70:
print("Not bad! You got a C.")
else:
print("You need to improve. You got an F.")
この例では、プログラムは複数の条件に基づいて「スコア」をチェックします。最初の true 条件ブロック内のコードが実行されます。「スコア」は 82 なので、次のようになります。
Output >>> Good job! You got a B.
ネストされた if ステートメント
別の条件内の複数の条件をチェックする必要がある場合は、ネストされた「if」ステートメントを使用します。
name = "Alice"
score = 78
if name == "Alice":
if score >= 80:
print("Great job, Alice! You got an A.")
else:
print("Good effort, Alice! Keep it up.")
else:
print("You're doing well, but this message is for Alice.")
この例には、ネストされた「if」ステートメントがあります。まず、プログラムは「名前」が「Alice」であるかどうかをチェックします。true の場合、「スコア」をチェックします。「スコア」が 78 であるため、内側の「else」ブロックが実行され、「頑張ってください、アリス! 頑張ってください。」と出力されます。
Output >>> Good effort, Alice! Keep it up.
Python には、コレクションを反復処理したり、反復的なタスクを実行したりするためのループ構造がいくつか用意されています。
for ループ
Python では、「for」ループは、既存の反復可能なオブジェクトを反復できる簡潔な構文を提供します。次のように「student_names」リストを反復処理できます。
student_names = ["Alice", "Bob", "Charlie", "David"]
for name in student_names:
print("Student:", name)
上記のコードは次のように出力します。
Output >>>
Student: Alice
Student: Bob
Student: Charlie
Student: David
そしてループ
条件が true の場合にコードのブロックを実行したい場合は、「while」ループを使用できます。
同じ「student_names」リストを使用してみましょう。
# Using a while loop with an existing iterable
student_names = ["Alice", "Bob", "Charlie", "David"]
index = 0
while index < len(student_names):
print("Student:", student_names[index])
index += 1
この例では、学生の名前を含むリスト「student_names」があります。「while」ループを使用して、「index」変数を追跡することでリストを反復処理します。
ループは、「インデックス」がリストの長さより短い限り継続します。ループでは、各生徒の名前を出力し、「インデックス」をインクリメントして次の生徒に移動します。リストの長さを取得するために「len()」関数が使用されていることに注意してください。
これにより、「for」ループを使用してリストを反復処理した場合と同じ結果が得られます。
Output >>>
Student: Alice
Student: Bob
Student: Charlie
Student: David
「while」ループを使用して、リストが空になるまでリストから要素をポップしてみましょう。
student_names = ["Alice", "Bob", "Charlie", "David"]
while student_names:
current_student = student_names.pop()
print("Current Student:", current_student)
print("All students have been processed.")
リスト メソッド「pop」は、リストに存在する最後の要素を削除して返します。
この例では、「student_names」リストに要素がある限り、「while」ループが継続します。ループでは、「pop()」メソッドを使用してリストの最後の要素を削除して返し、現在の生徒の名前を出力します。
このループは、すべての生徒が処理され、最後のメッセージがループの外に出力されるまで継続されます。
Output >>>
Current Student: David
Current Student: Charlie
Current Student: Bob
Current Student: Alice
All students have been processed.
一般に、「for」ループはよりクリーンで読みやすく、既存の反復可能なオブジェクト (リストなど) を反復するために使用されます。ただし、ループ条件がより複雑な場合は、「while」ループを使用すると、より詳細な制御が可能になります。
ループ制御文
「break」はループを途中で終了し、「Continue」は現在の反復の残りをスキップして次の反復に移動します。
以下に例を示します。
student_names = ["Alice", "Bob", "Charlie", "David"]
for name in student_names:
if name == "Charlie":
break
print(name)
「name」が Charlie の場合、コントロールはループから抜け出し、次の出力を返します。
Output >>>
Alice
Bob
実行中の周期的な動作のシミュレーション
Python には、他のプログラミング言語のような組み込みの「do-while」ループがありません。ただし、「break」ステートメントを含む「while」ループを使用すると、同じ動作を実現できます。Python で「do-while」ループをシミュレートする方法は次のとおりです。
while True:
user_input = input("Enter 'exit' to stop: ")
if user_input == 'exit':
break
この例では、ユーザーが「exit」を入力するまで、ループは無期限に実行され続けます。条件は最初に「True」に設定されており、ループ内でユーザーの入力がチェックされるため、ループは少なくとも 1 回実行されます。ユーザーが「exit」と入力すると、「break」ステートメントが実行され、ループが終了します。
出力例は次のとおりです。
Output >>>
Enter 'exit' to stop: hi
Enter 'exit' to stop: hello
Enter 'exit' to stop: bye
Enter 'exit' to stop: try harder!
Enter 'exit' to stop: exit
このアプローチは、条件をチェックする前にループ本体が少なくとも 1 回実行されることが保証されている他の言語の「do-while」ループに似ていることに注意してください。
まとめと次のステップ
このチュートリアルを問題なくコーディングできたことを願っています。Python の基本を理解したので、学んだすべての概念を適用する非常に単純なプロジェクトの作成を開始します。