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

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

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

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

Q&A

解決済

3回答

234閲覧

パイソン3での標準入力について

smallmouth

総合スコア13

Python 3.x

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

0グッド

0クリップ

投稿2018/09/24 13:13

前提・実現したいこと

パイソン3でプログラミングの勉強を始めたばかりです。

input関数についてお聞きしたいです。

入力値として
100
80
50
70
のように、テストの点数が書かれています。

これをinput関数で、入力して
printしたときに、
出力される値に

1 100
2 80
3 50
4 70

といった感じで、出席番号のような数値を伴った状態で、出力したいのですが、

test_score = input()
print(test_score)

test_score = input()
print(test_score)

test_score = input()
print(test_score)

test_score = input()
print(test_score)

とすると、
100
80
50
70
と出力されます。

先ほどのように、点数の前に番号をふれるようにしたいのですが、どうしたらよいか、教えて頂けたらと思います。

初心者なもので、質問が分かりづらかったらすいません。

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

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

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

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

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

guest

回答3

0

ベストアンサー

最も簡単な実現方法はこんな感じです。

Python

1for i in range(4): 2 num = int(input()) 3 print(i+1, num)

ただし後々の処理を考えると、入力をリストにまとめた方が良いでしょう。
次のようにまとめられます。

Python

1data = [] 2for i in range(4): 3 num = int(input()) 4 data.append(num)

出力する際はこのようにします。

Python

1for i, num in enumerate(data, start=1): 2 print(i, num)

for文を使うことに慣れるようにしてください。

投稿2018/09/24 13:30

編集2018/09/24 13:31
LouiS0616

総合スコア35660

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

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

smallmouth

2018/09/24 13:34

ありがとうございます。 ループにまだ、慣れていないので、ちょっとずつ練習します。
guest

0

Pythonなど不要。そう、シェル芸ならね!

bash

1$ cat input.txt 2100 380 450 570 6$ cat input.txt|nl -nln -s' ' -w1 71 100 82 80 93 50 104 70

投稿2018/09/24 13:28

hichon

総合スコア5737

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

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

smallmouth

2018/09/24 13:36

返信ありがとうございます。 これは、パイソン3では、ないのですかね? それも、分からないくらい、初心者です。 パイソン3でも、このやり方で、できるのならば、助かります。
Takumiboo

2018/09/24 14:07

Pythonの学習をされている方にPython以外の方法を伝えるのは…。
guest

0

python

1for i in range(10): 2 test_score = input() 3 print(i+1, test_score)

ループを使えば順番に番号を表示できます。

追記 rangeの中の数を抽象化する方法

方法1.rangeの中の数をinput入力に変える

python

1test_result_num = int(input("テスト結果の数を入力してね")) 2 3for i in range(test_result_num): 4 test_score = input() 5 print(i + 1, test_score)

方法2 sys.argvを使う
参考 https://qiita.com/orange_u/items/3f0fb6044fd5ee2c3a37
10回ループさせたい時は次の画像のようにコマンドプロンプトでファイル名+スペース+数字を入力する。
イメージ説明

python

1import sys 2 3for i in range(int(sys.argv[1])): 4 test_score = input() 5 print(i+1, test_score)

inputを使ったやり方の方が理解しやすいと思います。

投稿2018/09/24 13:27

編集2018/09/26 13:54
puroko3

総合スコア185

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

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

smallmouth

2018/09/24 13:37

返信ありがとうございます。 わかりやすかったです。
smallmouth

2018/09/26 13:24

すいません。もう一つ聞きたいのですが、今回は、テスト結果が4つなので、range(4)になっているのだと思いますが、テストによっては、結果が10個だったり、20個だったりします。 これは、その都度、range内の数字を変更するしかないのですか。 いちいち、そこの数値を変更しないで、結果を出力するにはどのようにしたらよいか、教えて頂きたいのですが、よろしいでしょうか。 質問がわかりづらかったら、すいません。
smallmouth

2018/09/26 13:24

すいません。もう一つ聞きたいのですが、今回は、テスト結果が4つなので、range(4)になっているのだと思いますが、テストによっては、結果が10個だったり、20個だったりします。 これは、その都度、range内の数字を変更するしかないのですか。 いちいち、そこの数値を変更しないで、結果を出力するにはどのようにしたらよいか、教えて頂きたいのですが、よろしいでしょうか。 質問がわかりづらかったら、すいません。
puroko3

2018/09/27 04:08 編集

質問に追記しておきました。 もし質問の意図と違うならすいません
smallmouth

2018/09/27 13:53

ありがとうございます。 これで、何とかなりそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問