Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 28, 2019 21:14:55

Levious16
Зарегистрирован: 2019-04-28
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Оптимизация / сокращение кода

Привет.
В программировании относительно зеленый, так что прошу совета или подсказки, как можно сделать лучше). Вот задача:
Заданы 3 натуральных числа a, b, с . Выяснить , если среди них равные.
0-(если все три введенных числа различны между собой)
2- (если среди введенных чисел есть два одинаковых)
3- (если все введенные числа равны между собой)

В документе .txt : (приложил)
4 5 1
5 1222 1222
10 10 10
(входные данные)
Программа должна перезаписать документ так, чтобы входные данные заменились на выходные .
0

2
3
(выходные данные)
P.s. При изменении входных данных, выходные данные соответственно должны изменятся.
Вот собственно сам код:

 f = open ('olymp.txt')
a = f.readline().split()
b = f.readline().split()
c = f.readline().split()
print(a)
if a[0] == a[1] == a[2]:
    print('3')
    aa = '3'
elif a[0] == a[1] or a[1] == a[2] or a[0] == a[2]:
    print('2')
    aa = '2'
else :
    print('0')
    aa = '0'
    
print(b)
if b[0] == b[1] == b[2]:
    print('3')
    ab = '3'
elif b[0] == b[1] or b[1] == b[2] or b[0] == b[2]:
    print('2')
    ab = '2'
else :
    print('0')
    ab = '0'
print(c)
if c[0] == c[1] == c[2]:
    print('3')
    ac = '3'
elif c[0] == c[1] or c[1] == c[2] or c[0] == c[2]:
    print('2')
    ac = '2'
else :
    print('0')
    ac = '0'
f.close()  
f = open ('olymp.txt', 'w')
f.write(aa + '\n' + ab + '\n' + ac)
f.close()

Заранее спасибо, Добрый человек

Отредактировано Levious16 (Апрель 28, 2019 21:15:50)

Прикреплённый файлы:
attachment olymp.txt (28 байт)

Офлайн

#2 Апрель 30, 2019 11:56:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Оптимизация / сокращение кода

Levious16
Отличнле решение, ничего улучшать не нужно! А если вам вдруг дадут задачу с файлом на 1000 строк, то волшебной комбинацией клавиш CTRL-C + CTRL-V все решается тривиально.



Офлайн

#3 Апрель 30, 2019 14:19:21

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Оптимизация / сокращение кода

Levious16 ну вам уже намекнули про файл в 1000 строк. вы обратили внимание что для каждой строки вы выполняете одни и те же условия? изучайте функции и циклы это намного облегчит написание кода

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

Отредактировано marvellik (Апрель 30, 2019 14:19:54)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version