【Python3.6】print で複数オブジェクトを1行で出力したい

Python3.6環境で、「print」関数を使って複数オブジェクトを1行で出力させる方法です。

 

 

print に複数オブジェクトをカンマ区切りで渡す

単純に print 関数に対して複数オブジェクトをカンマ区切りで渡します。

オブジェクトの型は

  • 「数字」と「文字列」
  • 「文字列」と「文字列」
  • 「数字」と「数字」

でも問題ありません。

 

■ファイルの中身

[test@SAKURA_VPS scraping]$ cat /tmp/test.txt 
Python 文法 
Python 構文の学習帳 
Pythonプログラミングでつまづいた点をピックアップしています。 
 
【Python】ファイルの中身を読み込む(read, readline, readlines) 
Python でファイルの中身を読み込む変数に格納する方法です。 
 
【Python 3】外部ファイルからリスト(配列)を読み込む方法 
Pythonでプログラムを作っていて、膨大なリスト(配列)を作ることがあります。 1つのプログラムファイルに書くと可読性が低くなってしまいますが、外部ファイルにリストを記述し読み込む方法です。その結果、プログラムがスッキリします。 
 
【Python】変数に値を追加したい(代入ではなく追加) 
Rubyでの「<<」(変数への文字列の追加)のようなメソッドが Python にもあるかどうか調べてみました。その結果「追加」ではなく「連結」という結論になりました。プログラム例と共に解説をしています。 
 
【Python】文字列から<特定の文字列>を検索・抽出・置換・削除したい 
プログラムを作成する時によく使う「ある文字列」の中から「特定の文字列」があるのか判定・検索・置換・削除する方法です。 
 
【Python】リスト(list)の操作 
よく使うリストの操作について解説しています。特にリストからインデックスを取得し、インデックス付きで要素を出力するとか、次の要素に移動するとか、2つ前の要素に移動するなど複雑な処理ができるようになります。 また split() メソッド についても詳しく解説をしています。 
 
【Python】二次元配列、多重配列の使い方 
Python でよく利用する二次元配列の様々な使い方です。特に二次元配列の「初期化」や今どの要素を指しているのか確認す るための「インデックス」の追加の仕方など、実際にプログラムをする際に役に立つものを集めました。 
 
【Python】リスト(配列)を二次元配列に格納する 
あまりないパターンかもしれませんが(わたしだけかもしれませんが)、単純なリスト(一次元配列)を二次元配列に格納したい場合のプログラム例です。 
 
【Python】「型」と「型変換」について調べた 
Python 3 での型と型変換について調べました。文字列、バイト列、str型、bytes型、bytearray型などです。 
 
【Python】特殊文字(c、制御文字、¢、£ とか)を削除したい 
Pythonでファイル操作や文字列操作のプログラムを作成している時によく躓くポイントです。しかし特殊文字を一旦 ASCII  コードで出力することで特殊文字を削除できるようになります。 
 
【Python 3】プログラムで長い1行を折り返して綺麗にソースをまとめたい 
Python でプログラムを書いている時に異常なほど長くなってしまった場合に、途中で改行してソースコードをスッキリと見 せる方法です。 
[test@SAKURA_VPS scraping]$

 

 

■プログラム例

[test@SAKURA_VPS scraping]$ cat test_20180320.py
#coding:utf-8
import codecs

# /tmp/test.txt を開く
tmpf = codecs.open('/tmp/test.txt', 'r', 'utf-8')

# ファイルを読み込み lines 変数に格納する。
lines = tmpf.readlines()
i = 0
for line in lines:
    # print文
    print(i, line, end="") ← printに「i」と「line」のオブジェクトを2つ与えています。
    i = i + 1
[test@SAKURA_VPS scraping]$

 

print に「i」「line」の2つのオブジェクトを与えていますが、1つでも3つでもオブジェクトを与えることができます。

オブジェクトは「カンマ」で区切ります。

「end=xxx」で出力した文字列の最後に何を付けるのか指定します。デフォルトは「改行文字(\n)」です。

「end=""」にすると、文字列の最後に何も追加しないことになります。

理由は、そもそも「test.txt」の各行は「改行文字」で終わっているので、printで「end=""」にしないと改行文字が2つ入り、1行おきに空白行が入るからです。

↓ 「end=""」を入れないと以下のようになります。

[test@SAKURA_VPS scraping]$ python3.6 test_20180320.py ← end="" を入れないパターンです。改行が2つ連続になるので以下のように空白行が入ります。
0 Python 文法
← 空白行ができる
1 Python 構文の学習帳
 
2 Pythonプログラミングでつまづいた点をピックアップしています。
 
3
 
4 【Python】ファイルの中身を読み込む(read, readline, readlines)
 
5 Python でファイルの中身を読み込む変数に格納する方法です。
 
6

 

通常、ファイルを読み込んで出力する場合は、print に「end=""」を付けないと、2つずつ改行が出力されます。

つまり上記のように1行おきにファイルの内容が出力されます。

 

 

 

■実行結果

