[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