αριθμούς μορφή για έγχορδα σε Python

ψήφοι
91

Πρέπει να μάθετε πώς να μορφοποιήσετε αριθμούς ως χορδές. κωδικός μου είναι εδώ:

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

Οι ώρες και τα λεπτά είναι ακέραιοι, και τα δευτερόλεπτα είναι ένα πλωτήρα. η συνάρτηση str () θα μετατρέψει όλες από αυτούς τους αριθμούς στα δέκατα (0,1) θέση. Έτσι, αντί των χορδών μου έξοδο «5: 30: 59.07 μ.μ.», θα εμφανιστεί κάτι σαν «5,0: 30,0: 59,1 μ.μ.».

Η κατώτατη γραμμή, ποια βιβλιοθήκη / λειτουργία πρέπει να κάνω για να το κάνετε αυτό για μένα;

Δημοσιεύθηκε 22/08/2008 στις 14:10
πηγή χρήστη
Σε άλλες γλώσσες...                            


8 απαντήσεις

ψήφοι
123

Η μορφοποίηση σε Python γίνεται μέσω του μορφοποίησης συμβολοσειρά ( %χειριστή) :

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

/ Επεξεργασία: Υπάρχει επίσης strftime .

Απαντήθηκε 22/08/2008 στις 14:12
πηγή χρήστη

ψήφοι
4

Μπορείτε να χρησιμοποιήσετε C μορφοποίησης συμβολοσειράς στυλ:

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

Δείτε εδώ, ιδίως: https://web.archive.org/web/20120415173443/http://diveintopython3.ep.io/strings.html

Απαντήθηκε 22/08/2008 στις 14:13
πηγή χρήστη

ψήφοι
1

str () σε python για έναν ακέραιο θα δεν εκτυπώνει δεκαδικά ψηφία.

Εάν έχετε ένα πλωτήρα που θέλετε να αγνοήσετε το δεκαδικό μέρος, τότε μπορείτε να χρησιμοποιήσετε οδό (int (floatValue)).

Ίσως ο κώδικας που ακολουθεί θα δείξει:

>>> str(5)
'5'
>>> int(8.7)
8
Απαντήθηκε 24/08/2008 στις 09:32
πηγή χρήστη

ψήφοι
89

Ξεκινώντας από το Python 2.6, υπάρχει μια εναλλακτική λύση: η str.format()μέθοδος. Εδώ είναι μερικά παραδείγματα χρησιμοποιώντας την υπάρχουσα χειριστή μορφή συμβολοσειράς ( %):

>>> "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' 

Εδώ είναι τα ισοδύναμα αποσπάσματα αλλά με τη χρήση 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+, όλα Python 3 εκδόσεις (μέχρι τώρα) να καταλάβουν πώς να κάνουμε και τα δύο. Θα ξεδιάντροπα άρπαξαν αυτά τα πράγματα κατ 'ευθείαν από hardcore βιβλίο Python εισαγωγή μου και οι διαφάνειες για τις Intro + Ενδιάμεση μαθήματα Python που προσφέρει από καιρό σε καιρό.:-)

Απαντήθηκε 31/03/2010 στις 04:13
πηγή χρήστη

ψήφοι
1

Αν έχετε μια τιμή που περιλαμβάνει ένα δεκαδικό, αλλά η δεκαδική τιμή είναι αμελητέα (δηλαδή: 100.0) και προσπαθήστε να int ότι, θα πάρετε ένα λάθος. Φαίνεται ανόητο, αλλά καλώντας float καθορίζει για πρώτη φορά αυτό.

str (int (float ([μεταβλητή])))

Απαντήθηκε 26/07/2010 στις 14:46
πηγή χρήστη

ψήφοι
2

Μπορείτε να χρησιμοποιήσετε το παρακάτω, για να επιτευχθούν τα επιθυμητά λειτουργικότητα

"%d:%d:d" % (hours, minutes, seconds)
Απαντήθηκε 08/10/2014 στις 05:06
πηγή χρήστη

ψήφοι
6

Στην Python 2.6+, είναι δυνατή η χρήση της format()λειτουργίας, έτσι ώστε σε περίπτωση που σας μπορείτε να χρησιμοποιήσετε:

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

Υπάρχουν πολλοί τρόποι για τη χρήση αυτής της λειτουργίας, έτσι ώστε για περισσότερες πληροφορίες μπορείτε να ελέγξετε την τεκμηρίωση .

Απαντήθηκε 27/12/2016 στις 19:51
πηγή χρήστη

ψήφοι
1

Μπορείτε να χρησιμοποιήσετε το str.format () για να Python αναγνωρίσει αντικείμενα για να χορδές.

Απαντήθηκε 23/07/2019 στις 15:46
πηγή χρήστη

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