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

質問編集履歴

7

誤字

2020/07/07 05:09

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -116,7 +116,7 @@
116
116
  ```
117
117
 
118
118
  (その2)
119
- もし以下のように、functionの要素を文字列で生成する場合、
119
+ もし以下のように、functionの要素を文字列で生成する(どうしても手書きではなく自動生成しないと数が多すぎるなどの場合)とき
120
120
  `['my_func.func0', 'my_func.func1', 'my_func.func2', 'my_func.func3']`を`func = [div, div, sum, dif]`と同じデータ型にするにはどうすれば良いでしょうか。
121
121
 
122
122
  ```

6

追記その2

2020/07/07 05:09

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -91,6 +91,7 @@
91
91
  ```
92
92
 
93
93
  ### ご回答を受けての追記
94
+ (その1)
94
95
  my_func.pyを別ファイルで持ちたい場合、以下のようにコードはなりますが、
95
96
 
96
97
  test.py
@@ -114,6 +115,18 @@
114
115
  NameError: name 'multi' is not defined
115
116
  ```
116
117
 
118
+ (その2)
119
+ もし以下のように、functionの要素を文字列で生成する場合、
120
+ `['my_func.func0', 'my_func.func1', 'my_func.func2', 'my_func.func3']`を`func = [div, div, sum, dif]`と同じデータ型にするにはどうすれば良いでしょうか。
117
121
 
122
+ ```
123
+ num = [8, 4, 6, 2]
124
+ func = []
125
+ for j in range(len(num)):
126
+ func.append('my_func.func'+ str(j))
127
+
128
+ print(func)
129
+ ```
130
+
118
131
  ### 補足情報(FW/ツールのバージョンなど)
119
132
  Python 3.7.4

5

ご回答を受けての追記

2020/07/07 04:59

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -90,6 +90,30 @@
90
90
  2.0
91
91
  ```
92
92
 
93
+ ### ご回答を受けての追記
94
+ my_func.pyを別ファイルで持ちたい場合、以下のようにコードはなりますが、
93
95
 
96
+ test.py
97
+ ```python
98
+ import my_func
99
+
100
+ num = [8, 4, 6, 2]
101
+ func = [div, div, sum, dif]
102
+
103
+ for i, n in enumerate(num):
104
+ print(i, n, my_func.func[i](n))
105
+
106
+ ```
107
+
108
+ 関数についての配列の要素でエラーが起こり、0番目を`div`に変更しても同じエラーが起こるのは回避できるのでしょうか。
109
+ ```
110
+ $ python test.py
111
+ Traceback (most recent call last):
112
+ File "test.py", line 4, in <module>
113
+ func = [multi, div, sum, dif]
114
+ NameError: name 'multi' is not defined
115
+ ```
116
+
117
+
94
118
  ### 補足情報(FW/ツールのバージョンなど)
95
119
  Python 3.7.4

4

脱字

2020/07/07 04:41

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- 呼び出す関数を配列の添字によって変えたいが構文エラーになり、他の方法もわからない
1
+ 呼び出す関数を配列の添字によって変えたいが構文エラーになり、他の解決方法もわからない
body CHANGED
File without changes

3

誤字

2020/07/07 03:40

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- 呼び出す関数を配列番号によって変えたいが構文エラーになり、他の方法もわからない
1
+ 呼び出す関数を配列の添字によって変えたいが構文エラーになり、他の方法もわからない
body CHANGED
@@ -1,11 +1,11 @@
1
1
  ### 前提・実現したいこと
2
- 配列番号によって呼び出す関数を変えるという制御を実現しようとしています。
2
+ 配列の添字によって呼び出す関数を変えるという制御を実現しようとしています。
3
3
  具体的には
4
4
  ```
5
5
  num = [8, 4, 6, 2]
6
6
  func = ["multi", "div", "sum", "dif"]
7
7
  ```
8
- のように配列に格納されている0番目は、関数も0番目のものを適用したいです。
8
+ のように配列に格納されている0番目の数字は、関数も0番目のものを適用したいです。
9
9
 
10
10
 
11
11
  ### 発生している問題・エラーメッセージ

2

タグの追加

2020/07/07 03:40

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
File without changes

1

該当のソースコードの修正

2020/07/07 03:29

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -48,6 +48,14 @@
48
48
  def div(x):
49
49
  y = x / 2
50
50
  return y
51
+
52
+ def sum(x):
53
+ y = x + 2
54
+ return y
55
+
56
+ def dif(x):
57
+ y = x - 1
58
+ return y
51
59
  ```
52
60
 
53
61
  ### 試したこと
@@ -74,14 +82,6 @@
74
82
  def div(x):
75
83
  y = x / 2
76
84
  return y
77
-
78
- def sum(x):
79
- y = x + 2
80
- return y
81
-
82
- def dif(x):
83
- y = x - 1
84
- return y
85
85
  ```
86
86
 
87
87
  ```bash