Python dizeleri Biçim numaraları

oy
91

Ben dizeleri olarak sayıları biçimlendirmek için öğrenmek gerekir. Kodum burada:

return str(hours)+:+str(minutes)+:+str(seconds)+ +ampm

Saatler ve dakikalar tam sayılardır ve saniye bir şamandıra olduğunu. str () fonksiyonu onda (0.1) yere bu sayıların tüm dönüştürecektir. Bunun yerine çıkışının benim dizesi 5: 30: 59.07 pm : 30.0: 59.1 pm 5.0, bu gibi bir şey bu görüntülenir.

Alt satırda, neyi kütüphane / fonksiyon benim için bunu yapmak gerekiyor?

Oluştur 22/08/2008 saat 14:10
kaynak kullanıcı
Diğer dillerde...                            


8 cevaplar

oy
123

Python biçimlendirme yoluyla yapılır dize biçimlendirme ( %) operatörü :

"%02d:%02d:%02d" % (hours, minutes, seconds)

/ Düzenleme: da var strftime .

Cevap 22/08/2008 saat 14:12
kaynak kullanıcı

oy
4

Sen C tarzı dize biçimlendirme kullanabilirsiniz:

"%d:%d:d" % (hours, minutes, seconds)

Özellikle, Buraya bakın: https://web.archive.org/web/20120415173443/http://diveintopython3.ep.io/strings.html

Cevap 22/08/2008 saat 14:13
kaynak kullanıcı

oy
1

str () tamsayı üzerinde Python olacak değil herhangi ondalık basamak yazdırın.

Eğer ondalık kısmı görmezden istediğiniz bir float varsa, o zaman str (int (floatValue)) kullanabilirsiniz.

Belki Aşağıdaki kod gösterecektir:

>>> str(5)
'5'
>>> int(8.7)
8
Cevap 24/08/2008 saat 09:32
kaynak kullanıcı

oy
89

: Python 2.6 başlayarak, bir alternatif vardır str.format()yöntemi. İşte mevcut dize biçimi operatörü (kullanarak bazı örneklerdir %):

>>> "Name: %s, age: %d" % ('John', 35) 
'Name: John, age: 35' 
>>> i = 45 
>>> 'dec: %d/oct: %#o/hex: %#X' % (i, i, i) 
'dec: 45/oct: 055/hex: 0X2D' 
>>> "MM/DD/YY = %02d/%02d/%02d" % (12, 7, 41) 
'MM/DD/YY = 12/07/41' 
>>> 'Total with tax: $%.2f' % (13.00 * 1.0825) 
'Total with tax: $14.07' 
>>> d = {'web': 'user', 'page': 42} 
>>> 'http://xxx.yyy.zzz/%(web)s/%(page)d.html' % d 
'http://xxx.yyy.zzz/user/42.html' 

İşte eşdeğer parçacıkları ancak kullanarak şunlardır str.format():

>>> "Name: {0}, age: {1}".format('John', 35) 
'Name: John, age: 35' 
>>> i = 45 
>>> 'dec: {0}/oct: {0:#o}/hex: {0:#X}'.format(i) 
'dec: 45/oct: 0o55/hex: 0X2D' 
>>> "MM/DD/YY = {0:02d}/{1:02d}/{2:02d}".format(12, 7, 41) 
'MM/DD/YY = 12/07/41' 
>>> 'Total with tax: ${0:.2f}'.format(13.00 * 1.0825) 
'Total with tax: $14.07' 
>>> d = {'web': 'user', 'page': 42} 
>>> 'http://xxx.yyy.zzz/{web}/{page}.html'.format(**d) 
'http://xxx.yyy.zzz/user/42.html'

Python 2.6+ gibi, bütün Python 3 bültenleri (şimdiye kadar) ikisinin de nasıl anlıyoruz. Ben utanmadan düz Bu şeyleri yırtık benim sert Python intro kitabı ve giriş + Orta için slaytlar Python kursları sunuyorum zaman-to-zaman.:-)

Cevap 31/03/2010 saat 04:13
kaynak kullanıcı

oy
1

Bir ondalık içeren bir değere sahip, ancak ondalık değer ihmal edilebilir ise (yani: 100.0) ve bu int deneyin, bir hata alırsınız. Saçma görünüyor, ancak arama şamandıra öncelikle bu sabitler.

str (int (şamandıra ([değişken])))

Cevap 26/07/2010 saat 14:46
kaynak kullanıcı

oy
2

Sen istenen işlevselliği elde etmek aşağıdakileri kullanabilirsiniz

"%d:%d:d" % (hours, minutes, seconds)
Cevap 08/10/2014 saat 05:06
kaynak kullanıcı

oy
6

Python 2.6+, kullanmak mümkündür format()sizin durumunuzda kullanabilirsiniz, böylece fonksiyonu:

return '{:02d}:{:02d}:{:.2f} {}'.format(hours, minutes, seconds, ampm)

Orada bu işlevi kullanmanın çeşitli yolları vardır, bu yüzden daha fazla bilgi için kontrol edebilirsiniz belgeleri .

Cevap 27/12/2016 saat 19:51
kaynak kullanıcı

oy
1

Sen Python dizeleri herhangi bir cisim tanımasını sağlama () str.format kullanabilirsiniz.

Cevap 23/07/2019 saat 15:46
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more