質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

6620閲覧

sys.stdout.writelinesとprintの使い分け

reotantan

総合スコア295

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2016/02/12 15:57

openしたファイルを出力先にしてprintすれば、それはsys.stdout.writelinesと同じような結果になりますね。
どういう風に二つを使い分けるのでしょうか?
またwritelinesとprintの関係にある関数はstdinにはありますか?

コード import sys f=open("outfile.txt",'w') sys.stdout=f sys.stdout.writelines(["A first line.\n","A second line\n"]) print("A line from the print function") sys.stdout=sys.__stdout__ f.close()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

標準出力の文字を出力する場合、
sys.stdout.writelinesというのは実装の詳細なので、
通常は、単にprint()を使えば良いと思います。
Javaみたいに必ずSystem.out.print()と書かなければいけないのと比べると簡潔ですね。

そこまでPython詳しくないので推測ですが、オブジェクト指向の観点ではsys.stdout.writelinesのような定義が要るけれど、スクリプト言語としてはprint()関数はあって然るべきものなので、それを両立させている仕組みなんだと思います。

stdinで同様の関係にあるのは、sys.stdin.readlineinput()(Python 2.xではraw_input())ですね。

参考リンクのページも見てみてください。



参考リンク

input() - 2. 組み込み関数 — Python 3.3.6 ドキュメント
http://docs.python.jp/3.3/library/functions.html#input

print() - 2. 組み込み関数 — Python 3.3.6 ドキュメント
http://docs.python.jp/3.3/library/functions.html#print

Python Tips:標準入力から文字列を取得したい - Life with Python
http://www.lifewithpython.com/2014/05/python-get-stdin-standard-input.html

投稿2016/02/13 06:42

argius

総合スコア9390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reotantan

2016/02/14 02:31

丁寧な解説に有益なリンクもつけていただいて、本当にありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問