こんにちは。PyQサポートです。
今回は、プログラミング初心者の方に向けて「print()
関数の引数の指定方法の違い」を解説します。
- 質問:print("hoge" + "hoge")とprint("hoge", "hoge")の違いは?
- 回答
- print("hoge" + "hoge")でやっていること
- print("hoge", "hoge")でやっていること
質問:print("hoge" + "hoge")
とprint("hoge", "hoge")
の違いは?
print()
関数の引数の指定方法で、print("hoge" + "hoge")
のように+
を使う方法と、print("hoge", "hoge")
のようにカンマを使う方法がありますが、
これらの違いは何でしょうか?
回答
これらを実行すると、出力される内容が異なります。
出力結果が異なる理由として、具体的には以下のような違いがあります。
print("hoge" + "hoge")
…+演算子
(計算に使う記号)を使って文字列を結合している。引数を「結合したものを1つの塊」として認識するprint("hoge", "hoge")
… カンマで渡された値それぞれを、順番に並べて表示する。引数を「「,
」で区切られた値」ごとに認識する
print("hoge" + "hoge")でやっていること
数字を足すように、文字列を+演算子
で結合しています。
# コード print("hoge" + "hoge")
# 実行結果
hogehoge
print("hoge", "hoge")でやっていること
「,
」は、+演算子の代わりになる記号ではありません。
print()
関数に「,
」を使うと、画面の出力上は文字列がまとまって見えていますが、これは「渡された値それぞれを、順番に並べて出していく」という動作をしています。
また、print()
関数に「,
」を使うと、次の値を出す前にスペースを出すように動作します。
# コード print("hoge", "hoge")
# 実行結果
hoge hoge
その他の書き方(print() 関数に「,」を使うときにスペースを開けない方法)
複数の値を出力したいけど、スペースを開けないようにする場合にはprint("hoge", "hoge", sep='')
のように引数sep=''
で指定できます。
# コード print("hoge", "hoge", sep='')
# 実行結果
hogehoge
こういったprint関数の使いこなしなどは、ここで急いで覚える必要はありません。
ある程度の期間プログラミングをしていればそのうち身につきます。
ただ、「print関数がなぜそのような動作をするのか」と思ったときに公式リファレンスの説明を読むと答えが書いてあることが結構あります。始めのうちは難しいですが、疑問があるときはリファレンスを読むとプログラミングの上達につながります。
Python 言語リファレンス — Python 3.9.4 ドキュメント