Pythonの基本構文まとめ|初心者が最初に覚える文法

Python初心者向け基本構文完全ガイド。変数・条件分岐・ループ・関数の基本文法から実践的なコード例まで分かりやすく解説。

Learning Next 運営
33 分で読めます

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()

よくある間違いと対策

初心者がよくする間違いと、その対策をまとめました。

  1. インデントエラー

    • 対策:スペース4つまたはタブで統一
    • 例:if文、for文、関数定義後のインデント
  2. 変数名の間違い

    • 対策:定義した変数名と同じものを使用
    • 例:namaeではなくname
  3. 型の不一致

    • 対策:str()int()float()で型変換
    • 例:文字列の数字を計算に使う場合
  4. 無限ループ

    • 対策:while文の条件を必ず変更
    • 例:カウンターの更新を忘れない
  5. 関数の戻り値忘れ

    • 対策:returnを忘れずに記述
    • 例:計算結果を返す関数

実践的な学習のコツ

効率的にPythonを学ぶためのコツをお伝えします。

  • 小さなプログラムから始める:最初は簡単な計算や文字列処理から
  • エラーメッセージを恐れずに読む:エラーは学習の良い機会
  • コードを実際に書いて実行する:理論だけでなく実践が重要
  • 他の人のコードを読んで学ぶ:GitHub などで良いコードを参考に
  • 同じ機能を違う方法で実装してみる:複数の書き方を覚える
  • コメントを書いて理解を深める:なぜそう書いたかを記録
  • 段階的に機能を追加していく:一度に全部作ろうとしない

次のステップ

基本構文をマスターしたら、次はこれらに挑戦してみましょう。

  1. リストと辞書の操作をマスター
  2. ファイル読み書きの基本
  3. 例外処理(try-except)の理解
  4. モジュールとパッケージの使用
  5. オブジェクト指向プログラミング
  6. 外部ライブラリの活用
  7. 実際のプロジェクトに挑戦

練習用サンプルプロジェクト

実際に手を動かして練習できるプロジェクトを提案します。

  • 電卓アプリ:四則演算ができる簡単な計算機
  • おみくじアプリ:ランダムに運勢を表示
  • じゃんけんゲーム:コンピューターとじゃんけん
  • 成績管理システム:学生の点数を管理
  • 家計簿アプリ:収入と支出を記録
  • ToDoリスト:やることリストの管理
  • 数当てゲーム:コンピューターが考えた数を当てる

最後に

Python基本構文をマスターすることで、プログラミングの土台がしっかりと身につきます。

変数・条件分岐・ループ・関数の4つの基本要素を理解することから始めて、徐々に複雑なプログラムに挑戦していきましょう。

重要なのは実際にコードを書いて動かすことです。 エラーが出ても心配いりません。エラーメッセージを読んで原因を理解する習慣をつけてください。

小さなプログラムから始めて、段階的に機能を追加していく練習を重ねることで、Pythonの基本構文が自然に身につくはずです。

ぜひこれらの基本構文を使って、実際のプログラムを作ってみてくださいね!

関連記事