回答編集履歴
2
更に追記
answer
CHANGED
@@ -5,4 +5,48 @@
|
|
5
5
|
TkはGUIツールキットなので、GUIを作るとき以外は使いません。
|
6
6
|
どうしてTkでそういう処理ができるのかというと、端的に言えばTkにイベントドリブンの概念があるからです。これはここで説明して理解して頂くのは難しいし、やりたくないので、ご自身で勉強して理解してください。一応wikipediaを貼っておきます。
|
7
7
|
[イベント駆動型プログラミング - Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E9%A7%86%E5%8B%95%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
|
8
|
-
それなりに難解な概念なので、初心者のうちは敢えて取り組まない方が良いかもしれませんが・・・。
|
8
|
+
それなりに難解な概念なので、初心者のうちは敢えて取り組まない方が良いかもしれませんが・・・。
|
9
|
+
|
10
|
+
### 更に追記
|
11
|
+
「そういえば、時間を表示したいだけなら別スレッドで延々と走らせればなんとかなるなぁ」と思ったので、書いたコードを示しておきます。無駄にフィボナッチ数を計算させてみました。
|
12
|
+
|
13
|
+
```python
|
14
|
+
# coding: UTF-8
|
15
|
+
|
16
|
+
from datetime import datetime
|
17
|
+
import threading
|
18
|
+
|
19
|
+
stop = False
|
20
|
+
|
21
|
+
def timer():
|
22
|
+
print(datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
|
23
|
+
if not stop:
|
24
|
+
t1 = threading.Timer(3, timer)
|
25
|
+
t1.start()
|
26
|
+
|
27
|
+
def fib(n):
|
28
|
+
if n < 2:
|
29
|
+
return n
|
30
|
+
else :
|
31
|
+
return fib(n-1)+fib(n-2)
|
32
|
+
|
33
|
+
def main():
|
34
|
+
global stop
|
35
|
+
t1 = threading.Timer(1, timer)
|
36
|
+
t1.start()
|
37
|
+
while True:
|
38
|
+
line = input()
|
39
|
+
if line == "q":
|
40
|
+
break
|
41
|
+
else:
|
42
|
+
if line.isnumeric() and int(line) >= 0:
|
43
|
+
print("FIB({0})={1}".format(int(line), fib(int(line))))
|
44
|
+
else:
|
45
|
+
print("0以上の整数を入力してください")
|
46
|
+
stop = True
|
47
|
+
t1.join()
|
48
|
+
|
49
|
+
if __name__ == "__main__":
|
50
|
+
main()
|
51
|
+
```
|
52
|
+
なので、質問の回答としては「スレッド使えばできます」が最終的な答えになりますね。
|
1
追記を受けて
answer
CHANGED
@@ -1,1 +1,8 @@
|
|
1
|
-
ええっと、一定間隔(例としてあがっているプログラムでは1秒おき)で時間を利用した何らかの処理をしたいということであれば、ループの中にその処理を入れれば良いのでは。単に一回だけ時間がわかれば良いのなら、ループをなくせば良い。
|
1
|
+
ええっと、一定間隔(例としてあがっているプログラムでは1秒おき)で時間を利用した何らかの処理をしたいということであれば、ループの中にその処理を入れれば良いのでは。単に一回だけ時間がわかれば良いのなら、ループをなくせば良い。
|
2
|
+
|
3
|
+
### 質問の追記を受けて
|
4
|
+
やりたいことはわかりました。
|
5
|
+
TkはGUIツールキットなので、GUIを作るとき以外は使いません。
|
6
|
+
どうしてTkでそういう処理ができるのかというと、端的に言えばTkにイベントドリブンの概念があるからです。これはここで説明して理解して頂くのは難しいし、やりたくないので、ご自身で勉強して理解してください。一応wikipediaを貼っておきます。
|
7
|
+
[イベント駆動型プログラミング - Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E9%A7%86%E5%8B%95%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
|
8
|
+
それなりに難解な概念なので、初心者のうちは敢えて取り組まない方が良いかもしれませんが・・・。
|