2016-12-05 2 views
-1

Ich versuche, ein Datum zu teilen und es in eine ganze Zahl zu verwandeln. Kann ich es trotzdem tun, wenn ich meinen Code wie folgt einfüge? birthdate = '10/08/78'bmonth, bday, byear = birthdate.split('/')Liste, string in eine ganze Zahl

+2

Um ........ ja? – TigerhawkT3

+0

Wenn Sie 'birthday' durch' birthdate' ersetzen, dann yes (oder umgekehrt) - halten Sie die Variablennamen konsistent. – grammar31

+0

mein Fehler ist es zu sein 'bmonth, bday, byear = birthdate.split ('/')' –

Antwort

1

Ideal Weg, dies zu erreichen, ist über mit datetime Modul als:

>>> from datetime import datetime 
>>> date = datetime.strptime('10/08/78', '%m/%d/%y') 
>>> date.month, date.day, date.year 
(10, 8, 1978) 
#  ^Returns complete year 

Aber wenn Sie es einfach extrahieren aus dem String im Format es erwähnt wird. Sie können es so machen, wie Sie es erwähnt haben.

>>> month, day, year = '10/08/78'.split('/') 
>>> month, day, year 
('10', '08', '78') 
#   ^you get as it is value 
+0

BTW: Sie können nur '% x' als' strptime' Format verwenden, wenn 'locale'' en_US' ist. – AChampion

0

Ihr Code wird keine Ganzzahlen erstellen. Ihre bmonth, bday, byear Variablen werden Zeichenfolgenwerte enthalten.

Um eine ganze Zahl erhalten Sie neben Code verwenden müssen:

birthdate = '10/08/78' 
birthdate_split = list() 
for item in birthdate.split('/'): 
    birthdate_split.append(int(item)) 
bmonth, bday, byear = birthdate_split 
+0

Kennen Sie einen kürzeren Weg als 'bmonth = int (bmonth) bday = int (bday) byear = int (byear) ' –

+0

' bmonth, bday, byear = map (int, geburtsdatum.split ('/')) 'aber siehe @MoinuddinQuadri antwort mit' datetime' - das ist der beste Weg. – AChampion

+0

Ich möchte Datetime verwenden, aber ich muss es auf diese Weise tun –

0
from datetime import datetime 
date=datetime.strptime('10/08/1978', '%m/%d/%Y') 
date.month 
Verwandte Themen