@Roskik-VR-programmist

Как решить задачу?

Регистрация на web-сайте
Вам даны данные для регистрации на web-сайте. Выведите их в правильном порядке.

Входные данные

Вводятся три строки. В одной из строк (не обязательно первой) вводится фамилия, состоящая только из латинских букв (строчных или заглавных). В другой строке вводится дата рождения. В оставшейся строке вводится номер банковской карточки.

Фамилия записывается латинскими строчными и заглавными буквами, длина фамилии не меньше трех символов и не больше 50.

Номер банковской карточки — натуральное число, состоящее не менее, чем из 5, и не более, чем из 15 цифр.

Дата рождения записывается в формате ДД.ММ.ГГГГ (день и месяц вводятся ровно двумя цифрами каждый, год — ровно четырьмя).

Выходные данные

Программа должна вывести также три строки. В первой строке — фамилию, во второй — дату рождения, в третьей — номер банковской карточки.
ПримерыВводВводSmith
112324332
12.10.1964
ВыводSmith
12.10.1964
112324332
Я написал код, который работает с именем и датой рождения, а что с банковской картой делать?! Помогите, пожалуйста!
Мой получившийся код:
#а	
#e i o u y
s = input()
t = input()
p = input()
d = 0
d = s.count('a') + s.count('e') + s.count('i') + s.count('o') + s.count('u') + s.count('y')
d = bool(d)
g = 0
g = t.count('a') + t.count('e') + t.count('i') + t.count('o') + t.count('u') + t.count('y')
g = bool(g)
j = 0
j = p.count('a') + p.count('e') + p.count('i') + p.count('o') + p.count('u') + p.count('y')
j = bool(j)
d1 = 0
d1 = s.count('.')
d1 = bool(d1)
g1 = 0
g1 = t.count('.')
g1 = bool(g1)
j1 = 0
j1 = p.count('.')
j1 = bool(j1)
temp = ''
temp1 = ''
if d:
    s = s
    temp = s
elif g:
    temp = t
elif j:
    temp = p

if d1:
    temp1 = s
elif g1:
    t = t
    temp1 = t
elif j1:
    temp1 = p
    
if temp != s:
    s = temp
else:
    s = s
if temp1 != t:
    t = temp1
else:
    t = t


print(s, t, p)
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker
Программист, энтузиаст
В питоне строки - это объекты и у этих объектов есть встроенные функции (называются они "методы").
Так вот, у строки есть такие методы:
> '1234567'.isdigit()
True
> '123.45.67'.isdigit()
False
> '1234567'.isalpha()
False
> 'Smith'.isalpha()
True

Только вам бы следовало проверять еще и длину и вообще все условия, озвученные в задании.
Дальше думайте. Вы должны пройти этот путь самостоятельно.
Попробуйте собрать введённые строки в список и пройти по нему циклом. В цикле вы можете сделать проверки и распределение строк по соответствующим переменным.

Вообще сейчас выскажу довольно "капитанскую" мысль, но такие задания обычно не дают без предварительной информации как их делать. Вы видимо пренебрегли теоретической частью. То, как вы пытаетесь решить эту задачу, даже если вам удастся это, будет неправильным решением. Слышали выражение "ректальная тонзилитомия"? Могу ошибаться, но кажется это когда гланды удаляют через задницу. Вот даже если это бы удалось, делать так неправильно, а вы в своём коде именно этим, фигурально выражаясь, и занимаетесь.
Я понимаю, что вы хотели здесь получить готовое решение с пояснениями, но это не добавит вам знания и не заменит тот теоретический курс, на который вы, видимо, забили.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы