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

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

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

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

6533閲覧

入力された文字列を取得する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/04/17 01:17

編集2017/04/17 03:57

入力された文字列を取得する方法がわかりません。

input_str = input()

とコードがあり、
2
3 6
7 7 9
0 1 4 7
8 4

の縦に並んだ文字列がinput_strに入っています。
と文字と文字の間に半角をはさんで、ランダムな行が入力されたとき
以下の方法ですべての文字列を取得しようとしたのですが、

for i in range(int(input_str)): print(input_lines)

2
2
と出力されて、一番最初の行の数字をその数の回数だけ出力されていることがわかりました。(しかし、目的には到達できず)
次に、以下の方法で空白を取り除いてすべての要素をリストに入れて出力させようとしたのですが、

for i in range(int(input_str)): s = input().rstrip().split() print(s)

3 6
7 7 9 としゅつりょくされました。
自分ではどう直せばよいのかわからず...。
どう直せばよいのでしょうか?

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

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

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

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

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

larkpia

2017/04/17 01:25

input_linesとは何が入っている変数でしょうか?
退会済みユーザー

退会済みユーザー

2017/04/17 01:30

2 3 6 7 7 9 0 1 4 7 8 4 の文字列が入っている変数です。
guest

回答2

0

空白文字を除去したいのであれば以下の方法でできます。

python

1input_lines = input() 2 3input_lines = input_lines.replace(" ","") 4print(input_lines) 5

また、input_linesの長さを知りたいのであれば以下の方法でできます。

python

1print(len(input_lines))

追記:
input_linesをリストにしたいときには以下の方法もあります。

python

1input_list = list(input_lines) 2print(input_list)

投稿2017/04/17 01:48

編集2017/04/17 01:59
larkpia

総合スコア138

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

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

退会済みユーザー

退会済みユーザー

2017/04/17 04:01

ありがとうございます。記載して下さった通りにコードを書いて実行すると、 22 と出力されました。もし、全部取得できる方法がわかればお願いします。
larkpia

2017/04/17 04:39

input()でinput_linesに、2 3 6 7 7 9 0 1 4 7 8 4を代入するのではないのですか? あなたのやりたいことがきちんと理解できていないようなので、もしよろしければやりたいことを言葉で説明してください。
guest

0

ベストアンサー

やりたいことはこんな感じでしょうか?

Python

1input_str = input() 2for d in input_str.split(' '): 3 num = int(d) 4 print(num)
(入力) 1 2 3 4 5 (出力) 1 2 3 4 5

半角スペース入りの文字列をいきなり int() に入れるのではなく、
一度 str.split(' ')にて半角スペースで文字列を分割した後で、各要素をint() に入れると上手くいくと思います。

複数行への対応

input_str が複数行であるとのことなので

仕様がよくわからないのですが、とりあえずこんな感じでどうでしょうか?

Python

1input_str=''' 22 33 6 47 7 9 50 1 4 7 68 4''' 7 8for line in input_str.splitlines(): 9 #空行はスキップ 10 if not line: 11 continue 12 for d in line.strip().split(' '): 13 num = int(d) 14 print(num)

投稿2017/04/17 01:47

編集2017/04/17 04:42
magichan

総合スコア15898

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

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

退会済みユーザー

退会済みユーザー

2017/04/17 04:00

ありがとうございます。記載して下さった通りにコードを書いて実行すると、一行目だけ、その数字の数の回数だけしか取得できませんでした。 (つまり、 2 2  だけ) もし、全部取得できる方法がわかればお願いします。
magichan

2017/04/17 04:42

コメント欄は Markdownが使えないようなので、本文に追記しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問