News for hackers. Stuff that matters.
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)
        
        .......................................................................................
        .......................................................................................
        ..............................................................**.......................
        ...............................................................*.......................
        ................................................................*..**..................
        ................................................................***....................
        ...............................................................****....................
        ...........................................................***********.................
        ............................................................**********.................
        ...........................................................***********.................
        ...................................................*.......***********..........*......
        .................................................****..********************.....*......
        ................................................***********************************....
        .................................................********************************......
        ...............................................**********************************......
        .............................................************************************......
        .............................................*************************************.....
        ..........................**......*.........*****************************************..
        ............................***********.....***************************************....
        ............................********************************************************...
        ..........................*********************************************************....
        .....................*....*********************************************************....
        ......................************************************************************.....
        .....................***********************************************************.......
        ..*****************************************************************************........
        .....................***********************************************************.......
        ......................************************************************************.....
        .....................*....*********************************************************....
        ..........................*********************************************************....
        ............................********************************************************...
        ............................***********.....***************************************....
        ..........................**......*.........*****************************************..
        .............................................*************************************.....
        .............................................************************************......
        ...............................................**********************************......
        .................................................********************************......
        ................................................***********************************....
        .................................................****..********************.....*......
        ...................................................*.......***********..........*......
        ...........................................................***********.................
        ............................................................**********.................
        ...........................................................***********.................
        ...............................................................****....................
        ................................................................***....................
        ................................................................*..**..................
        ...............................................................*.......................
        ..............................................................**.......................
        .......................................................................................

There are no comments on this comment yet.