print で表示
print で「動いた!」を体験する
このレッスンで分かること
print()は文字列を画面 (標準出力) に表示するだけの関数で、戻り値はNonereturnは関数の「答え」を呼び出し元に返す文。chotdekiru の採点はreturnの値で行う- 関数定義は
def 関数名():+ インデント (半角スペース 4 つ) で書く- 最小コードは次の通り
Python
def hello(): return "Hello, Python!"
returnを使う
print で表示 とは
print 関数の役割を学びつつ、文字列を返す関数を書いてみよう。本レッスンでは、print で表示 の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。
Python の世界にようこそ。プログラミング学習の最初の一歩は、ほぼ全ての言語で共通していて、それは「画面に文字を表示する」ことです。Python では print という組み込み関数を使うだけで、文字列を画面に出力できます。コンパイル不要、main 関数も不要、たった 1 行から始められるのが Python の魅力です。
プログラミングは「書いて、動かして、確かめる」のサイクル。最初は
このレッスンでは print の基本動作を理解しつつ、関数の戻り値という重要な考え方も同時に学びます。chotdekiru のコーディング問題は return で値を返す関数を書く形式なので、print と return の違いを早めに掴んでおくと、この後の章がスムーズに進みます。
print 関数とは?
print は Python に最初から組み込まれている関数で、print(値) という形で呼び出します。括弧の中に書いたものが標準出力 (stdout) に表示されます。文字列はクオート " または ' で囲み、数値はそのまま渡せます。改行は自動で付くので、\n を自分で書く必要はありません。
Python
print("Hello, world!")
print(2026)
print("こんにちは", "Python")3 行目のように、カンマで複数の値を渡すと、半角スペースを挟んで連結されます。sep="-" のようなキーワード引数で区切り文字を変えることも可能ですが、まずは基本形に慣れることを優先しましょう。
returnとは別物です。
print と return の違い
ここが初心者がいちばん最初につまずくポイントです。print は人間に向けて画面に表示するだけで、関数の「戻り値」にはなりません。一方 return は、他のコードが続きの処理に使える「値」を返します。
Python
def greet_print():
print("Hello")
def greet_return():
return "Hello"
x = greet_print() # x は None になる
y = greet_return() # y は "Hello" になるprint と return の使い分け早見表
| 観点 | print | return |
|---|---|---|
| 目的 | 人間が画面で確認する | 関数の「答え」を呼び出し元に渡す |
| 戻り値 | 常に None | return の右側の値 |
| chotdekiru 採点 | 採点対象外 | これと expected を比較する |
| 使う場面 | デバッグ・ログ出力 | 計算結果を返す関数本体 |
chotdekiru のテストランナーは return された値を expected と比較します。print でいくら正しい文字列を表示しても、return を書かないとテストは None と比較されて失敗します。print はデバッグ用、return は採点用、と覚えると混乱しません。
動きを追ってみる
関数を呼び出してから戻り値を受け取るまでの流れを図にすると、次のとおりです。
実行ステップ (図と同じ内容を箇条書きで再掲)
- 呼び出し元が
hello()を実行 - Python は
hello関数の中に入り、上から順に処理する return "Hello, Python!"に到達した瞬間、その値を持って関数を抜ける- 戻り値
"Hello, Python!"が呼び出し元に渡される (y = hello()ならyに入る) returnの後の行は実行されない
呼び出し元から関数へ「お願い」が飛び、関数の中で return 文に到達した瞬間に、その値を持って呼び出し元に戻ってきます。return の後ろの行は実行されないので、長い関数の中でも return は終端マーカーになります。
よくある間違い
初学者が print と return を混同する代表的なパターンは次の通りです。
returnを書き忘れて関数がNoneを返すreturn print("Hello")のようにprintの戻り値をそのまま返す (これはNone)- 文字列を
"Helloのように閉じクオートを書き忘れてSyntaxError - 全角クオート
“Hello”を使ってしまいSyntaxError - インデントが空白 4 つになっていなくて
IndentationError
エラーが出たら、まずクオートが半角で揃っているかを確認する癖をつけましょう。
また、print(Hello) のようにクオートなしで文字列を書くと、Hello という名前の変数を探しに行って NameError になります。文字列は必ずクオートで囲む、これは最初の鉄則です。
やってみよう
このレッスンの課題は、hello という関数を作って、文字列 Hello, Python! を return する ことです。print ではなく return を使う点に注意してください。
Python
def hello():
return "Hello, Python!"短いですが、これが Python で関数を定義する基本形です。def 関数名(): の後にコロンを書き、インデント (半角スペース 4 つ) を入れてから処理を書きます。インデントは Python の文法そのものなので、揃っていないと IndentationError になります。
慣れてきたら、return f"Hello, {name}!" のように引数を受け取ったり、print と return を 1 つの関数の中で組み合わせたりして遊んでみると、関数の感覚がぐっと掴めます。
おまけ — Python が動く仕組みをざっくり
Python のコードは、CPython というインタプリタが 1 行ずつ読み込んで、バイトコード という中間表現に翻訳してから実行します。C 言語や Rust のような事前コンパイル型と違って、書いたそばから動かせるのが大きな特徴です。今書いた def hello(): も、保存した瞬間に解釈・実行されます。
「書く → すぐ動く → 結果を見る」のループが短いから、
Pythonは学習に向いていると言われます。
テストランナーの裏側でも、まさにこの仕組みで solution が実行され、return の値が expected と一致するかをチェックしています。print の出力は採点対象に含まれないので、繰り返しになりますが必ず return を使ってください。これが第 1 章で身につけてほしい最重要ポイントです。
よくある質問
Q. print() と return の違いは何ですか?
A. print() は文字を画面に出すだけで関数の戻り値は None になります。return は関数の処理結果を呼び出し元に返す命令で、その値を変数に代入したり計算に再利用できます。テストでは return の値しか検証できないため、関数を作るときは return を使いましょう。
Q. 改行なしで出力するにはどうしますか?
A. print('hello', end='') のように end 引数に空文字を渡すと末尾の改行が消えます。区切り文字を変えるなら end=' ' でスペース区切り、複数値を 1 行に並べるなら print(a, b, sep=', ') のように sep を指定するのが定番です。
Q. 複数の値を一度に出力したいときは?
A. print(a, b, c) と引数を並べれば順に出力されます。文字列に値を埋め込むなら f-string が便利で、print(f'name={name}, age={age}') と書けば変数を直接展開できます。改行で区切りたい場合は print(a, b, sep='\n') を使います。
次のレッスン
次は 文字列を連結する で、print 関数の役割を学びつつ、文字列を返す関数を書いてみよう を学びます。
事前確認 — 進む前に次の 3 つができることを確認しましょう。
- print で表示 の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. print で表示 とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン
要件
- 関数名は hello で、引数は取らない
- 文字列 "Hello, Python!" を return する
- print ではなく return を使う
入出力例
test-cases.txt
hello() → "Hello, Python!"
hello() → "Hello, Python!"
hello() → "Hello, Python!"