Привет, Двач! В этом треде я буду учиться программировать на языке Python, версии 3.4.2. Учусь по учебнику Марка Лутца "Изучаем Python", 4-е издание. Будет круто! По крайней мере мне.
Словари в языке Python – это нечто совсем иное (по выражению Монти Пайто-на); они вообще не являются последовательностями, это то, что известно какотображения. Отображения – это коллекции объектов, но доступ к ним осу-ществляется не по определенным смещениям от начала коллекции, а по клю-чам. В действительности отображения вообще не подразумевают какого-либоупорядочения элементов по их позиции, они просто отображают ключи на свя-занные с ними значения. Словари – единственный тип отображения в наборебазовых объектов Python – также относятся к классу изменяемых объектов
Операции над отображениямиКогда словарь определяется как литерал, программный код определения заключается в фигурные скобки и состоит из последовательности пар «ключ:значение». Словари удобно использовать всегда, когда возникает необходимость связать значения с ключами, например чтобы описать свойства чего-либо.
Попробую сделать свой словарь, надо попрактиковаться.
>>> D = {'dvach' : 'bitard' , 'tyan' : 'nenuzni'}>>> D['dvach']'bitard'>>> D['tyan']'nenuzni'>>> Как видите, я смог сделать словарь и обратится к нему. Продолжаю.
В предыдущем примере словарь использовался для описания гипотетическойперсоны с помощью трех ключей. Теперь предположим, что информация имеет более сложную структуру. Возможно, придется записать имя и фамилию,а также несколько названий должностей, занимаемых одновременно. Этоприводит к необходимости использования вложенных объектов Python. Словарь в следующем примере определен в виде литерала и имеет более сложнуюструктуру:>>> rec = {‘name’: {‘first’: ‘Bob’, ‘last’: ‘Smith’}, ‘job’: [‘dev’, ‘mgr’], ‘age’: 40.5}Как я понял, это словарь в котором находится ключ к другому словарю. Хм, интересно.
Попробую сделать словарь про обычного битарда.
Удачи, оп.
>>153689686 (OP)bump
you = {'name' : {'first' : 'Slava' , 'last' : 'Sichev'} , 'job' : ['RNN'] , 'age' : '30'}Сделал такой кусок кода, а он не работает, ищу ошибку.
>>153690744А я знаю, где ошибка.
Ппо
Не могу найти ошибку, слишком сложно. Пытаюсь написать его заново, лол.спасибо за бампы!
Получилось! Я ставил пробелы перед двоеточиями, теперь код работает!you = {'name': {'first' : 'Slava' , 'last': 'Sichev'} , 'job': ['RNN'] , 'age': '30'}>>> you['name']{'first': 'Slava', 'last': 'Sichev'}>>> you['job']['RNN']>>> you['age']'30'
Сортировка по ключам: циклы forБудучи отображениями, как мы уже видели, словари поддерживают доступк элементам только по ключам. Однако они кроме того поддерживают рядспецифических для данного типа операций, реализованных в виде методов,которые удобно использовать в разных случаях.Как уже упоминалось ранее, из-за того, что словари не являются последовательностями, они не предусматривают какой-либо надежный способ упорядочения позиций элементов. Это означает, что если мы создадим словарь и по-пытаемся вывести его содержимое, порядок следования ключей при выводеможет не совпадать с порядком, в каком они определялись:
Как же быть, если нам действительно потребуется упорядочить элементы словаря? В наиболее общем случае мы могли бы получить список всех ключейсловаря методом keys, отсортировать их с помощью метода списка sort и затемвыполнить обход значений в цикле for.
Учить теорию и потом практиковаться - хорошо. Блять о блять не на 2че!
>>153690274Да это же json и js объедки
Я читаю, но не могу понять зачем нужен цикл for.
>>153691397Мде, так и думал что джава параши придут в тред
>>153691495json реализован во многих языках, че ты мелешь
>>153691308Почему нет? Я видел как люди смотрят сериалы на дваче, играют игры на дваче, чем я хуже?.>>153691397Мой скилл в программировании не настолько высок как ты думаешь.
>>153691468Так проще
>>> Ks = list(D.keys()) # Неупорядоченный список ключей>>> Ks # Список – в версии 2.6, а в 3.0 – “представление”,[‘a’, ‘c’, ‘b’] # поэтому необходимо использовать функцию list()>>> Ks.sort() # Сортировка списка ключей>>> Ks[‘a’, ‘b’, ‘c’]>>> for key in Ks: # Обход отсортированного списка ключей print(key, ‘=>’, D[key]) # Здесь дважды нажмите клавишу EnterВ учебнике дают этот код как пример, но я не понимаю зачем нужен цикл for.
>>153691547Иди пили свой проект, нахуй эти книжечки.
>>153691654Проект MegaYobaHelloWorld?
>>153691551Я думаю что различные штуки в программировании для чего то служат. print() чтобы писать, list() чтобы показывать список чего-либо, а далее по учебнику ничего не сказано про этот цикл.
Пошел на хуй, вниманиеблядок. Учить он вздумал, сидя и высирая на двач отрывки из учебника.
Этот пример может служить поводом для знакомства с циклом for языкаPython. Цикл for представляет собой самый простой и эффективный способпроизвести обход всех элементов в последовательности и выполнить блок про-граммного кода для каждого из элементов. Переменная цикла, определяемаяпользователем (в данном случае key), служит для ссылки на текущий элемент.В этом примере выводятся ключи и значения несортированного словаря в отсо-ртированном по ключам виде.Цикл for и родственный ему цикл while – это основные способы реализации по-вторяющихся действий в сценариях. Однако в действительности цикл for (также, как и родственные ему генераторы списков, с которыми мы познакомилисьвыше), является операцией над последовательностью. Он способен работатьс любыми объектами, являющимися последовательностями, а также с неко-торыми объектами, которые последовательностями не являются. Оп довен
>>153691707Ну хз, бложик там какой нибудь или форум.
>>153691710А для чего нужен while?
Поставь себе ipython удобнее будет чем со стандартной консолью.pip install ipython
>>153689686 (OP)>Python Не нужно, есть же c++
>>153691882Тогда уж лучше просто си + пифон
>>153691789Хуй знает, я еще на пути к нему. >>153691818Что за приблуда? А то пеку мне сломаете.
>>153691818Лучшее сразу айдеешку типо PyCharm
>>153691022разве пробелы не игнорируются?
Трендец оп ты двощ , начни со scratch а
>>153691982>Что за приблуда? А то пеку мне сломаете.В гугл сходи.
Аноны, я понял, продолжаю читать йобу.
>>153692061Позже тогда.
>>153692000Это же питон. Там может быть все что угодно.
Нужна помощь.while x = 5:выскакивает ошибка о инвалидном синтаксисеа еслиwhile x > 0:то все ок.Я не могу использовать равно в цикле?
>>153692483==
>>153692483Заместо = нужно ==
while x > 0: print('spam!' * x) x -= 1Также вызывает интерес этот код, что значит х -= 1 ?
>>153692483Я так понимаю, просто = это "присвоить переменной значение 5".
>>153692483 = эт присвоениеА == сравнение на равенство
>>153692588Да
>>153692566>>153692519Спасибо. А почему?
Оп тебе надо с си начинать а не с питона>>153692575x = x -1
Спасибо! Я так и знал что вы все тут прогромисты 30000 рублей в секунду.
>>153692613Покочану
>>153692618Да нах ему этот ассемблер? Пусть лучше пифон учит
>>153692575С такой тормознутостью я бы сначало с блоков начал
>>153692689Он простых вещей не знает, куда ему абстракции
>>153692618Как понять х = х-1? Минус же перед равно стоял.
>>153692613Ты учебник свой читал? Там должны были рассказать все это
>>153692712>>153692723Я только начал учить программирование, в инете говорят что python самый легкий язык.
>>153692804js легче, но не новый стандарт
>>153692724Оп хватит отвлекать успешных людей,пройди онлайн-курс что то типо "введение в программирование" где угодно,потом повтори математику средний школы и иди сюда https://stepik.org
>>153692723Вот давайте все вместе придём к общему выводу: Для чего ОПу пифон? Чтобы быть макакой. Зачем ему что-то знать, если он намеревается быть макакой?Незачем. Пусть лучше тогда учит пифон.
>>153692850Ага, легче. С его то слабой типизацией и ебучим неявным приведением типов.
>>153693017Ну так наоборот же, не нужно думать о типе меньше думаешь о реализации больше об абстракции
bump
>>153692724Никак не понимай, 2+2=5
оп ушел играть в доту
>>153693314Ты не угадал, я пытаюсь понять что значит х -= 1
>>153693129>не нужно думатьЛол, до первого сложного бага.
>>153693374Блять ну укороченная записьx+=y = x=x+y
>>153693374Ну это короче опечатка.Правильно писать такwhile x-->0то есть икс стремиться к нулю:
>>153693453Спасибо, просто с математикой у меня проблемы.
>>153689686 (OP)Сегодня допилил свой говночятик на пхп+жаваскрипт, несколько дней ебался с ajax и прочей передачей данных, но вроде кое-как разобрался. Завтра буду допиливать деталимимо-вкатывальщик-в-макакинг
Все, заканчиваю словари, перехожу к кортежам.
>>153693529Лоалсервер поднял?
>>153693529>2к17>пхпА ты хорош.
>>153693529Оп подумает что ебался с футбольным клубом
>>153693453хухухух ==== какое то
>>153693599Локалочка в виде апача
>>153693627Так и было.
>>153693645Угу, пили сразу веб приложение
>>153691783Нахуй никому не нужен. Как и тчн
def op()...return print ('Хуй')
>>153693645Ебаные индейцы, все за винчестерами
Я думаю стоит запилить интересную игруху и рубить бабки с донатов
>>153693767>интересную игруху>донат/0
>>153693801? пиксельспейс например
Привет, Двач! В этом треде я буду учиться капчевать Макабе версии Абу_3.4.2. Учусь по учебнику Анонимуса "Сделай трифорс", 4-е издание. Будет круто! По крайней мере мне.
>>153693754Выебут и высушат же, анон
Реквестирую несложную задачу, так как я уже заебался читать, все плывет уже.да, анон, я не очень умен.
153693850
>>153693893физз базз
>>153693841Это не игра и не интересно.
>>153693850
>>153693893Напиши функцию, которая возвращает квадратный корень принимаемого числа с защитой от дурака.
>>153693893Программа для игры в шахматы. Делается за день.
♥♥♥
>>153692000>>153692264Блядский язык с невидимыми символами в качестве группировки блоков кода.
>>153693979def sqrt()return print "Уходи baka"
>>153693956>не интересноНу не знаю, под сотню тредов с драмой и срачами в бамплимит ушло, пока фрицы анальную регу не ввели, потом всё скатилось.
Написать функцию is_year_leap, принимающую 1 аргумент — год, и возвращающую True, если год високосный, и False иначе.Щас хуйню напишу.
Ара-ара! Что тут у нас? Питоний да?Вкачусь пожалуй
>>153694116Присаживайся, я тут думаю над задачкой.Прошу не спойлерить, я тут все таки пытаюсь обучатся.
Я загуглил что такое функция в питоне, выглядит не сложно .def add(x, y): return x + y
Оп напиши хеш функцию лол
>>153694314Класс ещё проще.
>>153694339Вот только приватных полей и методов не завезли.
processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
По логике вещей, функция должна разделить число за 366, и если ответ равен одному, то год високосный.Щас попытаюсь написать это.
>>153693893калькулятор напиши бля
>>153694462>функция должна разделить число за 366Это ты откуда взял?
> принимающую 1 аргумент — год, и возвращающую True, если год високосный, и False иначе.
def is_year_leap (year):.if year % 4 != 0 or (year % 100 == 0 and year % 400 !=0):..print ("Обычный").else:..print("Високосный")
>>153694578А тернарным оператором слабо? ЧТобы вообще в кашу
>>153694505А, точно. Я ввожу год. Значит, надо как то узнать, високосный он или нет.Как только?
>>153694578Ну ты и мудак конечно, не ожидал от тебя такого.
Ладно, продолжу читать про кортежи.
>>153691397Ты не компетентный идиот, словари или по-другому ассоциативные массивы есть в огромном количестве ЯП и перед тобой лишь одна из реализаций (которые, впрочем, очень похожи между собой). Это json сделан по их образу и подобию, а не наоборот. А причем ты js приплёл я вообще не понимаю, наверное просто знакомое слово написал.
>>153694612Чет говно какое-то. Немогли как в человеческих языках condition ? true : false;
>>153694743Ты че, в js объекты хранятся в формате json алло всезнайка
JAVA хуесосы пришли выебываться на Python богов/thread
>>153689686 (OP)Нахуй ты версию указал?Чтобы мы дружно поняли, что ты не умеешь обновляться?
>>1536948223.6 Python сосет хуй и никому не нужен
У меня начала ужасно болеть голова, я наверное отчаливаю. За этот тред я узнал много новой херни, спасибо анону.особенно за х -= 1
>>153694867Я даже ахуел на пару секунд от того, какую хуйню ты только что сморозил.
>>153694867Раздался вскукарек со стороны параши.
оп слился
>>153694807Я этого не знал, т.к. никогда не писал на js. Тем не менее, то что в js объекты хранятся в формате json как-то странно, это вообще как епта не говорит о том что ассоциативные массивы питона имеют какое-либо к этому отношение.
даун небось и бэйсика бы не освоил, не то что пайтон
>>153694621>очно. Я ввожу год. Значит, надо как то узнать, вa = input("year")b = a / 366if b != 0: print ("nes")else: print("sosi ")def test(lol): b = lol / 366 if b != 0: print ("") else: print ("sd")
>>153695087Даже до хеллоу ворлда не дорос
>>153695150sore
Почему год делится на дни?
>>153689686 (OP)У Лутца толстые книги.
Задачку про шахматы решали уже?Заданы две клетки шахматной доски. Если они покрашены в один цвет, то выведите слово YES, а если в разные цвета – то NO.Жду ваши решения потом кидаю своё
>>153695066Питон проще, тащемта.>>153694769Зато тут вот так можно, кек.Спойлер: открыть файл input, прочитать из него все линии, каждую из них раздеть, убрав переходы типа CR и CRLF, потом на каждой из них любые последовательности из двух и более пробелов заменить на один пробел
>>153695242если год имеет 366 дней,то он высокосный
>>153695276В каком формате заданы клетки
>>153695345Числа от 1 до 8
Оп, забей, давай лучше трапотред устроим.
>>153695384нет! у меня уже член устал пиздец.
Теперь сериализуй словарь с помощью pickle и сохрани в файл, а потом загрузи из файла и распакуй
>>153695366А в клетке 0 0 какой цвет?
>>153695490а потом почитай про sqlite и сделай класс, который словарь будет делать из записей в бд.
>>153695502Посмотри на шахматную доску!
>>153695589Там нет клетки 0 0
>>153695567но делай так, чтобы можно было потом легко прикрутить postgresql, чтобы работало и с sqlite и с postgresql
>>153695628sooqua
>>153695292>СпойлерЭто ты типо меня напугать хотел?Я не оп и это распарсить могу, но вот зачем такое говно тащить в продакшен?
(x1%2 + y1%2)%2 == (x2%2 + y2%2)%2 ? console.log("yes") : console.log("no");
>>153695292И это хорошо, что больше так нигде нельзя.
>>153695712>Это ты типо меня напугать хотел?Это для тех кто не знаком с языком.>зачем такое говно тащить в продакшен?Во-первых, это тоже вполне читабельно, если привыкнуть к такому стилю и добавить небольшой комментарий. А во-вторых я пишу для себя и поэтому могу позволить себе делать всё что угодно :3
>>153695909в баше можно.
>>153695832Неплохо
>>153695832Ну где же вы шахматные гении
>>153689686 (OP)ОП добра и успеховзаглядывай в /pr в гвидонотред иногда
Вот мое решениеprint({0:'yes', 1:'no'}.get(sum( [ int(input()) for i in range(4) ] ) % 2))>>153695276 кун
>>153695966>если привыкнуть Нет, спасибо>пишу для себя и поэтому могу позволить себе делать всё что угодноВот сначала перед пасанами выебнуться, а потом и в сириус прожект так пишут, пальцы бы вам поломать.
>>153695276
>>153696197Как хочешь, еще раз повторю: это функциональный стиль, это вполне удобочитаемо если понимать что делает выражение. В крайнем случае небольшой комментарий. Для тех кто знаком с языком не составит такой проблемы.> пальцы бы вам поломать.:333
>>153696518Красиво, но громоздко, не правда ли?
>>153696518Дели аски код, че ты как не родной
>>153696670Достаточно хуёвое решение, да, но мы же играли на скорость, а это все что я могу из себя высрать за такое количество времени. Уверен есть более оптимальные пути.>>153696721Ага, вот еще одна оптимизация, о которой я не знал.
Меня короче только знаете что бесит вот, что переменные, созданные в области видимости лупов, не исчезают после использования. Т.е. вот такой код:with open('inp', 'r') as f: content = f.readlines()Даже после выхода из with переменная content все еще будет существовать, а не исчезнет. Это просто пиздец как бесит сукаблятькакнахуйможно было так сделать.
>>153697134Попробуй использовать блоки кода {...}. Может сработает
>>153697134Вроде бы это специально сделано, но не помню зачем.
>>153697134в смысле? питон же удаляет переменные когда они дальше не юзаются в проге
>>153697251в питоне при разметке используются пробелы а не скобки>>153697267я хз зачем такое в здравом уме можно запилить. сейчас бы засрать область видимости кучей разных мусорных переменных чтобы в нужный момент к какой-нибудь из них случайно обратиться, а потом наслаждаться разбором причин неправильной работы программы.
>>153696866Мое решение>>153696170
>>153697324
>>153697535если она больше не используется в проге.
>>153697616Да, но она не удаляется после выхода из области видимости, а должна (ну, если следовать логике и здравому смыслу).
>>153697724я не помню где это я прочитал и не факт что про пайтон лол,но то что я где то это видел это факт.
>>153696170Вот так и рождаются хипстеры, которые потом пишут клиентские приложения по 100 метров и 4 гб памяти. Какие то циклы, геты на ровном месте в некомпилируемом языке.
>>153697904>Какие то циклы, геты на ровном месте в некомпилируемом языке.А почему это плохо?
>>153698067Потому что программа стала занимать пол строчки но работать в 10 раз дольше.