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

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

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

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

Q&A

解決済

2回答

293閲覧

Python 点数の並び替え

Assun

総合スコア6

Python

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

0グッド

0クリップ

投稿2022/06/21 00:20

編集2022/06/21 01:04

pythonの初心者です。10人の点数を並び替えるプログラムの穴埋めに取り組んでいるのですが、自筆した d[i] = d[i + j]にエラーが出てしまい、「list index out of range」と表示されています。初心者でエラーの発生意味がわかっておらず、どう修正して進めればよいのかわからない状況です。

python

1i = 1 2while i <= 10: 3 a = int(input()) 4 d[i] = a 5 i = i + 1 6i = 1 7while i < 10: 8 j = i + 1 9 while j <= 10: 10 if (d[i] < d[j]): 11 12#ここから 13 d[10] = d[i] 14 d[i] = d[i + j] #エラー発生 15 d[i + j] = d[10] 16#ここまでが問題の穴埋め部分(自筆) 17 18 j = j + 1 19 i = i + 1 20i = 1 21while i <= 10: 22 print(d[i], "", end= "") 23 i = i + 1

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

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

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

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

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

guest

回答2

0

ベストアンサー

質問が手打ちであることを考慮して、こちらで修正しました。
入力された10個のデータを降順にならべると理解しました。

python3

1d = [ 0 ] * 11 #追加 2i = 1 3while i <= 10: 4 a = int(input()) 5 d[i] = a 6 i = i + 1 7i = 1 8while i < 10: 9 j = i + 1 10 while j <= 10: 11 if (d[i] < d[j]): 12#ここから 13 w = d[i] #修正 14 d[i] = d[j] #修正 15 d[j] = w #修正 16#ここまでが問題の穴埋め部分(自筆) 17 j = j + 1 18 i = i + 1 19i = 1 20while i <= 10: 21 print(d[i], "", end= "") 22 i = i + 1

投稿2022/06/21 01:08

tatsu99

総合スコア5438

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

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

Assun

2022/06/21 01:26

正しく出力されました!!入力ミスでお手数お掛け致しましたが、ありがとうございました。降順=点数の大きい順だったのですね、自分の誤解で昇順の出力方法を調べて参考にしていたという点から間違っていたとわかりました。ご教示ありがとうございました
guest

0

回答ではありません。
1.提示されたソースに全角空白が混じってます。(□の箇所です)
これを修正して、再度実行してください。
(提示したソースはあなたの環境で実行したソースではなく、質問のための手打ちのソースなのでしょうか。)
(ソースの提示は、あなたの実際のソースをコピペして提示してください)
2.全角空白を、半角空白にして、こちらで実行すると、4行目の
d[i] = a
でエラーになります。
従って、あなたの提示された
d[i] = d[i + j]. #エラー発生
の行まで、たどり着けません。
正式なあなたの実行環境のソースを提示していただけませんでしょうか。
又、一部ではなく、全部のソースを提示していただけませんでしょうか。

i = 1 while i <= 10: a = int(input()) d[i] = a j = i + 1 i = 1 while i < 10: j = j + 1 while j <= 10: if (d[i] < d[j]): #ここから d[10] = d[i] □□□□□ d[i] = d[i + j]. #エラー発生 d[i + j] = d[10] #ここまでが問題の穴埋め部分(自筆) □ j = j + 1 i = i + 1 i = 1 while i <= 10: print(d[i], "", end= "") i = i + 1

投稿2022/06/21 00:37

tatsu99

総合スコア5438

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

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

Assun

2022/06/21 00:45

ご教示ありがとうございます。別PCでコーディングしていてteratailには手打ちをしたのでいくつも入力ミスがあったようで失礼いたしました。今取り急ぎ修正いたしました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問