Прошлый пост – От продавца до Big Data Scientist #2
Так, я продолжаю учиться на степике. На этой неделе много халявил, прокрастинировал больше обычного. И потому не успел решить все задачи "второй недели". Эта часть курса изрядно мне так нервишки подъела. Помните я хвастался, что над задачками пол часика всего думать приходится. Так вооот. Я за малым чуть не плакал в этот раз. Хоспади, я раз 10 сказал, что: "я никогда не стану программистом!!! Это всё для слишком умных!!!" В общем, впадал в отчаяние и истерику. И на самом деле-то я алгоритм в голове расписал, расписал на бумаге, но как это реализовать в коде ну вот вообще не мог понять. Т.е. не хватает банальных знаний синтаксиса.
Хотелось бы кинуть камень в огород составителя курса. Порой кажется, что они чутка тролят учеников. Ну мол реши задачу с использованием такого-то метода, но мы о нём не говорили ещё и ты даже понятие не имеешь о его существовании и про него мы расскажем через пару уроков. Это чутка подбешивает :)
Но вообще главное разочарование этой недели, что я думаю оказывается как-то явно не так. Мои решения рабочие, проверку они проходят, но как только сравниваешь код с другими вариантами так аж плакать хочется – там всё красиво и ровненько, а у меня костыли, костыли, костыли. Но я пока не сдаюсь =D вот сегодня, например ночью я проснулся и понял ,что предыдущее решение последней задачи нужно делать совсем иначе, и тогда число костылей уменьшится =D Вот, пришёл на работку и написал работающий код. Посмотрел решения других людей и снова это ощущение, что ты "особенный". Да как они это делают? Там всё так красиво... Эх. Ладно, может это должно прийти со временем?
Итак за эту неделю я прошёл:
До конца цикл While, разобрался в его работе
Метод split() для input()
Операторы продолжения и остановки цикла (теперь половина задач с ними решаю)
Заново перепрошел цикл for, потому что мы его уже касались в яндекс практикуме. На степике гораздо больше уделили внимание его работе. Появилась лютая проблема с использованием индекса от текущего значения. Я реализовывал её через лютые костыли, но видел, что можно это сделать напрямую. Почему-то форма: [i] - где i текущее значение в цикле не работает. Как это сделать я так и не понял.
Показали несколько методов для работы со строками: .upper(), .lower(), .count(), .find(), .repalce().
Разобрали диапазоны в списке и некоторые методы работы со списком: .insert(), .append(), .remove(), del, .index(), sorted(), .sort(), min(), max(), .reverse(), reversed().
Показали генерацию списков, но пока я ещё её не вкурил. Ну и коснулись таблиц (двумерных списков). С таблицами я уже знаком с яндекса, так что проще.
На самом деле прикольно смотреть, что почти 2 трети курса позади и я пока со всем справляюсь. Это чутка повышает боевой дух :) Сдаваться не в моих планах, это точно!
P.S. Хотел поделиться своим кодом курильщика и кодом нормального человека:
str = str(input())
k=0 # счётчик индекса
l=1 # счётчик для увеличения индекса на 1
c = 1
for i in str:
....if l<len(str):
........while str[k] == str[l]:
............k += 1
............l += 1
............c += 1
............if l >= len(str):
................break
....print ('{}{}'.format(str[k], c), end="")
....c=1
....k += 1
....l += 1
....if l > len(str):
........break
Вот так я реализовал работу с индексами.
А вот как сделал нормальный человек:
s=input()+' '
x=1
for i in range (0,len(s)-1):
....if s[i]==s[i+1]:
........x+=1
....else:
........print((s[i]+str(x)),end='')
........x=1
Вот такие пироги :(
Ладно, всем спасибо! До встречи на следующей неделе! :)