Pythonの基本構文まとめ|初心者が最初に覚える文法
Python初心者向け基本構文完全ガイド。変数・条件分岐・ループ・関数の基本文法から実践的なコード例まで分かりやすく解説。
Pythonの基本構文まとめ|初心者が最初に覚える文法
みなさん、Pythonを始めたばかりで基本文法に悩んでいませんか?
「if文の書き方がよくわからない」 「for文とwhile文の違いって何?」 「関数ってどうやって作るの?」
こんな疑問を持ったことはありませんか?
実は、Pythonの基本構文はそれほど難しくありません。 変数・条件分岐・ループ・関数の4つを覚えれば、ほとんどのプログラムが書けるようになります。
この記事では、Python初心者の方が最初に覚えるべき基本構文を、具体的なコード例とともに詳しく解説します。 読み終わる頃には、Pythonの基本文法をしっかりマスターできますよ!
変数と基本データ型を理解しよう
まずは、Pythonプログラミングの基礎となる変数とデータ型について学びましょう。 これは全ての基本になる重要な部分です。
変数の定義と使い方
変数は、データを入れる箱のようなものです。
# 変数の基本def variables_basics(): """変数の基本的な使い方""" print("=== 変数の基本 ===") # 1. 基本的な変数の定義 print("1. 基本的な変数の定義:") # 文字列変数 name = "田中太郎" message = "こんにちは、Pythonの世界へようこそ!" # 数値変数 age = 25 height = 170.5 # ブール値変数 is_student = True has_license = False print(f" 名前: {name}") print(f" メッセージ: {message}") print(f" 年齢: {age}歳") print(f" 身長: {height}cm") print(f" 学生: {is_student}") print(f" 免許: {has_license}")
variables_basics()
このコードでは、色々な種類の変数を作っています。
文字列変数では、name = "田中太郎"
のように、文字をダブルクォートで囲んで保存します。
日本語も英語も、どんな文字でも保存できます。
数値変数では、age = 25
のように、数字をそのまま代入します。
小数点がある場合は、height = 170.5
のように書きます。
ブール値変数では、True
またはFalse
の2つの値だけを使います。
「はい・いいえ」や「オン・オフ」のような情報を保存するときに便利です。
変数を使うときは、print(f"名前: {name}")
のように、{}
の中に変数名を書きます。
これをf文字列と呼び、とても便利な機能です。
基本データ型の理解
Pythonには、主に4つの基本的なデータ型があります。
# 基本データ型の詳細def basic_data_types(): """基本的なデータ型とその操作""" print("=== 基本データ型 ===") # 1. 文字列(str) print("1. 文字列型 (str):") greeting = "おはようございます" name = "Python" # 文字列の結合 combined_message = greeting + "、" + name + "を学習中です!" print(f" 結合: {combined_message}") # f-string(推奨する方法) formatted_message = f"{greeting}、{name}を学習中です!" print(f" f-string: {formatted_message}")
basic_data_types()
**文字列型(str)**は、文字や文章を保存するデータ型です。
文字列を結合(つなげる)するには、+
を使います。
greeting + "、" + name
のように書くと、文字列同士がつながります。
でも、もっと便利なのがf文字列です。
f"{greeting}、{name}を学習中です!"
のように書くと、同じ結果が得られます。
f文字列の方が読みやすく、実際の開発でもよく使われます。
# 数値型の計算例def number_examples(): """数値型の基本操作""" # 2. 整数(int) print("2. 整数型 (int):") a = 10 b = 3 print(f" a = {a}, b = {b}") print(f" 足し算: {a} + {b} = {a + b}") print(f" 引き算: {a} - {b} = {a - b}") print(f" 掛け算: {a} * {b} = {a * b}") print(f" 割り算: {a} / {b} = {a / b}") print(f" 整数割り算: {a} // {b} = {a // b}") print(f" 余り: {a} % {b} = {a % b}")
number_examples()
**整数型(int)**は、小数点のない数値を扱います。
基本的な計算演算子を覚えておきましょう。
+
:足し算-
:引き算*
:掛け算/
:割り算(結果は小数点になる)//
:整数割り算(小数点以下を切り捨て)%
:余りを求める
//
と%
は少し特殊ですが、プログラミングではよく使います。
10 // 3
は3(10÷3の整数部分)、10 % 3
は1(10÷3の余り)になります。
型変換の基本
データ型を変換することもできます。
# 型変換の例def type_conversion(): """型変換の基本""" print("5. 型変換:") # 文字列から数値へ number_str = "42" number_int = int(number_str) number_float = float(number_str) print(f" 文字列 '{number_str}' → 整数 {number_int}") print(f" 文字列 '{number_str}' → 浮動小数点 {number_float}") # 数値から文字列へ age = 30 age_str = str(age) print(f" 整数 {age} → 文字列 '{age_str}'")
type_conversion()
型変換は、int()
、float()
、str()
という関数を使います。
int("42")
で文字列を整数に、str(30)
で数値を文字列に変換できます。
ユーザーからの入力を数値として使いたいときによく使います。
条件分岐(if文)をマスターしよう
プログラムの流れを制御する条件分岐について学びましょう。 if文を使うと、条件に応じて違う処理を実行できます。
基本的なif文の書き方
条件分岐の基本形を見てみましょう。
# if文の基本def conditional_statements(): """条件分岐(if文)の基本的な使い方""" print("=== 条件分岐(if文) ===") # 1. 基本的なif文 print("1. 基本的なif文:") age = 20 if age >= 18: print(f" {age}歳は成人です") if age < 18: print(f" {age}歳は未成年です")
conditional_statements()
if文の基本構造は、if 条件:
です。
age >= 18
が条件で、これがTrue(真)の場合に、下の行の処理が実行されます。
条件の後ろには必ず:
(コロン)を付けます。
実行したい処理は、インデント(字下げ)で書きます。 Pythonでは、スペース4つまたはタブ1つでインデントするのが一般的です。
if-else文とif-elif-else文
もう少し複雑な条件分岐を見てみましょう。
# より複雑な条件分岐def advanced_conditionals(): """if-else文とif-elif-else文""" # 2. if-else文 print("2. if-else文:") score = 75 if score >= 60: print(f" 点数{score}: 合格です!") else: print(f" 点数{score}: 不合格です...") # 3. if-elif-else文 print("3. if-elif-else文:") temperature = 25 if temperature >= 30: print(f" {temperature}度: 暑いです") elif temperature >= 20: print(f" {temperature}度: 快適です") elif temperature >= 10: print(f" {temperature}度: 涼しいです") else: print(f" {temperature}度: 寒いです")
advanced_conditionals()
if-else文では、条件が合わない場合の処理も書けます。
if
の条件がFalse(偽)の場合、else
の処理が実行されます。
if-elif-else文では、複数の条件を順番にチェックできます。
elif
は「else if」の短縮形で、追加の条件を指定します。
上から順番に条件をチェックして、最初に当てはまった条件の処理だけが実行されます。
どの条件にも当てはまらない場合は、最後のelse
が実行されます。
比較演算子と論理演算子
条件を作るための演算子について学びましょう。
# 比較演算子と論理演算子def comparison_and_logical_operators(): """比較演算子と論理演算子の使い方""" print("=== 比較演算子と論理演算子 ===") # 1. 比較演算子 print("1. 比較演算子:") a = 10 b = 20 c = 10 print(f" a = {a}, b = {b}, c = {c}") print(f" a == c (等しい): {a == c}") print(f" a != b (等しくない): {a != b}") print(f" a < b (より小さい): {a < b}") print(f" a > b (より大きい): {a > b}") print(f" a <= c (以下): {a <= c}") print(f" b >= a (以上): {b >= a}")
comparison_and_logical_operators()
比較演算子は、2つの値を比べるときに使います。
主要な比較演算子を覚えておきましょう。
==
:等しい(注意:=
ではなく==
)!=
:等しくない<
:より小さい>
:より大きい<=
:以下(等しいか小さい)>=
:以上(等しいか大きい)
特に注意が必要なのは、等しいかどうかを調べるときは==
を使うことです。
=
は代入に使うので、混同しないよう気をつけましょう。
# 論理演算子の例def logical_operators_example(): """論理演算子の詳しい例""" print("2. 論理演算子:") is_student = True has_id = True age = 19 print(f" 学生: {is_student}, ID所持: {has_id}, 年齢: {age}") # and演算子(すべて真の場合のみ真) can_enter_library = is_student and has_id print(f" 図書館入館可能(学生 and ID所持): {can_enter_library}") # or演算子(一つでも真なら真) can_get_discount = is_student or age >= 65 print(f" 割引適用(学生 or シニア): {can_get_discount}") # not演算子(真偽を反転) is_not_student = not is_student print(f" 学生ではない: {is_not_student}")
logical_operators_example()
論理演算子は、複数の条件を組み合わせるときに使います。
and
:すべての条件が真の場合のみ真or
:どれか一つでも真なら真not
:真偽を反転(真→偽、偽→真)
例えば、「学生でかつIDを持っている」という条件はis_student and has_id
と書きます。
「学生またはシニア」という条件はis_student or age >= 65
と書きます。
ループ文(for文・while文)を理解しよう
繰り返し処理を実行するためのループ文について学びましょう。 同じ処理を何度も書く必要がなくなり、とても便利です。
for文の基本的な使い方
for文は、決まった回数や範囲で繰り返すときに使います。
# for文の基本def for_loop_basics(): """for文の基本的な使い方""" print("=== for文の基本 ===") # 1. range()を使った基本的なfor文 print("1. range()を使った基本的なfor文:") print(" 1から5まで表示:") for i in range(1, 6): print(f" {i}") print(" 0から4まで表示(デフォルトは0から):") for i in range(5): print(f" {i}")
for_loop_basics()
for文の基本構造は、for 変数 in 範囲:
です。
range(1, 6)
は「1から5まで」という意味です。
注意点は、範囲の終わりの数字(この場合6)は含まれないことです。
range(5)
と書くと、0から4までになります。
プログラミングでは0から数えることが多いので、この書き方をよく使います。
# リストを使ったfor文def for_loop_with_lists(): """リストを使ったfor文""" print("2. リストでのfor文:") fruits = ["りんご", "みかん", "バナナ", "ぶどう"] print(" 果物一覧:") for fruit in fruits: print(f" {fruit}") # インデックス番号も一緒に取得 print(" インデックス付きで表示:") for index, fruit in enumerate(fruits): print(f" {index + 1}. {fruit}")
for_loop_with_lists()
リスト(配列)の要素を一つずつ処理することもできます。
for fruit in fruits:
と書くと、fruits
リストの各要素が順番にfruit
変数に入ります。
enumerate()
を使うと、要素と一緒にインデックス番号(何番目か)も取得できます。
index
が番号、fruit
が要素になります。
実践的なfor文の使い方
実際によく使われるfor文のパターンを見てみましょう。
# 実践的なfor文def practical_for_loops(): """実践的なfor文の例""" print("6. 実践例:成績処理システム:") students = [ {"name": "田中太郎", "math": 85, "english": 78}, {"name": "佐藤花子", "math": 92, "english": 89}, {"name": "鈴木次郎", "math": 76, "english": 84} ] print(" 学生成績表:") total_class_score = 0 student_count = 0 for student in students: name = student["name"] math_score = student["math"] english_score = student["english"] average = (math_score + english_score) / 2 # 成績判定 if average >= 90: grade = "A" elif average >= 80: grade = "B" elif average >= 70: grade = "C" else: grade = "D" print(f" {name}: 数学{math_score}点, 英語{english_score}点, 平均{average:.1f}点 (評価: {grade})") total_class_score += average student_count += 1 class_average = total_class_score / student_count print(f" クラス平均: {class_average:.1f}点")
practical_for_loops()
この例では、学生の成績を処理しています。
students
は辞書のリストになっています。
各学生の情報を辞書({}
)で表現し、それをリストにまとめています。
for文の中で、各学生の情報を取り出して平均点を計算し、成績判定を行っています。 最後にクラス全体の平均も計算しています。
このように、for文を使うと複雑なデータ処理も効率的に行えます。
while文の使い方
while文は、条件が満たされる間だけ繰り返すときに使います。
# while文の基本def while_loop_basics(): """while文の基本的な使い方""" print("=== while文の基本 ===") # 1. 基本的なwhile文 print("1. 基本的なwhile文:") counter = 1 print(" 1から5まで表示:") while counter <= 5: print(f" カウンター: {counter}") counter += 1 # 重要:条件を変更する処理
while_loop_basics()
while文の基本構造は、while 条件:
です。
条件がTrue
の間、処理を繰り返し実行します。
重要なポイントは、ループの中で条件を変更する処理(counter += 1
)を必ず入れることです。
これを忘れると、条件が永遠にTrue
のままになり、無限ループという状態になってしまいます。
# while文の実践的な使い方def practical_while_loop(): """while文の実践的な使い方""" print("2. 条件による繰り返し:") # パスワード入力のシミュレーション correct_password = "secret123" attempts = 0 max_attempts = 3 # 実際のプログラムではinput()を使うが、ここではシミュレーション user_inputs = ["wrong1", "wrong2", "secret123"] # シミュレーション用 input_index = 0 print(" パスワード認証システム:") while attempts < max_attempts: # シミュレーション:実際はinput("パスワードを入力してください: ") user_password = user_inputs[input_index] if input_index < len(user_inputs) else "wrong" input_index += 1 print(f" 試行 {attempts + 1}: パスワード入力 → {user_password}") if user_password == correct_password: print(" ✅ ログイン成功!") break # ループを抜ける else: attempts += 1 remaining = max_attempts - attempts if remaining > 0: print(f" ❌ パスワードが違います。残り{remaining}回") else: print(" 🔒 ロックアウトされました")
practical_while_loop()
この例では、パスワード認証システムを作っています。
while attempts < max_attempts:
で、試行回数が上限に達するまで繰り返します。
正しいパスワードが入力されたら、break
でループを抜けます。
break
は、ループを強制的に終了させる命令です。
while文でよく使われるテクニックの一つです。
関数の定義と使用をマスターしよう
コードを整理し再利用可能にする関数について学びましょう。 関数を使うと、プログラムがとても読みやすくなります。
基本的な関数の定義
関数は、処理をまとめて名前を付けたものです。
# 関数の基本def function_basics(): """関数の基本的な定義と使用方法""" print("=== 関数の基本 ===") # 1. 最もシンプルな関数 print("1. 最もシンプルな関数:") def say_hello(): """挨拶をする関数""" print(" こんにちは!") print(" Pythonの世界へようこそ!") # 関数を呼び出し say_hello()
function_basics()
関数の基本構造は、def 関数名():
です。
def
は「define」(定義する)の略です。
関数名の後ろには必ず()
を付けます。
関数を呼び出す(実行する)ときは、say_hello()
のように関数名に()
を付けて書きます。
# 引数を受け取る関数def function_with_parameters(): """引数を受け取る関数""" print("2. 引数を受け取る関数:") def greet_person(name): """名前を受け取って個別の挨拶をする""" print(f" こんにちは、{name}さん!") def introduce_myself(name, age): """名前と年齢で自己紹介""" print(f" 私の名前は{name}です。{age}歳です。") # 関数の呼び出し greet_person("田中") greet_person("佐藤") introduce_myself("山田太郎", 25)
function_with_parameters()
引数(ひきすう)は、関数に渡すデータです。
def greet_person(name):
のように、()
の中に変数名を書きます。
このname
が引数になります。
関数を呼び出すときは、greet_person("田中")
のように、具体的な値を渡します。
複数の引数がある場合は、def introduce_myself(name, age):
のように、カンマで区切って書きます。
戻り値を返す関数
関数から結果を返すこともできます。
# 戻り値を返す関数def function_with_return(): """戻り値を返す関数""" print("3. 戻り値を返す関数:") def add_numbers(a, b): """2つの数を足し算する""" result = a + b return result def calculate_area(width, height): """長方形の面積を計算""" area = width * height return area # 戻り値を使用 sum_result = add_numbers(10, 20) print(f" 10 + 20 = {sum_result}") room_area = calculate_area(6, 8) print(f" 6m × 8mの部屋の面積: {room_area}㎡")
function_with_return()
return文を使うと、関数から値を返すことができます。
return result
で、計算結果を関数の呼び出し元に返しています。
返された値は、sum_result = add_numbers(10, 20)
のように変数に受け取ることができます。
関数にreturn
がない場合、自動的にNone
という特殊な値が返されます。
デフォルト引数と複数の戻り値
より高度な関数の機能を見てみましょう。
# 高度な関数機能def advanced_functions(): """デフォルト引数と複数の戻り値""" print("4. デフォルト引数を持つ関数:") def create_profile(name, age, city="東京"): """プロフィールを作成(都市はデフォルトで東京)""" return f"{name}さん({age}歳、{city}在住)" def calculate_tax(price, tax_rate=0.1): """税込み価格を計算(税率デフォルト10%)""" total = price * (1 + tax_rate) return total # デフォルト引数の使用例 profile1 = create_profile("田中太郎", 30) # cityは「東京」 profile2 = create_profile("佐藤花子", 25, "大阪") # cityを指定 print(f" プロフィール1: {profile1}") print(f" プロフィール2: {profile2}")
advanced_functions()
デフォルト引数は、引数に初期値を設定する機能です。
def create_profile(name, age, city="東京"):
のように、=
で初期値を指定します。
関数を呼び出すときにcity
を指定しなければ、自動的に「東京」が使われます。
# 複数の戻り値def multiple_return_values(): """複数の戻り値を返す関数""" print("5. 複数の戻り値を返す関数:") def calculate_stats(numbers): """リストの統計を計算""" if not numbers: return 0, 0, 0, 0 total = sum(numbers) average = total / len(numbers) maximum = max(numbers) minimum = min(numbers) return total, average, maximum, minimum # 複数の戻り値を受け取り scores = [85, 92, 78, 96, 88] total, avg, max_score, min_score = calculate_stats(scores) print(f" 点数: {scores}") print(f" 合計: {total}, 平均: {avg:.1f}, 最高: {max_score}, 最低: {min_score}")
multiple_return_values()
複数の戻り値は、カンマで区切って返すことができます。
return total, average, maximum, minimum
のように書くと、4つの値を同時に返せます。
受け取るときも、total, avg, max_score, min_score = calculate_stats(scores)
のように、カンマで区切って受け取ります。
これは、統計処理や座標計算などでよく使われるテクニックです。
まとめ:Python基本構文をマスターしよう
Python基本構文の重要なポイントをまとめましょう。 これらをマスターすれば、ほとんどのプログラムが書けるようになります。
構文チェックリスト
基本構文の確認項目をまとめました。
# Python基本構文チェックリストdef syntax_checklist(): """Python基本構文のチェックリストと実践のコツ""" print("=== Python基本構文チェックリスト ===") # 基本構文の要点 syntax_points = { "変数": [ "意味のある変数名を使用", "snake_caseで命名(例:user_name)", "型変換(int, float, str)を理解", "f-stringで文字列フォーマット" ], "条件分岐": [ "if-elif-elseの構造を理解", "比較演算子(==, !=, <, >)を活用", "論理演算子(and, or, not)を活用", "インデントを正しく使用" ], "ループ": [ "for文とwhile文の使い分け", "range()関数の活用", "break、continueの適切な使用", "enumerate()でインデックス取得" ], "関数": [ "単一責任の原則(1つの関数は1つの仕事)", "適切な引数とデフォルト値", "戻り値の明確化", "docstringでドキュメント化" ] } for category, points in syntax_points.items(): print(f"{category}のポイント:") for i, point in enumerate(points, 1): print(f" {i}. {point}")
syntax_checklist()
よくある間違いと対策
初心者がよくする間違いと、その対策をまとめました。
-
インデントエラー
- 対策:スペース4つまたはタブで統一
- 例:if文、for文、関数定義後のインデント
-
変数名の間違い
- 対策:定義した変数名と同じものを使用
- 例:
namae
ではなくname
-
型の不一致
- 対策:
str()
、int()
、float()
で型変換 - 例:文字列の数字を計算に使う場合
- 対策:
-
無限ループ
- 対策:while文の条件を必ず変更
- 例:カウンターの更新を忘れない
-
関数の戻り値忘れ
- 対策:
return
を忘れずに記述 - 例:計算結果を返す関数
- 対策:
実践的な学習のコツ
効率的にPythonを学ぶためのコツをお伝えします。
- 小さなプログラムから始める:最初は簡単な計算や文字列処理から
- エラーメッセージを恐れずに読む:エラーは学習の良い機会
- コードを実際に書いて実行する:理論だけでなく実践が重要
- 他の人のコードを読んで学ぶ:GitHub などで良いコードを参考に
- 同じ機能を違う方法で実装してみる:複数の書き方を覚える
- コメントを書いて理解を深める:なぜそう書いたかを記録
- 段階的に機能を追加していく:一度に全部作ろうとしない
次のステップ
基本構文をマスターしたら、次はこれらに挑戦してみましょう。
- リストと辞書の操作をマスター
- ファイル読み書きの基本
- 例外処理(try-except)の理解
- モジュールとパッケージの使用
- オブジェクト指向プログラミング
- 外部ライブラリの活用
- 実際のプロジェクトに挑戦
練習用サンプルプロジェクト
実際に手を動かして練習できるプロジェクトを提案します。
- 電卓アプリ:四則演算ができる簡単な計算機
- おみくじアプリ:ランダムに運勢を表示
- じゃんけんゲーム:コンピューターとじゃんけん
- 成績管理システム:学生の点数を管理
- 家計簿アプリ:収入と支出を記録
- ToDoリスト:やることリストの管理
- 数当てゲーム:コンピューターが考えた数を当てる
最後に
Python基本構文をマスターすることで、プログラミングの土台がしっかりと身につきます。
変数・条件分岐・ループ・関数の4つの基本要素を理解することから始めて、徐々に複雑なプログラムに挑戦していきましょう。
重要なのは実際にコードを書いて動かすことです。 エラーが出ても心配いりません。エラーメッセージを読んで原因を理解する習慣をつけてください。
小さなプログラムから始めて、段階的に機能を追加していく練習を重ねることで、Pythonの基本構文が自然に身につくはずです。
ぜひこれらの基本構文を使って、実際のプログラムを作ってみてくださいね!