回答編集履歴

2

追記しました。

2023/05/24 02:07

投稿

TakaiY
TakaiY

スコア12779

test CHANGED
@@ -10,3 +10,16 @@
10
10
 
11
11
  print()は forの前の式のところにしか書けず、式は1つしか書けないので、print()がNoneを返すことを利用して、式のところで or でつないで使います。
12
12
  通常の記述で使うと邪魔なので、調べるときとかデバッグ用途でのみ使うのがいいでしょう。
13
+
14
+ ---
15
+ 追記
16
+
17
+ 式をよく見てなくて、内包表記が入れ子になっているの気づいてませんでした。 j は 内側の内包表記の変数なので、内側で表示させる必要がありました。
18
+
19
+ ```python
20
+ print(foo([foo(k) for k in sum([print(f'{i=}') or [print(f'{j=}') or a[j: i + j + 1]
21
+ for j in range(n) if i + j < n]
22
+ for i in range(n)], [])]))
23
+ ```
24
+ 内側ならiも表示できるので、両方内側で表示してもいいかもしれませんね。
25
+

1

追記

2023/05/23 10:48

投稿

TakaiY
TakaiY

スコア12779

test CHANGED
@@ -6,5 +6,7 @@
6
6
  for i in range(n)], [])]))
7
7
  ```
8
8
 
9
+ 上では、i, jしか表示させていませんが、 foo(k)の前に 「print(f'{k=}') or」を入れればkも表示できます。
10
+
9
11
  print()は forの前の式のところにしか書けず、式は1つしか書けないので、print()がNoneを返すことを利用して、式のところで or でつないで使います。
10
12
  通常の記述で使うと邪魔なので、調べるときとかデバッグ用途でのみ使うのがいいでしょう。