[test@SAKURA_VPS scraping]$ python3.6 test_20180320.py
0 Python 文法
1 Python 構文の学習帳
2 Pythonプログラミングでつまづいた点をピックアップしています。
3 ← ここの空白行は、もともと「test.txt」にある空白行です。
4 【Python】ファイルの中身を読み込む(read, readline, readlines)
5 Python でファイルの中身を読み込む変数に格納する方法です。
6
7 【Python 3】外部ファイルからリスト(配列)を読み込む方法
8 Pythonでプログラムを作っていて、膨大なリスト(配列)を作ることがあります。 1つのプログラムファイルに書くと可読性が低 くなってしまいますが、外部ファイルにリストを記述し読み込む方法です。その結果、プログラムがスッキリします。
9
10 【Python】変数に値を追加したい(代入ではなく追加)
11 Rubyでの「<<」(変数への文字列の追加)のようなメソッドが Python にもあるかどうか調べてみました。その結果「追加」ではなく「連結」という結論になりました。プログラム例と共に解説をしています。
12
13 【Python】文字列から<特定の文字列>を検索・抽出・置換・削除したい
14 プログラムを作成する時によく使う「ある文字列」の中から「特定の文字列」があるのか判定・検索・置換・削除する方法です。
15
16 【Python】リスト(list)の操作
17 よく使うリストの操作について解説しています。特にリストからインデックスを取得し、インデックス付きで要素を出力するとか、次の要素に移動するとか、2つ前の要素に移動するなど複雑な処理ができるようになります。 また split() メソッドについても詳しく解説をしています。
18
19 【Python】二次元配列、多重配列の使い方
20 Python でよく利用する二次元配列の様々な使い方です。特に二次元配列の「初期化」や今どの要素を指しているのか確認するた めの「インデックス」の追加の仕方など、実際にプログラムをする際に役に立つものを集めました。
21
22 【Python】リスト(配列)を二次元配列に格納する
23 あまりないパターンかもしれませんが(わたしだけかもしれませんが)、単純なリスト(一次元配列)を二次元配列に格納したい場合のプログラム例です。
24
25 【Python】「型」と「型変換」について調べた
26 Python 3 での型と型変換について調べました。文字列、バイト列、str型、bytes型、bytearray型などです。
27
28 【Python】特殊文字(c、制御文字、¢、£ とか)を削除したい
29 Pythonでファイル操作や文字列操作のプログラムを作成している時によく躓くポイントです。しかし特殊文字を一旦 ASCII コー ドで出力することで特殊文字を削除できるようになります。
30
31 【Python 3】プログラムで長い1行を折り返して綺麗にソースをまとめたい
32 Python でプログラムを書いている時に異常なほど長くなってしまった場合に、途中で改行してソースコードをスッキリと見せる 方法です。
[test@SAKURA_VPS scraping]$

 

 

 

sep=xxx でセパレータを指定できる

もし上記のようにオブジェクトを複数出力する場合は、sep=xxxでセパレータを指定できます。

デフォルトは「半角スペース」(半角の空白文字)です。

見やすいように他の文字列に変更することができます。

 

■プログラム例

[test@SAKURA_VPS scraping]$ cat test_20180320.py
#coding:utf-8
import codecs

# /tmp/test.txt を開く
tmpf = codecs.open('/tmp/test.txt', 'r', 'utf-8')

# ファイルを読み込み lines 変数に格納する。
lines = tmpf.readlines()
i = 0
for line in lines:
    # print文
    print(i, line, sep=" | ", end="") ← sep=" | "を追加しています。
    i = i + 1
[test@SAKURA_VPS scraping]$

 

 

■プログラム実行結果

[test@SAKURA_VPS scraping]$ python3.6 test_20180320.py
0 | Python 文法
1 | Python 構文の学習帳
2 | Pythonプログラミングでつまづいた点をピックアップしています。
3 |
4 | 【Python】ファイルの中身を読み込む(read, readline, readlines)
5 | Python でファイルの中身を読み込む変数に格納する方法です。
6 |
7 | 【Python 3】外部ファイルからリスト(配列)を読み込む方法
8 | Pythonでプログラムを作っていて、膨大なリスト(配列)を作ることがあります。 1つのプログラムファイルに書くと可読性が低くなってしまいますが、外部ファイルにリストを 記述し読み込む方法です。その結果、プログラムがスッキリします。
9 |
10 | 【Python】変数に値を追加したい(代入ではなく追加)
11 | Rubyでの「<<」(変数への文字列の追加)のようなメソッドが Python にもあるかどうか調べてみました。その結果「追加」ではなく「連結」という結論になりました。プログラム例と共に解説をしています。
12 |
13 | 【Python】文字列から<特定の文字列>を検索・抽出・置換・削除したい
14 | プログラムを作成する時によく使う「ある文字列」の中から「特定の文字列」があるのか判定・検索・置換・削除する方法です。
15 |
16 | 【Python】リスト(list)の操作
17 | よく使うリストの操作について解説しています。特にリストからインデックスを取得し、インデックス付きで要素を出力するとか、次の要素に移動するとか、2つ前の要素に移動 するなど複雑な処理ができるようになります。 また split() メソッドについても詳しく解説をしています。
18 |
19 | 【Python】二次元配列、多重配列の使い方
20 | Python でよく利用する二次元配列の様々な使い方です。特に二次元配列の「初期化」や今どの要素を指しているのか確認するための「インデックス」の追加の仕方など、実際に プログラムをする際に役に立つものを集めました。
21 |

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人