回答編集履歴

2

修正

2023/04/21 05:40

投稿

bsdfan
bsdfan

スコア4567

test CHANGED
@@ -1,23 +1,2 @@
1
- 作者がここでいことが、「動的に組み立てた文字列を実行できる」ということだとしたら、無理やり感はありますが、下記のようにプログラムとなる文字列を何らかの方法で組み立てて、一発で実行するというのになるんでしょうか・・・
1
+ 質問勘違め削除
2
2
 
3
- 実際は、このケースなら、can110さんの回答のように、状態遷移っぽく考えるほうが、スマートでわかりやすいと思います。
4
-
5
- ```python
6
- def q(question, yes, no):
7
- l = [f'if input("あなたは{question}?") == "yes":']
8
- l += [' ' + s for s in yes]
9
- l += ['else:']
10
- l += [' ' + s for s in no]
11
- return l
12
-
13
- def r(result):
14
- return [f'print("あなたは{result}!")']
15
-
16
- q3 = q('器用', r('熱中'), r('ひょうきん'))
17
- q2 = q('声が大', r('注目'), q3)
18
- q1 = q('年上', q2, q3)
19
-
20
- s = '\n'.join(q1)
21
-
22
- exec(s)
23
- ```

1

表記

2023/04/20 05:45

投稿

bsdfan
bsdfan

スコア4567

test CHANGED
@@ -1,6 +1,4 @@
1
- 作者がここでいいたいことが、「動的に組み立てた文字列を実行できる」ということだとしたら、
1
+ 作者がここでいいたいことが、「動的に組み立てた文字列を実行できる」ということだとしたら、無理やり感はありますが、下記のようにプログラムとなる文字列を何らかの方法で組み立てて、一発で実行するというのになるんでしょうか・・・
2
- 無理やり感はありますが、下記のようにプログラムとなる文字列を何らかの方法で組み立てて、
3
- 一発で実行するというのになるんでしょうか・・・
4
2
 
5
3
  実際は、このケースなら、can110さんの回答のように、状態遷移っぽく考えるほうが、スマートでわかりやすいと思います。
6
4