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

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

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

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

Q&A

解決済

3回答

1716閲覧

pythonで連続出力

TentoAkiyoshi

総合スコア11

Python 3.x

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

0グッド

0クリップ

投稿2018/03/05 23:30

ループ処理でリストから一つずつ取り出して、それを変換したものを、
一行に2個、半角スペースで区切って表示したいのですが、どうしたら良いでしょうか。

入力サンプル
3 2
46 47
47 46
46 47

プログラム
import math
import linecache
a,b= input().split(" ")
c=int(a)
d=int(b)
line= input().rstrip().split(" ")
for n in range(c):
for i in line:
item=int(i)
if item>=47:
q=1
else:
q=0
print(q)
出力の理想
0 1
1 0
0 1
問題の出力
0
1
1
0
0
1
長文すいません。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/03/05 23:59

コードのインデントが崩れてしまっているので、コードの始まり一行前と終わりの次の行に```を置いて囲むようにしてください。。
guest

回答3

0

ベストアンサー

input()をリスト内包表記で受けて「リストのリスト」にしてしまうのが楽かと思います。おそらくAtCoderか何かの問題だと思うので、続きはご自身で検討してみてください。なお、4行目のリスト内包表記はコメントアウトされている部分と機能は同じです。どちらか分かりやすいほうをお使いください。

python

1a, b = input().split() 2a, b = int(a), int(b) 3 4lines = [input().rstrip().split(“ “) for i in range(a)] 5# lines = [] 6# for i in range(a): 7# lines.append(input().split()) 8 9for line in lines: 10 print(line) 11

投稿2018/03/06 00:22

編集2018/03/06 10:05
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

TentoAkiyoshi

2018/03/06 09:06

丁寧にありがとうございました。参考になりました。
TentoAkiyoshi

2018/03/06 09:23

たびたびすいません。「lines.append」の行で、EOF when reading a line というエラーがでてしまうのですがどうしたらいいでしょうか。
退会済みユーザー

退会済みユーザー

2018/03/06 09:55

もとのinput().rstrip().split(" ")に戻したらどうなります?
TentoAkiyoshi

2018/03/06 10:00

入力はエラーなくできます。
退会済みユーザー

退会済みユーザー

2018/03/06 10:05

そしたらその部分は元に戻しておきます。
guest

0

こんな感じ?end='' で改行を抑止。

import math import linecache (a,b)= input().split(" ") c=int(a) d=int(b) for n in range(c): for i in input().rstrip().split(" "): item=int(i) if item>=47: q=1 else: q=0 print(q,'',end='') print('')

で、短く圧縮して、区切り等をインチキしてもよければ..

for n in range(int(input().split(" ")[0])): print([(1 if int(i)>=47 else 0) for i in input().rstrip().split(" ")])

投稿2018/03/06 02:21

gm300

総合スコア580

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

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

TentoAkiyoshi

2018/03/06 09:06

丁寧にありがとうございました。参考になりました。
guest

0

プログラミング初心者で的を射ていない解答かもしれない上に初めての解答ですがよろしくお願いします。

>一行に2個、半角スペースで区切って表示したいのですが、どうしたら良いでしょうか。

format関数やフォーマット指定子で可能です
print("{0} {1}".format(a, b))
or
print("%d %d" % (a, b))
こういう事でしょうか?

お気に召すか解りませんがサンプル作ってみました。

python

1a = int(input()) 2res = [list(map(lambda x: 1 if int(x) >= 47 else 0, input().split())) for i in range(a)] 3 4for i in res: 5 print("{0} {1}".format(i[0], i[1]))

投稿2018/03/06 09:12

編集2018/03/06 09:21
usune

総合スコア12

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

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

退会済みユーザー

退会済みユーザー

2018/03/06 09:15

回答でもソースコードの部分を```で囲むようにしてみてください。もしくは編集の上のタブに</>というマークがあるので、コードの部分をマウスで選択してそのボタンを押すのでもできます。
usune

2018/03/06 09:29

dkato0077さん、ご指摘ありがとうございました
退会済みユーザー

退会済みユーザー

2018/03/06 09:56

見やすくなったと思います(^^)/
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問