ما هي النسخة المطبوعة الحديثة من٪ 6.4f؟

بالنسبة إلى الإصدار الأقدم من Python ، يمكن طباعة السلسلة على النحو التالي:

>>> print('X = %6.4f' % 12312312.423141)
X = 12312312.4231

And in Python < 3.6, putting a float into a formatted string and printing the string. In modern python, one could have done:

>>> print('X = {num}'.format(num=round(12312312.423141, 4)))
X = 12312312.4231

ولكن هذا بشكل صريح تقريبه إلى تعويم أربع نقاط عشرية. هل هناك طريقة لطباعة العوامة بالطريقة القديمة عن طريق ذكر حقل 6 نقاط إلى النقاط الأربع العشرية؟ مثلا https://stackoverflow.com/a/15215445/610569

For Python > 3.6, how about fstring? Would it look like this?

>>> num=12312312.423141
>>> print(f'X = {num:6.4f}')
0
ماذا عن print ('X = {num: 6.4f}'. format (num = 12312312.423141)) ؟
وأضاف المؤلف alvas, مصدر
شكراDeepSpace ، هذا رائع!
وأضاف المؤلف alvas, مصدر
f'X = {num: 6.4f} ' in python 3.6 is the same as ' X = {num: 6.4f} .format (num) '.
وأضاف المؤلف hiro protagonist, مصدر
ستستمتع حقًا pyformat.info
وأضاف المؤلف DeepSpace, مصدر
وأضاف المؤلف Sayse, مصدر
ما هي مشكلتك في هذا الحل: print (f'X = {num: 6.4f} ') ؟
وأضاف المؤلف MegaIng, مصدر

2 إجابة

نعم ، يمكنني استخدام ٪ 6.4f في السلسلة str.format() و f '...' أيضًا.

In Python >= 3.6:

>>> num=12312312.423141
>>> 'X = %6.4f' % num == 'X = {num:6.4f}'.format(num=num) == f'X = {num:6.4f}'
True

>>> print('X = %6.4f' % num)
X = 12312312.4231

>>> print('X = {num:6.4f}'.format(num=num))
X = 12312312.4231

>>> print(f'X = {num:6.4f}')
X = 12312312.4231

والمستندات:

0
وأضاف

لست متأكدا مما تسأل ، ولكن للإجابة على السؤال في العنوان:

The new python3.6 version of 'X = %6.4f' % 12312312.423141 is, as you said f'X = {12312312.423141:6.4f}'

The below python3.6 version is 'X = {num:6.4f}'.format(num=12312312.423141)

0
وأضاف