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

質問編集履歴

3

疑問点の詳細化

2021/05/18 14:03

投稿

911930964993996
911930964993996

スコア5

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- 呼び出すたびに与えられた引数の値を足し合わせて戻り地として返し、合計値が10以上のときは常に10を返すような関数を戻り値として返す関数、create_closure()を作成したのですが、うまく動きません。このプログラムだと呼出たびに返り値が1増る関を戻り地として返す関数になってしまいます。
1
+ 呼び出すたびに与えられた引数の値を足し合わせて戻り地として返し、合計値が10以上のときは常に10を返すような関数を戻り値として返す関数、create_closure()を作成したのですが、うまく動きません。呼されるたびにられた引の値合算して戻り地として返す関数、を返関数の書き方が分かりません
2
2
 
3
3
  ```ここに言語を入力
4
4
  def create_closure():
@@ -12,9 +12,9 @@
12
12
 
13
13
  def count(): 
14
14
  nonlocal x
15
- x += 1
15
+ x += x
16
16
  return x
17
-   if x > 10:
17
+   if x += x > 10:
18
18
  return 10 
19
19
 
20
20
  return count

2

プログラムの書き換え

2021/05/18 14:03

投稿

911930964993996
911930964993996

スコア5

title CHANGED
File without changes
body CHANGED
@@ -14,6 +14,8 @@
14
14
  nonlocal x
15
15
  x += 1
16
16
  return x
17
+   if x > 10:
18
+ return 10 
17
19
 
18
20
  return count
19
21
 

1

記述方法の変更

2021/05/18 12:48

投稿

911930964993996
911930964993996

スコア5

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,6 @@
1
- 呼び出すたびに与えられた引数の値を足し合わせて戻り地として返し、合計値が10以上のときは常に10を返すような関数を戻り値として返す関数、create_closure()を作成したのですが、うまく動きません。
1
+ 呼び出すたびに与えられた引数の値を足し合わせて戻り地として返し、合計値が10以上のときは常に10を返すような関数を戻り値として返す関数、create_closure()を作成したのですが、うまく動きません。このプログラムだと呼出すたびに返り値が1増える関数、を戻り地として返す関数になってしまいます。
2
2
 
3
+ ```ここに言語を入力
3
4
  def create_closure():
4
5
  """呼び出されるたびに与えられた引数の値を合算して戻り地として返す関数、を返す関数
5
6
 
@@ -7,7 +8,7 @@
7
8
  callable: 呼び出されるたびに与えられた引数の値を合算して戻り地として返す関数
8
9
 
9
10
  """
10
- x = 0
11
+ x = 0
11
12
 
12
13
  def count(): 
13
14
  nonlocal x
@@ -20,4 +21,5 @@
20
21
  f = create_closure()
21
22
  print(f()) # 1
22
23
  print(f()) # 2
23
- print(f()) # 3
24
+ print(f()) # 3
25
+ ```