質問するログイン新規登録

回答編集履歴

2

説明文を修正

2017/08/15 17:29

投稿

tsuemura
tsuemura

スコア663

answer CHANGED
@@ -1,4 +1,5 @@
1
+ 入力の検証を別のメソッドに切り分けて、その中でループさせるようにしてください。
1
- 再帰使うと良いです。
2
+ 以下の例では再帰を用て、正しい結果が返るまループさせています。
2
3
 
3
4
  ```python
4
5
  def validate_input(msg, ls):

1

再帰のreturn漏れを修正、in2のbreakを削除

2017/08/15 17:29

投稿

tsuemura
tsuemura

スコア663

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  if inp in ls:
7
7
  return inp
8
8
  else:
9
- validate_input(msg, ls)
9
+ return validate_input(msg, ls)
10
10
 
11
11
  i = 1
12
12
  out = []
@@ -22,9 +22,7 @@
22
22
  in2 = validate_input('Enter a or b: ', ('a', 'b'))
23
23
  if in2 == 'a':
24
24
  out.append('a')
25
- break
26
25
  elif in2 == 'b':
27
26
  out.append('b')
28
- break
29
27
  print ('out= ',out)
30
28
  ```