diff --git a/Demo/curses/tclock.py b/Demo/curses/tclock.py
index 1950043..8058d9a 100644
--- a/Demo/curses/tclock.py
+++ b/Demo/curses/tclock.py
@@ -14,7 +14,8 @@
     return 1
 
 def A2XY(angle, radius):
-    return int(round(ASPECT * radius * sin(angle))), int(round(radius * cos(angle)))
+    return (int(round(ASPECT * radius * sin(angle))),
+            int(round(radius * cos(angle))))
 
 def plot(x, y, col):
     stdscr.addch(y, x, col)
@@ -37,9 +38,9 @@
     y = from_y
 
     if ax > ay:
-        d = ay - ax / 2
+        d = ay - ax // 2
 
-        while 1:
+        while True:
             plot(x, y, ch)
             if x == x2:
                 return
@@ -50,9 +51,9 @@
             x += sx
             d += ay
     else:
-        d = ax - ay / 2
+        d = ax - ay // 2
 
-        while 1:
+        while True:
             plot(x, y, ch)
             if y == y2:
                 return
@@ -78,12 +79,12 @@
         curses.init_pair(2, curses.COLOR_MAGENTA, my_bg)
         curses.init_pair(3, curses.COLOR_GREEN, my_bg)
 
-    cx = (curses.COLS - 1) / 2
-    cy = curses.LINES / 2
-    ch = min( cy-1, int(cx / ASPECT) - 1)
-    mradius = (3 * ch) / 4
-    hradius = ch / 2
-    sradius = 5 * ch / 6
+    cx = (curses.COLS - 1) // 2
+    cy = curses.LINES // 2
+    ch = min( cy-1, int(cx // ASPECT) - 1)
+    mradius = (3 * ch) // 4
+    hradius = ch // 2
+    sradius = 5 * ch // 6
 
     for i in range(0, 12):
         sangle = (i + 1) * 2.0 * pi / 12.0
@@ -96,7 +97,7 @@
 
     sradius = max(sradius-4, 8)
 
-    while 1:
+    while True:
         curses.napms(1000)
 
         tim = time.time()
