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

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

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

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

Q&A

解決済

1回答

848閲覧

構文エラーの質問です。

Chibichan

総合スコア72

Python

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

0グッド

1クリップ

投稿2020/07/17 17:33

選択番号を入れるときに文字列を入れるとValueErrorになり、もう一度choice = int(input("選択番号: "))から始めたいのですが、どこにTry...Exceptの文を入れたら、choice = int(input("選択番号: "))から始めることができるかわかりません。今の文ですとprint("どれにしますか:")から始まります。番号を入れたときは、いつでもprint("どれにしますか:")から始めたいです。

def

1 print("どれにしますか:") 2 print("1) Testaa ValueError") 3 print("2) Testaa IndexError") 4 print("3) Testaa ZeroDivisionError") 5 print("4) Testaa TypeError") 6 print("0) Lopeta") 7 choice = int(input("選択番号: ")) 8 return choice 9 10def value(): 11 print(" ValueErrorをテストします") 12 return None 13 14def index(): 15 lista = [11,22,33,44,55] 16 number = int(input("0-4のインデックス番号をいれてください: ")) 17 try: 18 print("リストの値は ",lista[number],"です",sep = "") 19 except IndexError: 20 print("IndexErrorです") 21 return None 22 23 24def zero(): 25 luku = 4 26 jakaja = int(input("割る数をいれてください: ")) 27 try: 28 print(luku,"/" ,jakaja," は ",round(luku/jakaja,2),"です",sep="") 29 except ZeroDivisionError: 30 print("ZeroDivisionErrorです。") 31 return None 32 33def type(): 34 number = input("数字をいれてください:" ) 35 try: 36 print(number/number) 37 except TypeError: 38 print("TypeErrorです。") 39 return None 40 41def main(): 42 while True: 43 try: 44 toiminto = valikko() 45 if toiminto == 0: 46 print("ありがとうございました。") 47 break 48 elif toiminto == 1: 49 value() 50 elif toiminto == 2: 51 index() 52 elif toiminto == 3: 53 zero() 54 elif toiminto == 4: 55 type() 56 elif toiminto >4: 57 print("もう一度番号を入れてください") 58 except ValueError: 59 print("整数を入れてください") 60 61 return None 62 63main() 64 65 66 67 68コード

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

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

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

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

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

guest

回答1

0

ベストアンサー

たとえば、次のように実装します:

python

1def valikko(): 2 print("どれにしますか:") 3 print("1) Testaa ValueError") 4 print("2) Testaa IndexError") 5 print("3) Testaa ZeroDivisionError") 6 print("4) Testaa TypeError") 7 print("0) Lopeta") 8 while True: 9 try: 10 return int(input("選択番号: ")) 11 except ValueError: 12 print("整数を入れてください") 13 14 15# --- 略 --- 16 17 18def main(): 19 while True: 20 toiminto = valikko() 21 if toiminto == 0: 22 print("ありがとうございました。") 23 break 24 elif toiminto == 1: 25 value() 26 elif toiminto == 2: 27 index() 28 elif toiminto == 3: 29 zero() 30 elif toiminto == 4: 31 type() 32 elif toiminto > 4: 33 print("もう一度番号を入れてください") 34 return None 35 36main()

実行結果:

console

1$ python test.py 2どれにしますか: 31) Testaa ValueError 42) Testaa IndexError 53) Testaa ZeroDivisionError 64) Testaa TypeError 70) Lopeta 8選択番号: 1 9 ValueErrorをテストします 10どれにしますか: 111) Testaa ValueError 122) Testaa IndexError 133) Testaa ZeroDivisionError 144) Testaa TypeError 150) Lopeta 16選択番号: 2 170-4のインデックス番号をいれてください: 0 18リストの値は 11です 19どれにしますか: 201) Testaa ValueError 212) Testaa IndexError 223) Testaa ZeroDivisionError 234) Testaa TypeError 240) Lopeta 25選択番号: aaaa 26整数を入れてください 27選択番号: 0 28ありがとうございました。 29$

投稿2020/07/17 17:53

y_shinoda

総合スコア3272

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

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

Chibichan

2020/07/17 18:03

tryの所にreturnを入れることができるんですね!勉強になりました! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問