【Ruby入門】print puts p printf 出力メソッドを極める!

こんにちは! フリーエンジニアの長瀬です。

Rubyにはログやコンソールに何らかの処理の結果を目に見える形で出力するためのメソッドとしてprintメソッドがあります。

そして、Rubyにはprintメソッド以外にも様々な出力系メソッドが存在します。

この記事では、

・printメソッド
・putsメソッド
・pメソッド
・printfメソッド
・sprintf

という基本的な内容から、

・変数を扱う方法
・複数の引数を渡す方法
・文字列の桁数を指定する
・数値型の桁数を指定する
・joinメソッドを使って、配列の中身をつなげて出力する
・繰り返し出力する(times)
・ハッシュの中身を出力する(each)
・色付きで出力する

など応用的な内容についても解説していきます。

printメソッドの使い方について正しく理解し、必要な場面で使いこなすことができるように、わかりやすく解説します!

それでは出力系メソッドの違いについて見ていきましょう。

printメソッド

printメソッドは以下のサンプルコードのように、半角スペースを空けて出力する値を指定するだけで利用できます。

printメソッドの特徴は改行を入れずに引数に指定した値を出力することです。

[実行結果]

putsメソッド

putsメソッドも同様に出力する値を半角スペース後に指定することで利用できますが、printメソッドとの違いは、末尾に改行が入る形で出力されることです。

[実行結果]

pメソッド

pメソッドは出力する値と共に型情報(文字列や数値型など)を一緒に出力します。

[実行結果]

文字列はダブルクォーテーションで囲まれ、数字はそのまま出力されていることが確認できるかと思います。

printfメソッド

printfメソッドは書式を指定して出力するためのメソッドとなります。

具体的なサンプルをまずは確認してみましょう。

[実行結果]

これまでの出力メソッドと異なり、カッコで出力内容をくくります。

また、%sや%dはその後のカンマで区切った引数の値が代入されるものとなり、その引数の型(文字列や数値型)によって、%sと%dの指定を使い分けます。

sprintf

printfメソッドに対して、sprintfメソッドもあります。

printfメソッドがコンソールに対して直接出力するのに対して、sprintfメソッドは文字配列に対して出力するためのメソッドになります。

具体的なサンプルで確認してみましょう。

[実行結果]

基本的にprintfと似ていますが、文字列に代入するだけなので紹介したputsやpで出力してあげる必要があります。

もしも、出力しないと文字列と同じ扱いになるのでコンソールにはなにも出力されません。

変数を扱う方法

他の言語では変数を出力しようと思うと少し面倒な処理をしないといけないこともありますが、Rubyではとても簡単に出力することができます。

[実行結果]

このように変数を引数に渡すだけで出力することができます。

また文字列中に変数を展開する式展開という方法でも出力することができます。

式展開についてはこちらをご覧ください。


ヒアドキュメントなどを利用して式展開することで文字列の操作がより簡単になることがご理解いただけたかと思います。

また、rubyの変数の種類についてはこちらを参考にしてみてください。

複数の引数を渡す方法

print,puts,pメソッドは半角スペースの後の引数を複数指定することで、複数同時に出力することが可能です。

[実行結果]

このように別々に渡した時と同じように出力を行えていることがわかります。

様々なフォーマット指定方法

printfやsprintfでは様々なフォーマットの指定方法があります。

文字列の桁数を指定する

%のあとに数値を指定すると桁数を指定できます。

たとえば、3文字しかないのに5文字分のスペースを持って出力することができます。

その場合、足りない部分には空白が出力されて、デフォルトでは右詰で出力されます。

[実行結果]

このように、右詰になります。

また、左詰にしたい場合は

[実行結果]

このように、数値に-をつけるだけです。

数値型の桁数を指定する

数値型の桁数を指定する場合も、文字数を指定する場合同様です。

[実行結果]

数値型の場合は、空白に0を詰めて表示できます。

[実行結果]

このように、5桁に対して足りない部分は0で補われています。

配列の中身をつなげて出力する(join)

配列の中身をつなげて出力したいという場面は多いです。

