回答編集履歴

7

説明を追加

2021/08/23 16:23

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  - finally 節はエラーが出ても出なくても必ず実行される。try 節の sleep(1) で1秒スリープし、さらに finally 節の sleep(1) で1秒スリープする結果、2秒間隔で while ループが実行されることになる。それでよいのかどうか。
50
50
 
51
- よくない場合は、finally 節を削除して、except 節の continue の前に sleep(1) を入れ
51
+ よくない場合は、finally 節を削除して、finally 節の sleep(1) は except 節の continue の前に移動す
52
52
 
53
53
  - except 節は複数指定できるので、以下のような書き方ができる
54
54
 

6

説明を追加

2021/08/23 16:23

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  - 代わりに `ax.cla()` の1行をその位置に挿入する
8
8
 
9
- - plt.gca().〜 は `ax`.〜 に置き換えて以下のようにする(書き換えなくても動くが、関数にするならこのほうがプログラムが明になる)
9
+ - plt.gca().〜 は `ax`.〜 に置き換えて以下のようにする(書き換えなくても動くが、関数にするならこのほうがプログラムの意図※が明になる)
10
10
 
11
11
  ax.xaxis.set_major_locator(mdates.HourLocator(interval=1))
12
12
 
@@ -15,6 +15,8 @@
15
15
  ax.set_xlim(xmin=datetime.datetime(d_today.year, d_today.month, d_today.day, 7, 0),xmax=dt_end)
16
16
 
17
17
  ax.set_yticks([0, 1])
18
+
19
+ ※ プログラムの意図:figure(fig)、Axes(ax)は最初にひとつだけ作って、関数では常にそれを引数で受け取って使い回すということ
18
20
 
19
21
  - 上と同じ理由で plt.bar(x,y,width=0.0007) も
20
22
 

5

説明を追加

2021/08/23 16:04

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  - 代わりに `ax.cla()` の1行をその位置に挿入する
8
8
 
9
- - plt.gca().〜 は `ax`.〜 に置き換えて以下のようにする
9
+ - plt.gca().〜 は `ax`.〜 に置き換えて以下のようにする(書き換えなくても動くが、関数にするならこのほうがプログラムが明快になる)
10
10
 
11
11
  ax.xaxis.set_major_locator(mdates.HourLocator(interval=1))
12
12
 
@@ -15,6 +15,12 @@
15
15
  ax.set_xlim(xmin=datetime.datetime(d_today.year, d_today.month, d_today.day, 7, 0),xmax=dt_end)
16
16
 
17
17
  ax.set_yticks([0, 1])
18
+
19
+ - 上と同じ理由で plt.bar(x,y,width=0.0007) も
20
+
21
+ `ax.bar(x,y,width=0.0007)`
22
+
23
+ とした方が良い
18
24
 
19
25
 
20
26
 

4

説明の語句を追加

2021/08/23 15:54

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  inputVal0=readadc(0,SPICLK,SPIMOSI,SPIMISO,SPICS)
38
38
 
39
- の行の直前に1箇所あればよいはず
39
+ の行の直前(try:の直後)に1箇所あればよいはず
40
40
 
41
41
  - finally 節はエラーが出ても出なくても必ず実行される。try 節の sleep(1) で1秒スリープし、さらに finally 節の sleep(1) で1秒スリープする結果、2秒間隔で while ループが実行されることになる。それでよいのかどうか。
42
42
 

3

回答の微修正と回答の追加

2021/08/23 15:25

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  - 代わりに `ax.cla()` の1行をその位置に挿入する
8
8
 
9
- - plt.gca().〜 は `ax`.〜 に置き換える。結果として以下のように
9
+ - plt.gca().〜 は `ax`.〜 に置き換えて以下のように
10
10
 
11
11
  ax.xaxis.set_major_locator(mdates.HourLocator(interval=1))
12
12
 
@@ -32,8 +32,32 @@
32
32
 
33
33
  - from io import StringIO は不要
34
34
 
35
- - start=time.time() が2箇所にあるが、inputVal0=readadc(0,SPICLK,SPIMOSI,SPIMISO,SPICS) の行の直前に1箇所あればよいはず
35
+ - start=time.time() が2箇所にあるが、
36
36
 
37
+ inputVal0=readadc(0,SPICLK,SPIMOSI,SPIMISO,SPICS)
38
+
39
+ の行の直前に1箇所あればよいはず
40
+
37
- - finally 節はエラーが出ても出なくても必ず実行されるので、FileNotFoundErrorが出ていない間は、try 節の sleep(1) finally 節の sleep(1) 2秒間隔で while ループが実行される。それでよいのかどうか。
41
+ - finally 節はエラーが出ても出なくても必ず実行されるtry 節の sleep(1) で1秒スリープし、さらに finally 節の sleep(1) で1秒スリープする結果、2秒間隔で while ループが実行されることになる。それでよいのかどうか。
38
42
 
39
43
  よくない場合は、finally 節を削除して、except 節の continue の前に sleep(1) を入れる
44
+
45
+ - except 節は複数指定できるので、以下のような書き方ができる
46
+
47
+ ```python
48
+
49
+ while True:
50
+
51
+ try:
52
+
53
+ ...
54
+
55
+ except FileNotFoundError:
56
+
57
+ continue
58
+
59
+ except KeyboardInterrupt:
60
+
61
+ break # ctrl+c でループを抜ける
62
+
63
+ ```

2

微細な修正

2021/08/23 15:21

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  - 代わりに `ax.cla()` の1行をその位置に挿入する
8
8
 
9
- - plt.gca() の箇所は `ax` に置き換える。結果として以下のようになる
9
+ - plt.gca().〜 は `ax`.〜 に置き換える。結果として以下のようになる
10
10
 
11
11
  ax.xaxis.set_major_locator(mdates.HourLocator(interval=1))
12
12
 

1

微細な修正

2021/08/23 14:08

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -1,4 +1,4 @@
1
- **def plot_operation()関数について:**
1
+ **plot_operation()関数について:**
2
2
 
3
3
 
4
4