【Python入門】文字列出力print()の基本と応用

今回はPythonの基礎の基礎、print()の使い方について説明したいと思います!この記事では、

  • 標準出力への文字列出力
  • 文字列の結合
  • 変数やオブジェクトの表示
  • ファイル出力

といった、print()の基礎を一通りご説明します。是非、最後までお付き合いください。

※ この記事のコードはPython 3.7で動作確認しました。

なお、Pythonの記事については、こちらにまとめています。

print()の基本

文字列を表示してみよう

print()を使う

まずはprint()を使い、標準出力へ文字列を表示してみましょう。使い方は以下のようになります。

test = "Hello World!"

print(test)

実行結果:

Hello World!

print()の中に文字列を入れるだけで、それを出力してくれます。では、これを基本に様々な表示の仕方を確認していきましょう。

文字列をくっつけて表示する

print()では、文字列を表示する時、複数の変数に代入した文字列をつなげて表示させる事ができます。やり方は数字と同じように、プラス"+"で繋げます。以下のコードをご確認ください。

str1 = "Hello"
str2 = "World!"

print(str1 + ', ' + str2)

実行結果:

Hello, World!

文字列が結合され、1行に表示されました。

print()はデフォルトで改行されてしまう

ここで一つ注意点があります。print()は入力された文字列の末尾にデフォルトで改行をつけてしまいます。以下のコードをご覧ください。

print("a")
print("b")
print("c")

実行結果:

a
b
c

このように、1回のprint()に対し1行で表示されている事が分かります。一度にまとめて表示する内容が分かっている場合なら結合させて良いかですが、for文などで都度文字列を取得しながら表示する場合には結合させることは難しいかと思います。

そこで次項ではprint()に改行を入れない方法を紹介致します。

改行を入れたくない場合は

カンマをつける

改行をつけたくない時の簡単な対処法として、カンマ","をつける事により1行で表示できます。

print("a"),
print("b"),
print("c"),

実行結果:

a b c

上記のように、カンマ","をつける事で末尾がスペースに変わり、1行に表示することができます。

end=""を入れる

実は、print()は引数"end"に値を入れることで、末尾に何をつけるかを設定することができます。

print("a", end=",")
print("b", end=",")
print("c")

実行結果:

a,b,c

ポイントとしては、もしもPython2を使う場合はおまじないとして、from __future__ import print_functionを入れることです。python2系では、これがないとエラーとなってしまう為、注意が必要です。なお、python3系ではこの1行は不要なようです。

printで変数やオブジェクトの値を表示しよう

出力する内容は文字列だけとは限りません。ここでは、文字列ではなくint変数やオブジェクトの値を表示する方法を紹介します。

strを使う

まずはじめに、int変数をstringに変換して表示する方法をご紹介します。ここで使用するのはstr()です。実際にコードを確認してみましょう。

price = 100

print("Apple: ¥" + str(price))

実行結果:

Apple: ¥100

str()ではint変数を文字列に変換する処理を行っています。これにより、単純な文字列として処理することができます。

formatを使う

続いて、int変数を変換なしに表示する方法です。ここではformat()メソッドを使用します。

num1 = 1
num2 = 2
num3 = 3

print("No.1: {}".format(num1))
print("No.2: {}, No.3: {}".format(num2, num3))

実行結果:

No.1: 1
No.2: 2, No.3: 3

上記のように文字列に続けて".format()"を入れることにより表示することができます。複数を同時に表示することも可能です。なお、format()はalignmentの設定や符号、桁合わせ、進数変換など様々な事が可能ですので、覚えておくと良いかと思います。

%を使う

他の言語を扱っている方には、formatよりも"%"を使用した方がやり易いかもしれません。上述のformatに対応して%で実装したコードをご確認ください。

num1 = 1
num2 = 2
num3 = 3

print("No.1: %d" % num1)
print("No.2: %d, No.3: %d" % (num2, num3))

実行結果:

No.1: 1
No.2: 2, No.3: 3

ここでの"%d"は数字を表しています。また、"%s"で文字列を表示することもできます。

リストを表示してみる

print()は、オブジェクトの表示をすることも可能です。使い方は通常の文字列表示とあまり違いがないので、それほど難しくないかと思います。では、一例として実際にリストオブジェクトを表示してみましょう。

mylist = [1, 2, 3, 4]

print(mylist) #リスト一覧を表示

print(mylist[0]) #リストの要素を番号で指定して表示

for num in mylist: #リストをfor文で回して、要素を一つずつ表示
    print(num)

実行結果:

[1, 2, 3, 4]
1
1
2
3
4

上記のように、リストを表示する事ができました。また、複数のオブジェクトを表示することも可能です。

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]

