回答編集履歴

3

変数名の改善

2018/11/15 22:01

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -94,19 +94,19 @@
94
94
 
95
95
  ```python
96
96
 
97
- n = 42
97
+ start = 0
98
98
 
99
- i = 0
99
+ end = 42
100
100
 
101
101
  while True:
102
102
 
103
- for i in range(i, n):
103
+ for i in range(start, end):
104
104
 
105
105
  print(i, end=" ")
106
106
 
107
107
  if i%4 == 0:
108
108
 
109
- i += 5
109
+ start = i + 5
110
110
 
111
111
  break
112
112
 

2

追記

2018/11/15 22:00

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- ---
29
+ ### 追記1
30
30
 
31
31
 
32
32
 
@@ -83,3 +83,39 @@
83
83
  # => 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
84
84
 
85
85
  ```
86
+
87
+
88
+
89
+ ### 追記2
90
+
91
+ なんかひらめいてしまったので追記しておきます。
92
+
93
+
94
+
95
+ ```python
96
+
97
+ n = 42
98
+
99
+ i = 0
100
+
101
+ while True:
102
+
103
+ for i in range(i, n):
104
+
105
+ print(i, end=" ")
106
+
107
+ if i%4 == 0:
108
+
109
+ i += 5
110
+
111
+ break
112
+
113
+ else:
114
+
115
+ break
116
+
117
+ print()
118
+
119
+ # => 0 5 6 7 8 13 14 15 16 21 22 23 24 29 30 31 32 37 38 39 40
120
+
121
+ ```

1

追記

2018/11/15 18:31

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -23,3 +23,63 @@
23
23
  # => 0 1 2 3 4 5 6 7 8 9 20 21 22 23 24 25 26 27 28 29
24
24
 
25
25
  ```
26
+
27
+
28
+
29
+ ---
30
+
31
+
32
+
33
+ ループ中にStopIteration例外が出てくると面倒というコメントを頂いたので、ちょっと追記。
34
+
35
+
36
+
37
+ ###### 何も対策しない場合
38
+
39
+ ```python
40
+
41
+ r = iter(range(30))
42
+
43
+
44
+
45
+ for i in r:
46
+
47
+ print(i, end=" ")
48
+
49
+ if i == 25:
50
+
51
+ for _ in range(10): next(r)
52
+
53
+ print()
54
+
55
+ # => StopIteration
56
+
57
+ ```
58
+
59
+ ###### 愚直に握りつぶす
60
+
61
+ ```python
62
+
63
+ r = iter(range(30))
64
+
65
+
66
+
67
+ for i in r:
68
+
69
+ print(i, end=" ")
70
+
71
+ if i == 25:
72
+
73
+ try:
74
+
75
+ for _ in range(10): next(r)
76
+
77
+ except StopIteration:
78
+
79
+ pass
80
+
81
+ print()
82
+
83
+ # => 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
84
+
85
+ ```