[Python-de] f-string Formatanweisung

ruppert at hs-worms.de ruppert at hs-worms.de
Mo Jul 13 07:13:52 EDT 2020


Stefan Ram <ram at zedat.fu-berlin.de> wrote:
> Stefan Behnel <python-de at behnel.de> writes:
>>möglich, f-strings zu generieren. (Ok, du könntest eval() verwenden, aber
>>das ist recht langsam und auch fehleranfällig ??? tu's lieber nicht.)
> 
> ...
>
> import sys
> 
> argv = sys.argv
> argv =[ "my/program.py" ]
> argv =[ "my/program.py", "3" ]
> 
> def check_usage():
>     if len( argv )< 2 :
>         a = argv[ 0 ].split( '/' )
>         a = a[ -1 ]
>         print( 'usage:', a, 'digits of GrayCode' )
>         print( '   eg.', a, '12' )
>         sys.exit( 1 )
> 
> check_usage()
> 
> def gray_code_from_binary_code( bin ):
>     return bin^( bin >> 1 )
> 
> def format_digits( digits ):
>     return digits if digits >= 4 else 4
> 
> specified_digits = int( argv[ 1 ])
> decimal_digits = format_digits( int( specified_digits / 3.321928 + 1 ))
> gray_digits = format_digits( specified_digits )
> binary_digits = gray_digits
> table_header = f'{"#val":{decimal_digits}s}  {"gray":{gray_digits}s}  {"bin":{binary_digits}s}'
> for binary_code in range( 2**specified_digits ):
>     if binary_code % 24 == 0: print( table_header )
>     gray_code = gray_code_from_binary_code( binary_code )
>     print( f"{binary_code:0{decimal_digits}d}, {gray_code:0{gray_digits}b}, {binary_code:0{binary_digits}b}" )
> 
> 

Vielen Dank für das Posting, ich hab' viel daraus gelernt.
Und in mein grayCode.py habe ich die f'-strings bereits
übernommen und es funktioniert. :-)

nochmals vielen Dank
Martin Ruppert


Mehr Informationen über die Mailingliste python-de