print(list1, list2, sep=",") #二つのリストを表示
[1, 2, 3, 4],[5, 6, 7, 8]

このように、複数のオブジェクトを表示したい時はそれぞれのオブジェクトを入れた後、sep=""でオブジェクトを区切る文字を指定します。そうすることで並べて表示する事が可能となります。なお、ここでもPyhon2系ではおまじないの1行が必要となるので、注意が必要です。

print()の応用

前に表示した文字列を上書きする形で表示しよう

print()で1度表示した文字列を上書きする形で表示したいケースもあると思います。例えば、進捗を"%"で表したい時。プログレスバー(進捗バー)で表したい時。

"%"表示であれば改行して逐次表示してもいいのですが、スマートではないですよね。こんなときはキャリッジリターン"r"を入れるだけで、1行の中で上書きしていく事ができます!

※キャリッジリターンとは、カーソルを文頭に戻す制御文字です。実際のコードをご確認ください。

from time import sleep
import sys

for i in range(11):
    print("r" + str(i*10) + "%", end="")
    sys.stdout.flush()
    sleep(1)

print()

こちらをコピーして実行していただくと、上書きされているのが分かります。キャリッジリターンとは、表示位置を行頭に持っていく働きがあります。カーソルが行の先頭にある認識です。上記はそれを利用した使い方になります。

なお、最後に空のprint()があるのは、for文で最後の一個表示した後にまた次をprintしようとすると、さらに上書きしてしまう為です。空のprintを入れる事で、そのまま改行をしているという仕組みです。

なお、sys.stdout.flush()を入れないと、for文が終わってから文字列が表示される為、しばらくして"100%"が突然表示されてしまいます。

flush()は即時出力を意味しています。

ファイルに出力する

最後に、文字列をファイルに出力する方法を紹介します。文字列は標準出力だけでなく、ファイルに出力することも可能です。方法は下記になります。

file_text = open("sample.txt", "w") #sample.txtを開く
print("Hello World!", file=file_text) #sample.txtに"Hello World!"を書き込む

file_text.close() #sample.txtを閉じる

実行結果:sample.txt

Hello World!

このままPythonを学び続けて大丈夫?

なぜPythonを学ぶのか?

あなたがPythonを学ぶ理由は何でしょうか?

  • Pythonが人気だからとりあえず学んでいる
  • AIや機械学習の分野に興味があるから

Pythonは初心者向けの言語と言われています。その理由としてシンプルでわかりやすい構文や、実用的なライブラリが豊富なことが挙げられ、実際に学びやすい言語です。

しかし、もしあなたが機械学習に興味があって、とくに知識も無いまま学習を進めると、挫折する可能性が高いと言えます。

機械学習の分野はプログラミング以外にも、専門的な知識や数学の知識も必要になります。ただなんとなく学習していると早い段階でつまづきやすく、そのまま挫折してしまうなんてことも…。

そのため、挫折しないためには、

  • 最適な学習環境を用意する
  • 必要なライブラリ・ツールを導入する
  • わからないことを質問できるメンターを見つける

などが必要になります。

効率よく学びたいなら、無料カウンセリングがおすすめ

このままPythonを学び続けていいのかな…
まだまだ知りたいことがたくさんある!
もっと詳しくPythonについて知りたい!

といった悩みや願望を持っている方は、弊社「侍エンジニア」をご利用下さい。

侍エンジニアでは、

  • 現役エンジニアによるマンツーマンレッスン
  • キャリアアドバイザーによる転職・就職支援
  • 業界屈指のフリーランス・起業サポート

を受けることができます。

業界屈指のコンサルタントから、効率的な学習方法や仕事獲得術、今後のキャリアまでさまざまな疑問を相談してみませんか?遠方の方でもオンラインで受講できます!お気軽に受講下さい。

侍エンジニア
無料カウンセリングを受ける

まとめ

いかがでしたでしょうか?今回の記事では、

  • print()での文字列の表示の仕方
  • 改行させたくない場合の対処法
  • listなどのオブジェクトの出力の仕方
  • 同じ行に上書きしていく方法
  • ファイル出力の仕方

などを紹介致しました。print()はpythonの基礎にあたり、あらゆる場面で使われることかと思います。ここでprintの使い方を覚えて、基礎をマスターしてください!

Writer

遠藤貴大

株式会社SAMURAI

1991年生まれ。双子座。
理系大学で認証システムを学んだ後、アプリ開発者となる。
新しく学ぶ人に寄り添った記事を心がけて執筆します。
芸術が好き。いつか猫と暮らすのが夢。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI ENGINEER Plus

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら