Path: csiph.com!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail From: =?UTF-8?Q?Mike_M=c3=bcller?= Newsgroups: de.comp.lang.python Subject: Re: [Python-de] f-string Formatanweisung Date: Mon, 22 Jun 2020 14:27:54 +0200 Organization: Python Academy GmbH & Co. KG Lines: 79 Message-ID: References: <0ce577a1-9f85-f36b-b20b-bd3dd739f511@python-academy.de> Reply-To: mmueller@python-academy.de Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de iy8k+f2kITz+eFhV9SninQpIGAVk7p+K5k+3zAZXLVMA== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org Authentication-Results: mail.python.org; dkim=none reason="no signature"; dkim-adsp=none (unprotected policy); dkim-atps=neutral Autocrypt: addr=mmueller@python-academy.de; prefer-encrypt=mutual; keydata= xsBNBE9NaSQBCADIirFuAq9t2xTZ9eU/quGgNsuxnp+DfD3W4s3lcQt2APSYtyUQMrB5DJ9q h9Nl02SFpUq7m0Kf3nb0QvZWbh5UeEx+sliJrAPYZPThupy2W1xzOMD3aJBle/qCaHZK4wmq tmaD2/TFAqtABOe1yibZ6auqU7V4T1YO4tDc8BCuW8GVDGWpUddAieyivquJ5WcYQRKBZuIL BygUA1CHqKOJJlOIh14yvJB444AemYdtG5345NY+pwNddhhr/w1NebVhSMkrEB3WkMW2VfFE X0wEpzufuJOrs1RKl13FXiVBdqs+wnZKDsjKiu6cZax3bI7YdukHwhB4nD24hMV4ZcO5ABEB AAHNKU1pa2UgTcO8bGxlciA8bW11ZWxsZXJAcHl0aG9uLWFjYWRlbXkuZGU+wsCBBBMBAgAr AhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUJFrrTAgUCWwF/EAIZAQAKCRCnneP4s3tA OH9xB/4+YKx9EvRYFWrPGGA2tjsCrMfW6gwjcWBmzZHY8HPCDrjDfVDM9KsrDCgfdgpKkGaS WlDMQUES89InAGAUDImFvGjXHspFfXp66FEV6LezXaPZCQqNDC6gMbzqcNewN1jXXZDpvwmR sufhqcDRYnuYrbuljLwn0PS8qGPSSesuC2YceOc1B0G52J9ay/AUvYpIm9e7ATXfEq0wzI34 dm9nh6kuCl24pn2ThzMLKyhHrU8rxEXEMzpxinhDC3s+yzfJr3bUJ7AIH3UoPKzfDr7cxKrP nxdFV6r/sTl4NBuseFW6smkcBdBUSJ6TVw5+MY5myAd0/DKg7cHsI7A8sKwAzsBNBE9NaSQB CADj2oRYH78dlVDHTEU8/16vvCjLdelIuA8t7518MdWYRmbYndGmPktn2EbJr4Eo9zU+MG4l A20gHX7rG3USIpgw5n9F3LXZZxApc7LvJfFzfZPpqv2GQUAy2kvjumK2uC5Jh2Jyug0/BN3i ePDbHBGi3TaFHnhqNorUy4Rg9D3rd7OpeuslNpmLpJPxTX3rRh+ePR8wOg1EczR3r4klYEcK udGvZQHOKt89KSDyR4XbO+oKkRSwFS4DV/WPsKNOW00Wtz2no3/oLId+g0mzgdeRLtaGZlTS VcRj8D/g2xrfPLplG2jfHqs+eoys53rLNoyxnpMS7IOupl0UqgRt85PHABEBAAHCwGUEGAEC AA8CGwwFAljf06cFCRa60wMACgkQp53j+LN7QDicSggAoaO6fKG21fYnlEvRVlOKMVb1ETOE /HgwIiWCCyXJAJNkqZQOBduwLzZkWYTiAEqtiBDdhOnzlWp1o3YllQtZEj35tMHvQQH2DUiL qSJJQHYJmLbP4GrWTefv26IpPzutmokHInq6sYdD9EmgsyMJEO+jpCORYO1dNDU5CU4LMlHM AwlVKb7Ix92jMi6La+leiBWFsr/R1hv0Gpj75lDCtY7+fWUalB5ilxoWVK11/uhGIevEgG5u OAIQNGkfEXU1kfCRL5XzpyECXcoS0fMnLuxnKGQM8pegcyc8RiK8M0vJGDi0mFevNMnbVDxt m34AzV49pDZ/PH7t1NPUrJbQgw== User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 In-Reply-To: Content-Language: de-DE X-Authenticated-Sender: mmueller@python-academy.de X-Virus-Scanned: Clear (ClamAV 0.102.3/25850/Sun Jun 21 15:07:54 2020) X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <0ce577a1-9f85-f36b-b20b-bd3dd739f511@python-academy.de> X-Mailman-Original-References: Xref: csiph.com de.comp.lang.python:5643 Das `f` gehört vor den String: a = 5 print(f'{a}') nicht in den String: print(f"'{a}'") Viele Grüße Mike Am 22.06.20 um 12:36 schrieb ruppert@hs-worms.de: > Hallo, > > das unten befindliche Programm funktioniert mit f-String-Formatierung > nicht so, wie ich das erwarte. Wenn ich das F-String-Format, das ich > haben möchte, zuerst als Striing formatiere (s), sieht es richtig aus. > > Aber bei print(s) wird nicht das in s steckende f-string-Format > interpretiert, sondern einfach nur s als String ausgegeben. > > Das Programm soll übrigens Binärzahlen in Gray umwandeln und zurück. > Mit der .format-Methode funktioniert das auch einwandfrei. > > Aufruf des Programms in der kürzesten Weise: > > grayCode.py 2 1 > > 2 ist der kürzeste Graycode und 1 schaltet in den debug-Modus > > Vielen Dank > > Martin Ruppert > > #!/usr/bin/python3 > import sys > if(len(sys.argv)<2): > a=sys.argv[0].split('/') > a=a[len(a)-1] > print('usage:',a,'digits of GrayCode') > print(' eg.',a,'12') > exit(1) > > def bintogray(bin): > return(bin^(bin>>1)) > > def graytobin(n,gray): > val=0 > for i in range(n,-1,-1): > val = val|((((1<<(i+1))&val)>>1)^((1< return(val) > > dbg=0 > if(len(sys.argv)>2):dbg=int(sys.argv[2]) > fl=int(sys.argv[1]) > fw=fl > if(fw<4):fw=4 > dl=int(fl/3.321928+1) #dezimale Stellen > if(dl<4):dl=4 > f="%%-%ds %%-%ds %%-%ds"%(dl,fw,fw) > if(dbg>0):print("f=",f) > h=f%("#val","gray","bin") > f="{{:0{:1d}d}} {{:0{:1d}b}} {{:0{:1d}b}}".format(dl,fw,fw) > #s wird in der for-Schleife unten nicht interpretiert, > #sondern als string ausgegeben: > s='f"'+str(f"{{i:0{dl}d}} {{gray:0{fw}b}} {{bin:0{fw}b}}")+'"' > if(dbg>0):print("f=",f) > if(dbg>0):print("s=",s) > for i in range(2**fl): > if(i%24==0):print(h) > gray=bintogray(i) > bin=graytobin(fl,gray) > print(f.format(i,gray,bin)) > s='f"'+(f"{{i:0{dl}d}} {{gray:0{fw}b}} {{bin:0{fw}b}}")+'"' > print(s) >