そんなときはjoinメソッドを使いましょう。

[実行結果]

このように、自分が選んだ文字を挟んで配列の中身を連結できて便利です。

joinの使い方についてはこちらでもう少し詳しく解説しているので、一読することをおすすめします。

繰り返し出力する(times)

なんども同じようなパターンのものを出力するときに思うように繰り返し出力できれば、とても便利ですよね。

嬉しいことにrubyには繰り返しのためのメソッドがたくさん用意されています。

その中の一つのtimesメソッドを使って、繰り返し出力を体験してみましょう。

[実行結果]

このように、数字だけが変更されたものを繰り返し出力することができました。

繰り返しの出力がどれだけ楽なのか、実感していただけたと思います。

ハッシュの中身を出力する(each)

eachメソッドを使えば、ハッシュの中身をキー(key)とパリュー(value)に分けて、出力することができます。

また、その際には変数展開と呼ばれる記法を使用して、ハッシュの中身を展開します。

[実行結果]

このようにハッシュの中身を綺麗に出力することができました。
なんども同じ文字列を入力しなくてもよいので、便利ですね。

ハッシュの使い方についてはこちらでもうすこし詳しく説明してあるので一読することをおすすめします。

色付きで出力する

少し工夫するれば、色付きで出力することも可能です。

色は数字に割り当てられているので、今回はその数値を色の名前として変数に保存して使用してみます。

[実行結果]
Screen Shot 2560-12-04 at 19.12.31

まとめ

本記事ではprintメソッドなど出力系メソッドについて基本的な使い方、さらに応用編では出力に関して幅広く便利な方法をご紹介しました。

プログラミングを行う上で、処理の途中でどのような値か確認するためにデバッグを行うことがありますが、その際に、本記事で紹介した出力メソッドを用いて簡易的に値を確認することも可能です。

もし、今後printメソッドで使い方に迷うことがあれば、ぜひこの記事を思い出して下さいね。

Rubyカリキュラム無料公開中!

この記事はRuby入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Ruby学習に必要な情報を一つにまとめていますので効率よくRubyを学ぶことが出来ます。この機会に是非活用していただければと思います。

【Ruby入門ガイド】アプリ開発で知っておくべき知識を総ざらい
更新日 : 2018年11月23日

Rubyを最短で習得したい方へ

近年では様々なWEBサービスが流通するようになりました。

WEBサービスの普及が進むにつれて、それらを素早く開発するのに長けたRubyの人気は今後さらに増し、Rubyエンジニアの需要も自ずと増えることは間違いなしでしょう。

元々ITリテラシーの高い方や他言語を習得している方であれば、独学でRubyを習得することが可能です。

ただし、プログラミング学習をしている方の多くは

「自分に合った教材が見つけられずに挫折してしまった」
「勉強のための勉強になってしまい、ゴールが見えない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決するのに何日もかかってしまう」

このような悩みを抱えたまま挫折してしまうのが現実となっています。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
  • WEBアプリケーション開発までしっかりサポートして欲しい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、初心者の方がつまづきがちな、「CookPad」、「Wantedly」、「食べログ」のようなWEBアプリケーション開発方法もスムーズに学習することできます。

実際にオリジナルWEBアプリを開発し、成果物として認められて仕事獲得に成功した塾生は数多くいます。

このように、オリジナルアプリ開発から仕事獲得まで徹底的にサポートすることでプログラミング初心者の方でも安心して基礎学習に取り組むことができます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

Rubyならではの学習方法や、現役フリーランスRubyエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像から弊社サービス内容をご確認ください。

ruby_a2
LINEで送る
Pocket

書いた人

長瀬来

長瀬来

Unityを使ったiOSアプリのリリース、フリマサイト運営の経験があります。

経験した言語はC、C#、Javascript、R、Python、Ruby、PHPなど

言語が好きで、英語や中国、ドイツ語を勉強しました。
将来的には海外で生活したいです。

現在はRuby on Rails5やCocos2dxの勉強を主にしています。

ライターとしては
できるだけ初心者にわかりやすい文章になるように心がけています。

趣味は語学、読書です。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説