On Tue, Mar 20, 2018 at 11:32 AM,  <jf...@ms4.hinet.net> wrote:
> Chris Angelico於 2018年3月20日星期二 UTC+8上午8時06分05秒寫道:
>> On Tue, Mar 20, 2018 at 10:46 AM,  <jf...@ms4.hinet.net> wrote:
>> > D:\Temp>py
>> > Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 19:28:18) [MSC v.1600 32 
>> > bit (Intel)] on win32
>> > Type "help", "copyright", "credits" or "license" for more information.
>> >>>> '{:02X}'.format(256)
>> > '100'
>> >>>>
>> > What I expected is '00'. Am I wrong?
>> >
>>
>> Python avoids losing data. If you really want to enforce that this is
>> two characters long, you can either restrict the data first (maybe
>> with "% 256"), or trim the resulting string:
>>
>> >>> '{:02X}'.format(256)[-2:]
>> '00'
>>
>> ChrisA
>
> I had overlooked the document there it says "width ... defining the minimum 
> field width...'. I was wrong, it's not a demand. Thank you, ChrisA.

Yep. It's a policy that goes back a long way. These kinds of width
markers are often used for columnar data; but if something doesn't
fit, it's far better to push the column out a bit (ugly) than to chop
off a digit (loss of data, especially bad if it trims from the front).
So if you actually DO want that, you need to specifically request it.

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to