At long last, string repetition is working.
This code:
a = 'abc'
b = a * False
print('"' + b + '"')
b = a * True
print('"' + b + '"')
b = a * 0
print('"' + b + '"')
b = a * 1
print('"' + b + '"')
b = a * 16
print(b)
b = 32 * a
print(b)
yields this output:
""
"abc"
""
"abc"
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc
And I have not found any more surprises in the multiply and divide code. One of the tests:
a = 4
b = a // 2
print('4 // 2 =', b)
a = 1000
print('a =', a)
b = 4 * a
print('4 * a =', b)
b = a * 4
print('a * 4 =', b)
b = 4 // a
print('4 // a =', b)
b = a // 4
print('a // 4 =', b)
a = a * a
print('a * a =', a)
b = 4 * a
print('4 * a =', b)
b = a * 4
print('a * 4 =', b)
a = a * a
print('a * a =', a)
b = 4 * a
print('4 * a =', b)
b = a * 4
print('a * 4 =', b)
b = a // 250
print(a, '// 250 =', b)
b = a // 128
print(a, '// 128 =', b)
d = 1000
d = a // 4
print(a, '// 4', '=', d)
a=1000
c=250
d = a // c
print(a, '//', c, '=', d)
a=1000
c=250*a
a=a*a
d = a // c
print(a, '//', c, '=', d)
d = c // 4
print(c, '// 4 =', d)
a=1000
c=250*a*a
a=a*a*a
d = a // c
print(a, '//', c, '=', d)
d = c // 4
print(c, '// 4 =', d)
a=1000
c=250*a*a*a
a=a*a*a*a
d = a // c
print(a, '//', c, '=', d)
d = c // 4
print(c, '// 4 =', d)
and its output:
4 // 2 = 2
a = 1000
4 * a = 4000
a * 4 = 4000
4 // a = 0
a // 4 = 250
a * a = 1000000
4 * a = 4000000
a * 4 = 4000000
a * a = 1000000000000
4 * a = 4000000000000
a * 4 = 4000000000000
1000000000000 // 250 = 4000000000
1000000000000 // 128 = 7812500000
1000000000000 // 4 = 250000000000
1000 // 250 = 4
1000000 // 250000 = 4
250000 // 4 = 62500
1000000000 // 250000000 = 4
250000000 // 4 = 62500000
1000000000000 // 250000000000 = 4
250000000000 // 4 = 62500000000