Re:Ask HN: Why not use variable-width fonts for programming?
by lutusp on Friday February 07, 2014 @02:34AM
(#7195218)
Fair enough. But try this (or any of its many equivalents) with a proportional font or tabs:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
s = ''
for y in range(1,13):
for x in range(1,13):
s += '%4d' % (x*y)
s += '\n'
print(s)
1 2 3 4 5 6 7 8 9 10 11 12
2 4 6 8 10 12 14 16 18 20 22 24
3 6 9 12 15 18 21 24 27 30 33 36
4 8 12 16 20 24 28 32 36 40 44 48
5 10 15 20 25 30 35 40 45 50 55 60
6 12 18 24 30 36 42 48 54 60 66 72
7 14 21 28 35 42 49 56 63 70 77 84
8 16 24 32 40 48 56 64 72 80 88 96
9 18 27 36 45 54 63 72 81 90 99 108
10 20 30 40 50 60 70 80 90 100 110 120
11 22 33 44 55 66 77 88 99 110 121 132
12 24 36 48 60 72 84 96 108 120 132 144
Or this: #!/usr/bin/env python
# -*- coding: utf-8 -*-
from numpy import arange
# dimensional parameters for the set
yl = -1.2
yh = 1.2
ys = .05
xl = -2.05
xh = 0.55
xs = 0.03
def mandelbrot(c):
z = 0
for n in range(10):
z = z*z + c
if(abs(z) > 2):
return '.'
return '*'
s = ''
for y in arange(yl,yh,ys):
for x in arange(xl,xh,xs):
s += mandelbrot(complex(x,y))
s += '\n'
print(s)
.......................................................................................
.......................................................................................
..............................................................**.......................
...............................................................*.......................
................................................................*..**..................
................................................................***....................
...............................................................****....................
...........................................................***********.................
............................................................**********.................
...........................................................***********.................
...................................................*.......***********..........*......
.................................................****..********************.....*......
................................................***********************************....
.................................................********************************......
...............................................**********************************......
.............................................************************************......
.............................................*************************************.....
..........................**......*.........*****************************************..
............................***********.....***************************************....
............................********************************************************...
..........................*********************************************************....
.....................*....*********************************************************....
......................************************************************************.....
.....................***********************************************************.......
..*****************************************************************************........
.....................***********************************************************.......
......................************************************************************.....
.....................*....*********************************************************....
..........................*********************************************************....
............................********************************************************...
............................***********.....***************************************....
..........................**......*.........*****************************************..
.............................................*************************************.....
.............................................************************************......
...............................................**********************************......
.................................................********************************......
................................................***********************************....
.................................................****..********************.....*......
...................................................*.......***********..........*......
...........................................................***********.................
............................................................**********.................
...........................................................***********.................
...............................................................****....................
................................................................***....................
................................................................*..**..................
...............................................................*.......................
..............................................................**.......................
.......................................................................................
Also, if each interval of indentation is n spaces, won't the indentation look aligned anyway, as the width of a space character is constant?
> In indentation, never use tabs. Always use spaces. Tabs are open to reinterpretation [...]
I take this as a good property of tabs, given that spaces aren't used for micro-alignment, that indentation is formed only of tabs. This enables different people with different tastes to easily collaborate: I personally like wide indentation, so I keep my tab width as wide as 8 space characters. But, say, if you were to read my code and liked smaller intervals of indentation, you can set your tab width to, say, two spaces, and view the code as you like it, whereas with hard spaces, this is impossible without actually changing the file.