『スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)』で以下のようなコードが登場する。

────────────────────────────────

count = 0
student_num = int(input(“type a number of students >>”))
score_list = list()
while count < student_num:
    count += 1
    score = int(input(f”{count}人目の試験の得点を入力 >>”))
    score_list.append(score)
print(score_list)
total = sum(score_list)
print(f”average score is {total / student_num}.”)

────────────────────────────────

『スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)』

https://amzn.to/4dxKxAx

※上記リンクはアフィリエイトのものを使用しております。

 

“間違えて空白のままエンターを押す、ということもあるのでは?”と思ったので、

空白で入力された場合は、再度入力を促すようなコードにしたいと思い、

以下のようなコードにしてみた。

────────────────────────────────

count = 0
student_num = int(input(“type a number of students >>”))
score_list = list()
while count < student_num:
    count += 1
    #scoreが空白ならば、再度入力を促す。
    try:
        score = int(input(f”{count}人目の試験の得点を入力 >>”))
        score_list.append(score)
    except ValueError:
        print(“Did you make a typo? If yes, then type again”)
        score = int(input(f”{count}人目の試験の得点を入力 >>”))
        score_list.append(score)

print(score_list)
total = sum(score_list)
print(f”average score is {total / student_num}.”)

────────────────────────────────

ただ、これも完璧ではなくて、一度空白を入力した際は再度入力を促してくれるものの、

二回目も空白で入力した場合は、ValueErrorを返してしまう…

現在の私の知識では二回目以降も入力を促してくれるように改修はできなかった。

まあ、空白を入力→再度入力を促すようには出来たので、一歩前進できたと考えることにする。

 

投稿者 YOHEY_mk

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA