TypeError: аргумент 1 strptime() должен быть str, а не datetime.datetimePython

Программы на Python
Ответить
Anonymous
 TypeError: аргумент 1 strptime() должен быть str, а не datetime.datetime

Сообщение Anonymous »

У меня есть следующий код класса:

Код: Выделить всё

import datetime

class Persona:

def __init__(self, nom, dni, fecha_nac):
self.nom=nom
self.dni=dni
self.fecha_nac=fecha_nac

def es_mayor_edad(self):
today=datetime.date.today()
cumple = datetime.datetime.strptime(self.fecha_nac, "%Y-%m-%d")
edad = today.year - cumple.year

if (today.month < cumple.month) or (today.month == cumple.month and today.day < cumple.day):
edad = edad - 1

if edad>=18:
return True

else:
return False

def __str__(self):
string = f"Nombre: {self.nom}\tDNI: {self.dni}\tFecha de nacimiento: {str(self.fecha_nac)}"
return string
И затем следующий код в основной программе:

Код: Выделить всё

from Ejercicio_4 import Persona
import datetime

nom=input("Introduce el nombre de la persona: ")
dni=input("Introduce el DNI de dicha persona: ")
fecha_nac_str=input("Introduce fecha nacimiento:[dd/mm/aaaa]: ")
fecha_nac= datetime.datetime.strptime(fecha_nac_str, "%d/%m/%Y")

persona=Persona(nom,dni,fecha_nac)
persona.es_mayor_edad()

print(persona)

if persona.es_mayor_edad()==True:
print(f"{persona.nom} es mayor de edad")

else:
print(f"{persona.nom} NO es mayor de edad")
Я пытаюсь получить дату из fecha_nac_str (которая находится в строковой форме) для передачи в переменную моего класса persona, но при запуске кода я получаю следующую ошибку:

Код: Выделить всё

File "C:\...\Ejercicio_4_main.py", line 10, in 
persona.es_mayor_edad()
File "C:...\Ejercicio_4.py", line 12, in es_mayor_edad
cumple = datetime.datetime.strptime(self.fecha_nac, "%Y-%m-%d")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: strptime() argument 1 must be str, not datetime.datetime
Как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/791 ... e-datetime
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»