Это копия, сохраненная 16 ноября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий >>1502633 (OP)
ЧАВО: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat актуальность примерно 2015 года
Книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem
Очень много книжек: https://drive.google.com/drive/folders/13YaFijvuH4dtv-PjUKVWLQ7ZIqXIfCLK
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/
https://pastebin.com/
https://pyfiddle.io/
https://www.codepile.net/
#######################################
Вопросы-ответы:
А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем - решать тебе, книга вредна не будет, то ты можешь её просто не дочитать и забросить.
Стоит ли читать %книга_нейм%, если там питон версии 2.х? - Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
А что ещё можно читать? - Питон сам по себе очень хорошо задокументирован, и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги. - МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? - очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
А как учить джангу? Нахожу только книги по джанге 1.х - У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой, из официальной документации.
В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать - Вот, пожалуйста, та же самая программа, но переработанная под язык Python http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём - брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
Что сплит делает? С обоими текстами выведи что получается после сплита и подумай, правильно ли он это делает.
Ну сплит разделяет слова по заданным знакам. Если не задать ничего, то по пробелам.
Точнее, разделяет строку, превращая в список
Говно ебаное. Не, так-то неплохо, но там же хуй проссышь местами как чего использовать, а в доках нихуя нет. Половина фич из алхимии работает, а половина вроде как не работает либо совсем, либо их дергать надо хуй пойми как. И да, манятуманя там вообще нет - мне пришлось много костылей напихать, чтобы m2m можно было по-человечески использовать и не писать руками кучу одинакового говна для каждого отношения.
Но я так понял, из альтернатив ничего лучше нет, так что придется gino хавать и надеяться, что китаец когда-нибудь допилит. Хорошо хоть на гытхабе отвечает довольно бодро и многие вопросы там можно найти.
>>12797
Я сначала тоже думал, что sql чистый будет проще. Потом посмотрел на это все и понял, что нихера не проще. С gino можно использовать alembic для миграций, а так все придется руками писать. Так-то асинхронные инструменты в питоне есть крутые: aiohttp, fastapi те же, но с орм пока что беда, хотя gino у нас в проде крутится и нормалды. Ждём django 3 с асинхронщиной, лол.
Хоть убейся, ничего не выйдет.
> Ждём django 3 с асинхронщиной
Хах
Ещё есть Peewee, кстати, но он мне не понравился своей структурой.
необходимо слушать скриптом порт 8080 и ожидать текстовые файлы, которые будут приходить по HTTP пост запросами,
далее необходимо после неких преобразований сохранить каждый полученный файл в другом формате,
причем необходимо обрабатывать до 3х таких параллельных запросов
короче непонятно, какие вообще библиотеки для такого использовать и как такую цепочку организовать,
я пока сделал так:
с помощью socket сделал сервер, который слушает на порту 8080, принимает ровно 1го "клиента", принимает от этого клиента ровно 1024 байт
текстовый файл передаю через curl командой типа:
curl -i -X POST http://localhost:8080 -H "Content-Type: text/xml" --data-binary "@path_to_text_file"
в результате получаю строчки на стороне сервера строчки по типу :
b'ip=1.3 device=/\xd0\x92\xd1\x81\xd0\xb5 \xd0\x97\x ...
короче, это не то что мне нужно
подскажите, пожалуйста, как организовать эту цепочку
> HTTP пост запросам
> с помощью socket сделал сервер
Всё у тебя хорошо?
Возьми фласк/aiohttp и замути всё что тебе надо.
Ты хочешь сам реализовывать HTTP протокол? Хочешь сам реализовывать асинхронность и параллельность?
Что тебе надо на самом деле:
1) хоть немного разобраться, как работает асинхронность и/или многопоточность вообще и питоне в частности.
2) использовать соответствующие либы. Ты можешь как джедай использовать либы h2/h11, которые парсят HTTP, либо фреймворки. Я бы асинхронные использовал, aiohttp / sanic, про фласк ничего не знаю.
Если это тестовое задание, то я тебе сразу и честно говорю, ты для этой работы пока не готов. Разберись с асинхронностью. Мозг сломать надо, на это время надо, но как сломаешь, так потом несложно будет.
Это с viz или шо? Ну как-то не выглядит слишком просто. Уже посмотрел несколько библиотек и везде практически тот же уровень ебли что с голым opengl
С 3д там хуже, только чтобы настроить камеру нужно поиграться. Нет, я не боюсь первого семестра линейной алгебры, но мне нужно будет немало повозиться с этими рендерами, так что я хотел нацти что-то максимально примитивное и простое (пусть и в ущерб функциональности, хуле)
Я Лютза 4е издание использую. Очень хорошая база. Так же использую этот https://www.youtube.com/watch?v=ZgSx3yH7sJI&list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0&index=2
плейлист, ну и для практики задания от МФТИ. Хотя пока сложновато с ними
Выше человек >>12976
всё верно расписаи. Я только начал вкатываться в GINO уже охуел от отсутствия документации, и это я ещё ничего сложнее аггрегирующих функций не использовл, что будет дальше даже подумать страшно.
Если у вас есть продовый опыт может поясните за структуру проекта в aiohttp. Как например db-коннекшн передаете? Объявляете глобально один раз или прокидываете через из app.config. Буду рад нормальным материалам по этой теме
А вот тут уже не знаю. Я вообще 4е взял, потому что его все рекомендуют из-за плюсов, мной перечисленных. Быть может, пятое урезано в некотором плане?
Надо спрашивать у местных знатоков
Можешь просто посмотреть что он пишет в разделе "about this edition", никто явно версии не сравнивал
Тебе достаточно принимать файл с помощью какого-нибудь микрофреймворка (выше уже сказали) и плодить процесс на каждую обработку, для асинхроннщины есть даже специальный run_in_executor
Имеешь ввиду по чистым пропускам? По идее тогд надо пробел, запятую и другие знаки в разделители внести. Но как быть со знаками, которых он не досчитался? слов больше оказалось лол
Спасибо. Блин, ткинтер простой слишком, а кьютэ тяжеловесная махина. Хотелось бы что-то по серединке. Но по ходу буду с кьютэ ебаться
Тыжпрограммист, вот и прикинь сам: если джуны им не нужны, то они:
1. проигнорируют тебя (вероятнее всего)
2. позвонят и злым голосом скажут, чтобы ты больше им не писал (вряд ли)
3. внесут тебя в чорный список по всей стране и вообще будут тебе под дверь срать (я такого не встречал)
Если же джун не помешает, то тебе позвонят и позовут поговорить.
То есть лучше слать, чем нет.
>Анончики, которые помогали мне в прошлом треде с заданием. Вы его похоже не правильно решили.
Хуя ты наглый чорт.
>Если же джун не помешает, то тебе позвонят и позовут поговорить.
это ведь можно узнать только если я им отошлю свое резюме с письмом?
В смысле "код не заработает"?
Ты хочешь сделать copy -> paste и получить волшебную пилюлю? Препод найдет где доебаться, если не шаришь. Я не вчитывался, что за код они тебе дали, но блэт уверен что они мыслили в нужном направлении. Просто рефакторни его для себя блин
Можешь ходить с таинственным видом вокруг их офиса, рано или поздно они не выдержат и спросят, не хочешь ли у них поработать.
в чем сложность то? Сгенерируй список иксов, например, с помощью np.arange(-2,2,0.3) и пройдись по ним в цикле как-то так
def func(x):
return (x+1)/x2
otvet = [ func(i) for i in np.arange(-2,2,0.3)]
> Без инкапсуляции
Ещё один неправильно понял смысл инкапсуляции.
> без адекватной параллельности
Это если думать, что ничего, кроме CPython, не существует.
> с производительностью полудохлой лошади
А не пиши числодробилки на питоне, и не будешь страдать.
лучше. тебя будет ждать она
Дай угадаю, ты из тех людей, которые считают, что если в языке нет ключевых слов private и public, то значит и нет инкапсуляции. Так вот, открою тебе секрет, если разработчику понадобиться достать приватный класс или поле, то он его достанет с помощью рефлексии и никакой private ему не сможет в этом помешать. Так что в итоге всё сводится к конвенциям, а если так, то зачем нагружать язык дополнительными конструкциями.
Вот серьёзно отсутствие private и public в Python - самый наименьший недостаток
Кстати, тут приводили пример, как через замыкания сделать сокрытие функций. Я ботал потом на эту тему, реально работает, то есть никаким адекватным образом ты до переменных внутри не доберёшься.
Правда на самом деле это не нужно, ни для каких реальных задач. Пионерство да и только.
WxPython
PyGame
PySimpleGUI
Toga
fbs (build-system.fman.io)
Gooey
flexx
cefpython
glooey
pyglet
pyforms
pygobject
pyside
fltk
Как лучше всего реализовать работу с несколькими пользователями в боте впараше? Тхреадинг или асинкио?
Уже второй тред пишу, чтобы в шапку добавили соус под размещение листингов - https://dumpz.org
Скорее всего в тексте знак применения был обрамлён пробелами, соотвественно это получилось отдельным словом, либо было где-то 2 пробела и в списке появилась пустая строка, посмотри все слова с одной буквой и меньше.
print([word for word in your_words of len(word]) < 2)
Когда я вижу слово, которое похоже на говно, оно у меня сразу вызывает опасение. GVINO хороший пример такого слова.
Через сборщик мусора можешь получить список все ссылок на объекты, соотвественно count адреса твоего объекта должно дать количества объектов, но лучше такой херней не заниматься, как мне кажется.
А где gtk?
Ясно, что можно исходники комсоли отредактировать, но мне почему-то кажется, что должен быть способ в уже готовом TextView заменить буфер на более продвинутый, скажем, на GtkSourceBuffer. Я ошибаюсь? Мне казалось, что я где-то видел что-то подобное.
И ещё вопрос, как в GtkTextBuffer поменять цвет выделенного текста? В GtkSourceBuffer, ясное дело, просто схему сменить, а тут чё-то я не догоняю. Пробую, например, так:
textstyle=view.get_buffer().get_style_scheme().get_style('text')
selectionstyle=view.get_buffer().get_style_scheme().get_style('selection')
textstyle.get_property('background') # #001b33
textstyle.set_property('background','#440000')
textstyle.get_property('background') # И всё равно #001b33, то есть вообще ноль изменений. А как тогда?
Помогите, пожалуйста!
Необходимо на джанге отдавать одну статическую папку со всем содержимым исключительно для авторизованных пользователей.
В этой папочке хранится клиентское single-page приложение, которое писалось не мной и в нём отсутствует работа с сервером
Ему дали start, stop, step для range константами, а ему нудно переменными, а человек даже не понимает, как это изменить в коде.
Это сейчас была отсылка к экстримному кодингу?
Ну вообще модно сделать класс недоступным для экспорта через __init__.py файлик. Твой проблема явно высосана из пальца.
Ну вообще модно сделать класс недоступным для экспорта через __init__.py файлик. Твоя проблема явно высосана из пальца.
Асинк, забудь вообще про треды, если если только их не юзают либо, это уже пережиток прошлого.
*либы
Это называется интерпретатор, а не компилятор, есть принципиальное отличие между ними.
Хорошо. А как логически реализовать это через асинк? Просто я 5iq мусор и никогда до этого ботов не писал
ГВИДО
Я в бд 0, поэтмоу прошу совета у знающих: Что читать и кого смотреть?
ТЗ в двух словах: Расчитывать топливо для автобусов. БД нужна для того чтобы вести учёт заправок
Почитай сначала основы sql, всякие create table / select / insert / update / delete. Затем поищи туториал по sqlite а Python с примерами. Этого хватит.
Я ничего не выбирал, почитал что sqlite сразу импортирован в питон, подумал что с ним проще. Я открыт для всего что связано с бд, только скажите что мне делать ибо в видосах нихуя не понимаю потому-что они ничё не разжевывают, да и нормальных не нашел пока что
И теперь вместо простенького файлика скулайта он будет ебаться с сервером монго, отлично ты посоветовал. Дома дырки в стенах тоже кувалдой сверлишь?
Иди в голанг.
Аноны, можете пояснить.
Почему тут сначала выполняется верхний и нижний блоки, а после уже выводятся все простые(True) числа через print, который вообще посередине стоит?
По идее же должен идти по порядку кода, т.е сначала выводить всё, а потом уже фильтровать
Оно и выводит по порядку. Вложенный цикл никак не затрагивает то, что уже выведено, так как не затрагивает элементы с индексом меньше квадрата i. При этом на каждом этапе внешнего цикла число выводится только если оно не делится на все числа от 2 до i-1, а значит простое.
Наркоман? Мы шестой тред разбираемся, как функция print работает, какие консоли, о чем ты вообще.
>При этом на каждом этапе внешнего цикла число выводится только если оно не делится на все числа от 2 до i-1, а значит простое.
Я понимаю, что вложенный цикл заполняет False те ячейки чисел, которые не простые.
Но почему сначала выполняется вложенный цикл, а после выводится print?
Если бы сначала выводило принт, а после выполнялся цикл, то тогда бы выводило все числа(т.к. все True)
>Но почему сначала выполняется вложенный цикл, а после выводится print?
Ps. когда принт стоит на строку выше
Это зависит от задачи и интерпретатора питона, которым ты пользуешься.
Если в CPython на большом количестве задач, то asyncio будет быстрее. Переключение тредов ведь хаотично и затратно, плюс есть GIL, из-за которого реальной многопоточности нет.
Но есть Stackless Python, альтернативный интерпретатор, он заточен именно под потоки, там легковесные потоки с быстрым переключением, там нет проблемы GIL, ещё какой-то свой дополнительный функционал для потоков.
В CPython для асинкио ты можешь использовать uvloop, плюс в том, что прозрачно абсолютно, иногда сильно ускорить может, но иногда даже хуже работает, чем event loop по умолчанию.
В некоторых случаях можно смотреть на инструменты вроде PyPy, это ещё один интерпретатор питона, с JIT, может дать радикальное ускорение обычного питон-кода.
Пути в хайлоаде запутаны и тернисты.
Если тебе хочется именно потоков, то смотри Stackless или что-нибудь в этом роде. Я в питоне потоками не пользовался, не могу ничего сказать.
У тебя проблема с самим алгоритмом? Вот смотри на гифку, обводится число i, потом это число выводится справа(у тебя подаётся в print), а затем уже все i*n, (n>=i) числа вычеркиваются
>Если в CPython на большом количестве задач, то asyncio будет быстрее.
Запихиваешь такой cpu bound задачу в корутину и думаешь, хули у тебя все висит
А, кажется допер. Получается, за первую итерацию "вычеркиваются" все числа, что не простые
А у вас там с css никто не работает?
В gtk у всех экранов может быть свой «провайдер css». И в этих провайдерах может быть что-то типа
#MyWindow{
background-color: #300a24;
}
GeditWindow{
background-color: #300a24;
}
GtkButton:focused {
background-image: url("/home/user/1.png");
}
Ну то есть селекторы по классу, по идентификатору и по состоянию. А может быть и не только.
И в TextSourceView можно теги вставлять, ну совсем как в html, чтобы разные фрагменты текста разными цветами и шрифтами отображать. И во всякие тултипы тоже.
Идея-то вроде норм. Я вот и подумал, что и под всякими там вендами всё делается похоже. А что, нет?
>>13783
Могу сказать, что работает в точности, как в баше.
Ты точно понимаешь, как работает цикл? Вложенный цикл выполняется не один раз. А каждый раз при выполнении внешнего цикла. Сначала выводится индекс второй ячейки и вычёркиваются все чётные числа, начиная с четырёх. Потом выводится число три и вычёркиваются все делящиеся на три, начиная с девяти. И так далее.
>>13852
Не все, а только те, которые кратны i. И когда наименьшее из чисел, кратных i, простое — там будет True и оно будет выведено.
Тебе бы почитать про инварианты и доказательство правильности программ. Оно тут как раз просвечивает. Так сказать, взаимосвязь между программированием и математикой.
А вот ещё интересно, есть ли под петон нормальные отладчики. Я-то просто в текстовом редакторе пишу, там даже автодополнения нет. И если есть, то просто понажимай step into и посмотри watches.
Подскажите, анончики, правильно ли я понял задание?
Нет. Уже в самой второй строке ошибка
> дано действительное число x != 0
> x= int(input("Введите x"))
И дальше ты считаешь что-то не то. Почему-то 1/summ, хотя в числителе ведь не единица.
Короче переписывай.
int - это целое число, а не действительное. Тебе надо делать float.
Цикл неправильный у тебя. Почему-то ты вычитаешь 2, а не делишь на 2, как надо. Почему-то ты не используешь i при вычислении суммы, а ведь должен.
дебил из яндекс.лицея?
>int - это целое число, а не действительное. Тебе надо делать float.
>
>Цикл неправильный у тебя. Почему-то ты вычитаешь 2, а не делишь на 2, как надо. Почему-то ты не используешь i при вычислении суммы, а ведь должен.
>
в числителе всегда целое число
по этому используюется Int
что б не было лишних нулей после точек
>int - это целое число, а не действительное. Тебе надо делать float.
float даже не все рациональные числа представить может, не то что действительные
Спасибо, я понял. Туплю.
С матаном неоч тоже, не знаю где и поднатаскать, но не знаю, где.
В частности, теорвер или дискретку какую-нибудь
неоч хочется залезать в геометрию и всякие школьные херульки
> инварианты и доказательство правильности программ
Гляну
>инварианты и доказательство правильности программ
Не слушай, это шизоид баззвордов нахватался.
https://pastebin.com/ad1AiDq7
Ты сравниваешь функцию input с единицей. Конечно, это False. Перепиши так:
a = int(input('> '))
if a == 1:
...
Спасибо, работает
В стандартных типах len ничего не считает,
Не больше тех, кто придумывал поведение ==:
"" == 1
"" == False
"" == []
"" == {}
"" == input
1 == ""
1 == False
1 == []
1 == {}
1 == input
False == ""
False == 1
False == []
False == {}
False == input
[] == ""
[] == 1
[] == False
[] == {}
[] == input
{} == ""
{} == 1
{} == False
{} == []
{} == input
input == ""
input == 1
input == False
input == []
input == {}
И хоть одно сравнение бы кинуло TypeError. Хуй, молча False. Как в джаваскрипте каком-то.
Не больше тех, кто придумывал поведение ==:
"" == 1
"" == False
"" == []
"" == {}
"" == input
1 == ""
1 == False
1 == []
1 == {}
1 == input
False == ""
False == 1
False == []
False == {}
False == input
[] == ""
[] == 1
[] == False
[] == {}
[] == input
{} == ""
{} == 1
{} == False
{} == []
{} == input
input == ""
input == 1
input == False
input == []
input == {}
И хоть одно сравнение бы кинуло TypeError. Хуй, молча False. Как в джаваскрипте каком-то.
А где-то шла речь про хвалёную строгую типизацию? Ты в питоне можешь умножить строку на число, алло, мань
Да, шла. Якобы Python > JS, потому что в нём не выполняется "1" + 1 = 11.
Умножение хотя бы не преобразует строку в число втихую. И на том спасибо.
А да и можете объяснить как мне реализовать эти полоски, чтобы они динамически заполнялись, я так понимаю нужен жс, но не знаю в какую сторону дальше копать.
Про джангу не подскажу, но полоски можно сделать через указывание ширины div. По мере заполнения подсчитываешь ширину заполненной и незаполненной части и добавляешь два дива с соответствующими ширинами.
Зачем вообще сравнивать эти языки, если они под разные задачи. Это ведь из разряда РЯЯЯЯ МАЯ ИГРУШКА ЛУЧШЕЕЕ А ВАША ГАВНОО
мать твою опустим)))))
Не знал, что для этой модели поведения есть название. Теперь знаю больше, спосиба
В общем, есть функция, в которой выдается рандомный возраст (ну то есть случайное число от 18 до 30) и на этот возраст нужно ввести инпут, на который тоже придется два условия (ну то есть будет выбор и потом комментарии выбора верный он или нет)
Собственно суть вопроса в том, что количество случайных возрастов тоже случайно. Есть ли способ вызывать эту функцию N раз одну за одной?
Например вызывать ее N раз в цикле, где окончание цикла = твоему N(если начать с 0)?
N - рандомное число, которое меня мало интересует. Главное, чтоб он вызвал ее эти N раз.
Объясню, что вообще придумал.
Это текстовая игра, где баба выбирает себе мужиков. Приходят к ней мужики от 10 до 80 лет. Она принимает только от 18 до 30 лет. И N - это то, сколько мужиков придёт.
Ну и в случае неверного выбора мужика - break.
Лучше не описывать геймдизайнерские идеи в точности потому что их тогда легко умыкнуть.
Охуеть верх геймдизайнерской мысли, всё, пошёл основывать Python Entertainment ©®™, будем пилить десятистрочные игры на питоне и пилить миллиарды, идеи будем брать с двача
module 'dvach' has no attribute 'razdvachit'
Но ведь ты же не собираешься делать визуальную новеллу. Так что нет.
Я хеллоуворлдщик-фибоначчист.
Пробовал АЙДЛ, сейчас пердолюсь в ВИЖУАЛ СТУИДО.
Мне похуй на твою дальнейшую логику, вот я тебе привел пример программы, которая генерит Н раз число.
Затем при прогоне диапазонов
for i in range(M):
S[i + 1] =S+ S np.random.normal()
for i in range(M):
S[i + 1] = S+S Z
Выдают сильно разные результаты усредненно за много прогонов. Приравнивание Z=numpy.random.normal() меняет как-то вывод numpy.random.normal()?
Надеюсь понятно. Весь код громоздкий.
А зачем pycharm хелоувордчику? Sublime все же куда легче будет. Ничего лишнего.
Пока
Слышу нотки сарказма в твоем сообщении, но таки да, после легкой обработки напильником вим становится иде.
Скорее про файлы/директории, читал где-то шо под каждый проект индивидуальный подход, но схемы полюбому где-то можно посмотреть, как это делают люди с опытом
Сап
хочу переименовать картинки в папке сохраняя тот же порядок (т.е первая картинка будет картинка1, вторая картинка2 и тд)
нашел os.rename, но он переименовывает в хз каком порядке
то есть не по алфавиту, а видимо рандом, например начинает с середины папки
как можно переименовать картинки не меняя их порядок?
Ну логично что тебе нужна промежуточная таблица в которой будут храниться пары: сотрудник-вопрос. Если запись есть - запрещаешь голосовать. Изи.
Порядок действий.
1 Определиться в каком порядке тебе нужны файлы: не бывает "того же" порядка. Есть сортировка по имени, размеру, дате создания, дате изменения.
2 Получить список файлов.
3 Получить ключ для сортировки (на основе выбора из п.1)
4 Сортировать по использованному ключу.
5 Переименовывать файлы.
Можешь на примере показать как должна модель выглядеть для такой таблицы и как мне записывать туда данные? Типо после того как пользователь кликнет на ответ и проголосует, тогда добавится запись?
А зачем книга то. Ставишь себе задачу - гуглишь свойства элементов - ???? - вы восхитительны.
Консоль быстрее, подрастешь поймешь
А ты как думал? В питоне всё серьёзно.
Видос из шапки не особо полезен, т.к. я нуб.
Дааа, так уже и начал делать. Затем, когда накатал програмку (только что, после создания поста начал писать), встал неочевидный вопрос:
Аноны, а какого черта после компиляции с ткинтером, я запускаю программку свою (выдает почему-то консоль сначала), и прежде, чем выдать интерфейс основной, он думает секунды 3? Мне это вообще не нравится. Не понимаю, почему так медленно. Там кода всего на 40 строк примерно.
> выдает почему-то консоль сначала
Если pyinstaller, то собирай с флагом -windowed, или как там его
> и прежде, чем выдать интерфейс основной, он думает секунды 3?
> Short answer, a complete environment for your program needs to be extracted and written to a temporary folder.
>Short answer, a complete environment for your program needs to be extracted and written to a temporary folder.
Это как?
Это учись читать доки блядь
https://pyinstaller.readthedocs.io/en/stable/operating-mode.html#how-the-one-file-program-works
Если код короткий, попробуй PyPy использовать, он в чисто питоновский код в циклах может в десятки раз иногда разогнать.
Надо смотреть на твой код. Наверняка можно оптимизировать.
Ниче не понял пока что из этих доков, рубит меня, потому и спросил. Завтра еще гляну их
cпс, звучит трудненько)
я написал к тому, что os.rename переименовывает не по алфовитному порядку
решение я придумал проще - написал регулярку
Оу, это по сути новый питон ставить надо. Пока не подойдет, но возьму на заметку.
numba ставь https://weeraman.com/put-that-gpu-to-good-use-with-python-e5a437168c01 , оно и видюху может, и так на процессоре вывести типы и скомпильнуть твой говнокод в быструю какашечку
Придется за ней всю анаконду тащить. Как она в плане опенсорсных дров для видюхи на линуксе?
Не думаю что cuda может работать на попенсорце, но numba и cpu поддерживает. И, в плане cpu, pip install numba сработает. Насчет cuda не пробовал
Код показывай, если у тебя число-дробилка то можно улучшать код и улучшать.
У того же scipy есть куча методов и параметров.
Кроме того что предложили аноны, можно попробовать ещё и на сишном пистоне написать часть логики.
Аноны, знает кто что про Практикум от яндекса? Это такая же платная шляпа как и курсы от гикбраинс и скиллбокс?
Посмотрел уже. Есть два бесплатных вводных курса по пистону, может кому интересно будет.
Где можно найти человека сделать простую работу?
ТЗ примерно такое: спарсить всех сидящих на этом канале,кроме админа,и разослать им в пм нужное сообщение.Все это в IRC
вроде как текстовый протокол и все должно быть просто,но я не кодер,а нужно скрипта для такого я не нашел
Может кто тут сделает?Кину немного беткойнов
Есть серв с зоопарком скриптов на питоне. Они рождаются, плодятся, умирают. Живут своей жизнью, короче.
Нужен кто-то типа супервайзера, который по REST апи будет возвращать список живых процессов, порождать и убивать процессы.
Какой-нибудь фреймфорк или готовый сервис.
Нужно сделать координатную сетку для листа А4, с двумя осями, а на ней, с отсчетом от центра поставить заданные точки и сохранть это все дело в формате жпг или пнг, чтобы потом распечатать
Ну грубо говоря график нарисовать
нудновато
ткинтер
пачарм топ на сам мало что запомнишь, юзай атом...но там input() чет не работает по дефолту
Кто плодит эти скрипты? Я бы подключался к этой хуйне и вытгивал данные оттуда.
Для рест апи подойдёт любой пистоновский небольшой фреймворк типа flask/bottle/pyramid
Жуки не любят находиться рядом друг с другом и каждый прячется под отдельным камнем и старается выбирать камни, максимально удаленные от соседей. Так же жуки любят находится максимально далеко от края. Как только жук сел за камень, он более не перемещается. Всего в линии лежат X камней. И туда последовательно бежит прятаться Y жуков. Найти сколько свободных камней будет слева и справа от последнего жука.
X может быть до 4 млрд.
Примеры
X=8, Y=1 – ответ 3,4
X=8, Y=2 – ответ 1,2
X=8, Y=3 – ответ 1,1
сразу говорю - в гугле какая то хуета подзалупная. в каком направлении копать то ?
Прорешал оттуда задачки, что дальше?
Посмотрел матлиб, он сложный пиздец, есть что-нибудь попроще?
Я не погромист, питон использую чисто автоматизировать некоторую хуйню по учебе
Он не сложный, просто начни с простого, тебе этого и хватит в принципе.
Нарисовать то что у тебя можно в строк 10 кода, где 2 строки на импорт и 2 на финальное отображение.
Он несложный, просто мощный. Если тебе нужны простые вещи, они делаются просто. Для начала запоминаешь две команды: from matplolib import pyplot as plt и plt.plot(x, y)
Проще только матлаб из которого этот pyplot слизан
А можно наводки хоть какие-набудь?
Типо ок, везде написано, что все просто, но все туторы которые я нахожу они про обычные графики функций, а по запросу в гугл "crosshair" экей перекрестие выдает хуйню, где куча строк кода
Если ты в интерпретаторе, делаешь plt.ion(), чтобы графики показывались моментально
В скрипте не делаешь plt.ion(), а вместо этого когда закончишь делаешь plt.show()
from matplotlib import pyplot as plt
plt.plot([1,2,3],[4,5,6],'+')#красный крестик будет r+
# или plt.scatter([1,2,3],[4,5,6]), вообще это называется scatter plot по-английски
plt.show()
plt.savefig('yoba.png')
популярное коверканье слов кулхацкеров, родом минимум из 90х, частично используется например в мессенджерах
Это все ебаные пути виндовские, где один обратный слеш экранирует другой, ты попробуй выпринтить свой путь. Юзай либо нормальный юниксовый прямой слэш, либо делай строку сырой- r”raw_str”, либо os.path.join(“C:”, ”ebal”, “ya”, “vashego”, “abu”, “v”, “rot”)
Вот ты и спалился разбiник, дата создания есть только в винде, в юникс подобных, только дата изменения.
>>15907
поясните, ещё, пожалуйста. а что там в задании требуют? что за словарь? никакого словаря у меня там не было, они имеют в виду {} вот этот словарь чтоли? и что он возвращать должен? любое слово? или по буквам конвертировать. нихуя блдяь не понимаю, нужно же блядь этот быдлошифр туда впиздошить было.
А в чем собственно проблема отсортировать список с именами файлов, которые получены через os.listdir(path), если тебе нужна сортировка именно по именам?
Ставишь себе задачу. Находишь решение на стековерфлоу. Копипастишь код. Ты восхитителен.
это пиздец будет долго и заёбно, с книгой проще ибо там сперва дают все свойства потому же задания по теме. очевидно что процесс обучения ускоряется с книгой в разы
Была похожая хуйня
Недели 2 ходил и думал о том, чтобы написать заявление раньше, чем меня пнут лол
Теперь уже 1.5 года на поддержки этого говна.
Начинает даже нравится
задачи такие же. там ничего интересного. книга какая-то странанная уж не первые раз такие задания попадаются непонятные то они всунут задания из раздела который впереди и который я ещё не проходил
еще была проблема в том, что при переименовании через os.rename часть файлов загадочным образом исчезает
в общем знатно я поебался с этой казалось бы простой хуйней
Ну тогда просто скипай. В книгах бывают неточности, но если их многовато, то лучше уж взять другую.
ну я просто взял за словарь что-то похожее на него из другой главны и буду программу писать щас. ну это лучше чем в прошлый раз когда они затолкали в один раздел задачи из другого который впереди я всё это гуглил вручную охуевая
меня просто возмущает тот факт что теперь нужно разбираться как это говношифор устроен. ELITE блядь, так и повеяло 15 летними выблядками-хакирами из онлайн игр.
Изначально-то это было частью хакерской культуры, это уж потом школота всё опошлила.
Можно взять задачу поинтереснее, например, шифр Цезаря. Пользы будет больше.
поздно. я уже половину этого вырвиглазного альфабета в словарь перетащил.
пытался выводить названия файлов, понять почему и куда они пропадают, потом махнул рукой и переписал на перле.
>>15900 вот это задание сделал.
Ну ты наверно еще что-то умел, а у меня большие проблемы даже закрыть вроде простой таск, а теперь весь проект вешают на меня.
использовать вложенные циклы с посимвольным сравнением
>прекрасно читаемый код с понятнейшей логикой
использовать функционал стандартной библиотеки на полную
>уебанство
/_0
Ну давай через аналогии, раз ты сам не чувствуешь - если твой код походит на перлохудожества, то он плохо читается.
Можешь ещё попытаться словами объяснить что на каждой из картинок происходит. А потом подумать почему те две картинки вообще нужно кому-то объяснять.
if ... new_line += t[letter] заменить на t.get(letter, letter), так будет в 2 раза меньше поиска в словаре.
Внутренний цикл можно заменить на списочное выражение без ущерба читаемости.
readlines не требует '\n' . Получится
for line in r.readlines():
new_line += [t.get(letter, letter) for letter in line]
Как-то так
Вопрос снят
Это сарказм?
Спасибо за ответ, с версткой я полностью разобрался, но вот как простроить модели, чтобы голосовать юзер мог только один раз я никак не могу, вот бы мне кто-нибудь разжевал это.
1) когда ты открываешь файл на чтение с with и получаешь указатель, тебе не нужно делать readline, итерация по файлу и так даёт строки.
2) Чтобы получить список в строке ты можешь примереть лист на строчку, при этом применив к ней strip перед этим, чтобы обрамить строку с двух сторон, убрав всякое говно типа переноса строк.
3) нет смысла делать проверку на вхождение в твоём случаем, достаточно сделать get с дефолтным ‘’.
Тоже не вполне понимаю целесообразность, снижать количество строк любой ценой очевидно неверный путь. Да ты сэкономил пару строчек, но получилось какое-то забодробительно ненаглядное предложение, и пока оно одно другое ещё ничего, а если их сотни то всё туши свет, код будет напоминать талмуд.
Или кинули бы туториал где делают это, был бы очень признателен.
ой не туда серанул)
ну хоть работаешь, анон. я за 4 месяца поиска работки так ниче и не нашел кроме 5 тестовых. в результате чего теперь вообще ссусь слать свое резюме тк думаю что отправят тестовое на которое я проебу дохуя времени а мне ответят извините тестовое выполнено конечно хорошо но на недостаточном уровне. такие дела. да и вообще думаю яп менять тк в моем зажопье нет вакансий на джунов-питонщиков. везде мидлы и сеньоры только со знанием 2.7 обязательно
спасибо, анон, но я вообще-то имел ввиду как избавиться от for in for то есть цикла в цикле, т.к. я знаю что это плохо, но ничего иного придумать не могу, поэтому и решил посмотреть на решения других анонов.
>>16116
1. да я так и думал, вот только недавно с другим погромистом общался он сказал, нет ставь readline.
спасибо, за советы, понял.
>>16015
>>16022
спасибо, а куда вы словарь дели с алфитом как у меня?
понял, спасибо. а y это что такое?
не понял тебя
Пока нашёл курс про питон более обстоятельный у линуксоидов, а так же гайды по работе с гуями и объектно ориентированное программирование.
Планирую пока написать пару калькуляторов статов для игр и ещё что-нибудь не большое. В принципе бота написать было бы неплохо тоже, полезная штука.
Всё правильно делаю?
Какие-то вы бесполезные...
А ты читал? Нет? Ну помолчи тогда.
Иногда помогает ставить r перед кавычками. Но не в случае завершающего обратного слеша.
В целом примерно так и есть, причём далеко не только в программировании. Ищут лоха он делает работу, потом его посылают.
Заебись, чо.
with open("file.bin", mode="rb") as fin:
__bs = fin.read() # массив с байтами
with open("file2.bin", mode="wb") as fout:
__fout.write(bs)
Так а нахуй тогда эти вакансии висят, если джун без опыта все равно ни на что не способен?
Давайте же и мы вместо кодинга будем заставлять лохов бесплатно работать.
Как же си-бляди заебали, когда же вы поймёте, что пайтоник стайл - коротко и просто, если ты не понимаешь и не можешь прочитать то, на что сослался, то пиздуй уже в свой си или яву, где нужно зерова туча строк для простейших операций вроде составления списка строк из файла.
single_line = “”.join([your_dict.get(ch, ch) for ch in list(inp_line.strip()])
В твое случае вторым аргументом должна быть пуста строка, но это очевидно ошибка, поскольку это уничтожит все пробелы.
Чувак, да будет тебе известно, даже использование map уже не Pythonic-way, ты Zen of Python вообще видел?
Вариант с maketrans нормальный, его бы ещё немного доработать и хорошо будет. Хотя использование readlines в этом случае уже многое о вашем уровне
Безотносительно примеров выше. Питон хорош тем, что читается почти как текст на английском, а всякие скрипт киддисы пишут в стиле "мам смотри, я умею в генераторы" и запихивают все в одну строку просто потому что могут. Питон не про производительность, здесь можно делать упор на читабельность.
МакКонел как раз про это писал, что можно программировать на языке, а можно с использованием языка, и второе лучше. Ньюфаги возводят удобные фишки питона в абсолют.
Вот такие однострочники >>16015 это нихуя не просто. Если нужно выбирать между понятностью кода и маленьким объемом, то лучше выбрать многострочник, который сразу понятен.
Олсо, в каком-нибудь лиспе тоже можно писать все в одну строку, но никто так не делает, потому что читать такой код невозможно. То, что уменьшение количества строк дает какое-то преимущество -- это иллюзия. Если уж несколько строчек вместо одной тебе так мозолят глаза, сделай ебаный фолд.
спс
>>> L = type('L',(list,),{'reverse': lambda self: super(list,self).reverse()[:2]})
>>> l = L((1,2,3,4))
>>> l.reverse()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
AttributeError: 'super' object has no attribute 'reverse'
WHY NOT?
йа иблан сори
Сап питонач, подумал я недавно, что было бы годно закинуть функцию print в другой поток, т.к. операции вывода на экран или записи на диск отнимают прилично ресурсов у ЦП
Вот у нас есть функция, которая постоянно проводит вычислительные операции, нагружающие ЦП и периодически должна выводить какую-то информацию в стандартный поток sys.stdout, либо во внешний файл. Зачем постоянно прерывать вычисления, чтоб функция print что-то вывела? Не легче ли заставить ее выполняться параллельно?
Но тут возникают проблемы. Все ж мы знаем что "параллельность" в Питоне не так уж проста из-за GIL. Я пробовал создавать еще один thread, который вытаскивает из очереди Queue данные, закинутые туда основной функцией и выводит их - производительность только упала. Из вариантов: запилить асинхронную функцию print на основе asyncio, но я не шарю в асинхронках. Второй вариант - запилить второй процесс с помощью multiprocessing, но это "дорогое" удовольствие и не хотелось бы скатываться до этого
Уверен, что засунуть print в асинхронку не так уж сложно (и кроме этого и охуительного совета про смену языка еще какие-то идеи есть?)
>еще какие-то идеи
1. Не страдать хуйней (числодробилка на питоне, вообще охуеть).
2. Ну или поискать готовый асинхронный логгер, или написать свой.
BeautifulSoup + lxml + Selenium+phantomjs
Связка актуальна?
lxml сильно быстрее BS? Когда эту библиотеку имеет смысл использовать?
Какие еще технологии, материалы добавить к изучению?
Заранее спасибо
https://pastebin.com/G9KT3rKx
>коротко и просто, если ты не понимаешь и не можешь прочитать то, на что сослался, то пиздуй
У кого-то логипа плывёт. Иди хоть PEP-сов почитай на досуге, там уже не первые десять лет как объяснили почему ты хуй сосёшь.
Проблема тех примеров не в сахаре для создания списка, а в том что он набор операций весьма нестадартный и хуй вдуплишь чего именно ты хотел добиться. Оригинальный же пост сразу даёт понять что к чему и, как можешь видеть, анон смог и обоснование дать что там менять чтобы было лучше.
Многовложенная эвалюация со скобочками в принте это вообще прекрасный случай нечитаемости - ты там сходу даже не скажешь к чему вообще '\n'.join() применяться будет. И приходится эту хуйню вычитывать и лишь потом догадываться нахуя ты это вообще сделал и почему именно так.
Раз уж развлекаешься, то не проще ли службу отдельно запустить, которая будет тот же ip-трафик читать и в stdout выводить? И просто на неё закидывать нужные данные без всяких подтверждений.
Ну изменяет список. Без вас аноны я бы навряд ли смог додумать сам, а сейчас допер, тонны нефти вам.
Вот у меня есть матрица. Мне надо последнюю строку вставить сверху, то есть сделать ее первой, первую изначальную первую, а не вставленную поставить последней строкой.
И то же самое со столбцами.
Делаю сначала строки, всякие инсерты и аппенды. Нормально. Потом столбцы. И тут начинается эта ебанина. В скопированной строке элемент добавляется дважды. Один раз в оригинале, и в торой раз в копии, которая за каким-то хуем последовала за оригиналом и уже заимела добавленный элемент.
И главное, где про питон не почитаешь- ах какой элегантный язык. Пиздец.
Ты дурачок, ты не делаешь копии, ты в две переменные вкладываешь ссылку на один объект. Просто загугли "как скопировать список, питон". срезы изучи
Я знаю что происходит. Я не понимаю нахуя это надо.
>в две переменные вкладываешь ссылку на один объект
import copy
Потому что это mutable объект ёпта
И ты копируешь ссылки на один и тот же объект, а не сами объекты
Да я понял, что копируются ссылки. Я не понял, зачем это надо? Зачем мне два объекта, которые на самом деле один?
Потому что все переменные в Питоне это на самом деле ссылки на объекты. В этом суть структуры языка и всё тут. Можешь обмазаться С - там вручную ссылки создаешь и имеешь доступ непосредственно к ячейкам памяти и их адресам
А хотя не, бля, оно же при каждом вычислении создаётся, другой пример:
a = 0
b = a
Сколько объектов
Создастся 500 таких структур
typedef struct {
PyObject_VAR_HEAD
PyObject ob_item;
Py_ssize_t allocated;
} PyListObject;
ob_item каждой будет ссылаться на объект с одним и тем же id.
Ну да, но речь шла не про это
У меня есть несколько функций, как их запускать параллельно по секундомеру?.. Каждая из функций должна запуститься в параллельном thread или process через определенное кол-во секунд после старта Main thread, как это запилить?..
Например, можно создать и запустить треды сразу после запуска скрипта, но в начале каждой функции написать time.sleep(определенное_колво_секунд)
from threading import Thread
from time import sleep
def f1():
__sleep(определённое_колво_секунд)
__# my function
def f2():
__sleep(определённое_колво_секунд)
__# my function
if __name__ == "__main__":
__th1 = Thread(target=f1)
__th2 = Thread(target=f2)
__th1.start()
__th2.start()
...
__th1.join()
__th2.join()
Имей в виду, что прироста скорости не будет из-за GIL. Единственная польза от тредов в питоне - например, отделить ввод-вывод от фоновых вычислений.
apscheduler
Пикрил что имею.
Спасибо.
А в чем проблема? Ну сохраняй в куках статус проголосовавшего, или если есть регистрация, то список проголосовавших. Ну и рендери темплейт (хуй знает как это ваще в джанге выглядит) в зависимости от статуса
мимо хэллоу-вордщик
> сохраняй в куках статус проголосовавшего
О, может, ещё и пароль проверять на стороне клиента?
enumerate() бежит по коллекции, возвращая пары вида (порядковый номер, значение). Если бежит по списку, порядковый номер совпадает с индексом в списке. enumerated() в питоне нет.
Топ
Лекции хирьянова на ютубе. В комментах к роликам есть ссылка на практику, делай всё, контесты тоже
у меня коллега пишет в вим, грит мощно, но он задрот
С проверкой разобрался, но теперь без редиректа ничего сделать не получается, а мне обязательно, чтобы это было в виде виджета на 1 странице и она никуда меня не отправляла, а на месте выдавала результаты, например я выбрал ответ, нажал кнопку проголосовать, страница перезагрузилась, обновилась бд и добавились новые значения к результатам, как это сделать?
С тобой что-то не так.
> я выбрал ответ, нажал кнопку проголосовать, страница перезагрузилась, обновилась бд и добавились новые значения к результатам
Ну вот как ты описал так и сделай, в чём проблема?
После получения ебучего ПОСТ реквеста делай либо же редирект на этот же урл но на ГЕТ либо же перед отрисовкой страницы после ПОСТ реквеста делай не только запросы в БД на запись данных, но и на чтение новых, актуальных.
https://www.codewars.com/kata/permutations/train/python
Мое решение работает в PyCharm, но не работает в кодварс
Вот код
https://ideone.com/JFP7t3
В чем проблема?
Раз уж там разрешены итертулз, то непонятно нахуй ты своего нагородил.
Ты должен возвращать результат, а не печатать.
При тестах вызывается permutations, то есть твоя функция вообще игнорируется.
https://ideone.com/NSZL0j
Как скопировать двумерный массив? По срезу списки из которых состоит массив изменяются и в копии и в оригинале.
Зачем тебе редиректы? Делай пост на эту же страницу, в начале добавь небольшой кусок мол "если в запросе есть воут, то пишем в базу", а дальше обычный код вывода голосовалки.
Напишите программу, которая принимает данные от пользователя с помощью функции input и печатает результат в консоль.
Ввод данных
Пользователь последовательно вводит данные об учениках в формате
класс фамилия. Например: 9 Иванов или 12Б Петров
За один раз вводится один ученик
Между символами, обозначающим класс и фамилией, ровно один пробел
Количество учеников и классов не ограничено
Концом ввода является передача пустого значения
Вопрос: насколько это через жопу?
Так нахуй, Папка в тред зашел бля
>как их запускать параллельно по секундомеру
threading.Timer
Всё, ёпта
>Цепи маркова очень торт автокомплите простом
Что-то я не догнал, при чём тут цепи Маркова. Что ты имеешь в виду?
> По первой части делается eval и dir
Звучит не торт
> при чём тут цепи Маркова
Погугли что это и как можно применить.
вот это:
https://docs.aiohttp.org/en/latest/web_quickstart.html#file-uploads
не то, тут они показывают , как загрузить файл из инпут поля,
я попытался адаптировать это под обычную загрузку текстового файла POST запросом, например с помощью curl
curl -i -X POST http://localhost:8080 -H "Content-Type: text/xml" --data-binary "@ПУТЬ_К_ФАЙЛУ"
передаю туда файл со следующим содержанием:
123
abc
но при этом я не могу никак получить доступ к самому содержимому этого текстового файла,
> какой-нибудь более менее пример загрузки пост запросом текстового файла на сервер
> но при этом я не могу никак получить доступ к самому содержимому этого текстового файла,
Тебе что из этого надо?
Загрузить файл пост запросом на серв? Бери реквестс и поле file.
Прочитать файл на сервере? Сохраняй файл в директорию а затем открывай его обычным open('/path/dir/file', 'rt').
такое ощущение, что
data = await request.post()
вообще пустой
но запрос проходит нормально,
как получить текстовое содержимое файла, что бы его потом обрабатывать и на его основе делать респонс и хедеры?
хочу получить содержимое текстового файла, полученное POST запросом от клиента (curl -i -X POST http://localhost:8080 -H "Content-Type: text/xml" --data-binary "@ПУТЬ_К_ФАЙЛУ")
обработать его и сохранить в файл другого формата (сделать из него словарь и сохранить в джейсоне)
вот что у меня пока есть:
>>18139
Да, но этот пример сделан для конкретно этого html темплейта,
а я просто делаю POST запрос с текстовым файлом с помощью утилиты curl
print(f"{(((genome.count('c') + genome.count('g'))/len(genome)) * 100:.1f}")
Мудрые аноны, подскажите что с функцией не так?
Потому что ты хуйню творишь.
Если не умеешь курл юзать как надо - юзай реквестс или постмана.
Ты должен передать файл как ФАЙЛ.
И тогда всё работает.
Твоя хтмл форма делает вполне себе обычный завпрос только верно выставляет хэдеры и параметры для передачи.
с синтаксисом какая-то мешанина
https://stackoverflow.com/questions/20457038/how-to-round-to-2-decimals-with-python
genome = input().lower()
print(round(((genome.count('c') + genome.count('g'))/len(genome)), 1)100 )
#ИЛИ
res = ((genome.count('c') + genome.count('g'))/len(genome)) 100
print(f'{res:0.1f}')
советую как-то разделять код, что б не было мешанины
Прилепил немного не то: genome = input().upper()
print(float(f"{((((genome.count('C') + genome.count('G')) / len(genome)) * 100)):.1f}"))
Твой вариант тот же тест проваливает.
спасибо за помощь, походу я пытался файл передавать, как data-binary и нужных заголовков не было
Да,я сам допер,что просто надо было когда импортировал пермутейшонс дописать as sth
Открываю секрет мироздания: все плевать на пайтон дзен, что не бракуется линтером, то разрешено, а бракует он многое.
А по твоему вложенные циклы читаются лучшем, чем генераторы? Есть конечно вещи, которые ухудшают читабельность, но все примеры выше явно не тот пример.
Тебе не кажется, что читаемость - вещь субъективная, все зависит от того сколько ты строк кода подобного переварил. Как по мне пример, на который ты сослался, очень даже читабельный.
Почему все так боятся мультипроцессинга? Причём причины всегда разные называют, иногда дорого, иногда сложно, иногда просто не стоит. Родина вам звезды дала - носи - не хочу, хочу жрать говно.
Укажи мне в пепах пункты, которые запрещают уже 10 лет хоть что-то из примеров выше, будь добр.
У тебя походу какие-то проблемы с пониманием синтаксиса, очевидно, что метод join в качестве аргументов принимает иттерируемый объект. Чтобы понять, что он принимает, достаточно просто посмотреть что сука находится в скобочках, мне кажется, это даже дети в 5 класса умеют делать, когда их обучают всяким паскалям. То что вы не знаете синтаксис и пишете в си-стайл - это чисто ваша проблема.
Обоссан? Ты блядь серьезно? Приводишь скрин с сишным однострочником и думаешь что это является хоть каким-то аргументом? Тв либо сосем конченый, либо айсикью у тебя как у хлебушка. Впрочем из-за си-уебков типа тебя люди и пишут вложенные циклы, а вместо итераторов используют for i in range(len(itter_object)). Ты просто не способен понять, что в разных языках разные подходы к понятию читабельности. Если в си принято писать 10 строчек для простенькой операции, то использование сокращение до одностроника уже выбивается из общей картины, но хули ты лезешь то в питон со своим сишным уставом?
Лол, как же ньюфаги бугуртят от олдфажного сокрещенного синтаксиса. На моей текущей работе тоже любят сокращенные схемы как в старые времена и проблем это не приносит. Пишем на джаве. То чувство, когда в 2000-х джава была языком для даунов, а сейчас джависты - последние из вымирающей элиты.
Само собой есть, причём можно сделать в одну строчку.)
Чел в питон треде пытается доказать,что однострочники - зло, и приводит огрызок переписки без контекста, но в нем явно сишный код. Мне кажется тут все вопросы должны отпасть сами собой.
Но при этом си работает на голых железках, и пидон без огромного рантайма и кучи еблиотек не взлетит. А если уж хочется писать софт для бизнеса, то для этого есть другие языки: go, swift, kotlin. Пидон это параша для школьников-МЛщиков, чьи модели потом переписывают на C++
В pyqt делается через валидаторы на текстедит, но есть какое-то специальное роле для интов со стрелочками, не помню как оно называется, по идее эти стрелочки можно убрать, не уверен, что в ткинтере это можно сделать правда.
Из вима все выходят путём перезагрузки машины, поэтому он для хардкорных кодеров.
Бля, просто иди нахуй, ты обосрался, но даже это не хочешь признавать. Скажи фейсбуку с их инстаграмом, что питона - параша для школьников.
Ну или не ты.
Ебал твой пейсбук. Я в айти себе копеечку зарабатываю, чтобы жить более интересно благодаря более-менее интересной работе, а не собираюсь снискать славу среди цифрового плебса разработкой очередного хипсторского говна.
А, ты из этих.
Спасибо, заценю.
>Тебе не кажется, что читаемость - вещь субъективная
Согласен. Посыл был в том, что качество кода не зависит от количества строк кода, ибо с уменьшением количества строчек кода порой ухудшается читаемость. Это не всегда так, например, map() и filter() очевидно лучше чем for(int i = 0; ... , но баланс между читаемостью и компактностью кода нужно соблюдать.
>Как по мне пример, на который ты сослался, очень даже читабельный.
ИМХО, он менее читабельный по сравнению с аналогичным многострочником. Не по методам, которые там используются, а просто потому, что такое выражение тяжелее на ходу декомпозировать на более простые шаги.
1. Может надо было вообще сразу за джангу взяться без этого питона ненужного?
2. Изучать неасинхронный веб-фреймворк в 2019
не, без питона бы я бы вообще нихуя не понял само проганье
>>18476
>>18466
Из-за подобных вам долбоебов Гвидо чуть не выпилил всю функциональщину из языка (https://www.artima.com/weblogs/viewpost.jsp?thread=98196). Однострочник с join'ом выше просто отвратителен: одна вложенность скобок чего стоит. Уебан ещё специально дал всем переменным однобуквенные названия, чтобы длина строки не превысила ограничение, если разбить эту конструкцию на две строки, то она будет выглядеть максимально убого.
Видимо подход языка Go - дать прогеру как можно меньше синтаксического сахара, в нынешнее время самый адекватный, потому что иначе рискуешь нарваться на людей, которые предпочитают количсество строк читабельности.
>изи задачи
Проблема в том, что книги пишут уебаны.
Знания конечно с их помощью приобретаешь, но из-за подачи материала происходит это в разы медленнее, если вообще происходит.
Ну у меня имхо другое. Без сомнения кучу вложенных циклов легко читать, но неприятно.
Скоро все будет, они обещали.
И к чему ты дал ссылку, там речь идёт в основном про reduce, который вообще ни один адекватный человек не стал бы использовать. Я двумя руками против анонимных функций и также считаю, что они ухудшают читабельность. Но как бы статья не парирует абсолютно ничего из того, что пытаешься мне предьявить.
‘’.join(
....[...]
)
Эту будет 3 строчки, но они лучше читаются, yapf как правило это и делает с длинными однострочниками.
https://packaging.python.org/tutorials/packaging-projects/
создал такую файловую структуру
packaging_tutorial/
example_pkg/
__init__.py
setup.py
test1.py
test2.py
LICENSE
README.md
в файлах test1.py и test2.py сделал по одной простой функции типа такой:
def print_two():
print('2')
заимпортировал эти функции в __init__.py,
ну и дальше загрузил этот package
python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/
, всё по инструкции
создал виртуальную среду и туда через pip установил этот пакет
, он отобразился среди установленных,
но проблема в том, что я не могу теперь его импортировать в самом коде
еще я не понимаю эту цитату из документации:
"Note that the import package is example_pkg regardless of what name you gave your distribution package in setup.py (in this case, example-pkg-YOUR-USERNAME-HERE)."
почему так ?и смысол тогда было прописывать своё название в setup.py
и еще, я же верно понимаю, что если я в своём package использую какие-то другие package, то они автоматически заархивируются в эти .tar.gz и их функционал можно будет использовать, даже если они сами не установлены на целевом питоне, на котором всё запускается?
сори за простыню, но всё это действительно необходимо понимать
https://packaging.python.org/tutorials/packaging-projects/
создал такую файловую структуру
packaging_tutorial/
example_pkg/
__init__.py
setup.py
test1.py
test2.py
LICENSE
README.md
в файлах test1.py и test2.py сделал по одной простой функции типа такой:
def print_two():
print('2')
заимпортировал эти функции в __init__.py,
ну и дальше загрузил этот package
python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/
, всё по инструкции
создал виртуальную среду и туда через pip установил этот пакет
, он отобразился среди установленных,
но проблема в том, что я не могу теперь его импортировать в самом коде
еще я не понимаю эту цитату из документации:
"Note that the import package is example_pkg regardless of what name you gave your distribution package in setup.py (in this case, example-pkg-YOUR-USERNAME-HERE)."
почему так ?и смысол тогда было прописывать своё название в setup.py
и еще, я же верно понимаю, что если я в своём package использую какие-то другие package, то они автоматически заархивируются в эти .tar.gz и их функционал можно будет использовать, даже если они сами не установлены на целевом питоне, на котором всё запускается?
сори за простыню, но всё это действительно необходимо понимать
append(a[:i], a[i+1:]...)
вот так в офф доке рекомендуют удалять элемент
a = append(a[:i], append(make([]T, j), a[i:]...)...)
а вот так расширяется слайс. Заебись читабельно, правда?
Ну для того что бы "предсказывать" следующую команду юзера, к примеру.
Но до этого в любом случае тебе надо будет взять датасет, его проанализировать и на основе этого уже предлагать.
Есть даже редактор кода, с подобной логикой, сам Гвидо рекламировал, название только забыл.
Если для тебя это перебор, то хватит и того что ты уже сделал, как по мне.
Избежание гонки данных - не единственная область применения блокировок
Итого мы получаем 3 строчки вместо 4 в исходном варианте, но при этом в твой "однострочник" гораздо сложнее внести изменения и также мы теряем в читаемости.
Типичный код долбоеба любителя экономить строчки
Код?
Ну, например, набираем "__builtins__", ставим точку, набираем "c" и жмём ctrl-space, тем самым вызываем автодополнение. При этом вызывается eval, который возвращает объект __builtins__, потом вызывается dir(__builtins__) и фильтруется используя начало названия поля "c". Так как в dir(__builtins__) всего два поля, начинающиеся таким образом, возвращаются только clear и copy.
>>18864
>Ну для того что бы "предсказывать" следующую команду юзера, к примеру.
Ну а если я только что написал
def myfunc():
return '2ch'
то "myfunc().__f" по идее должно автодополняться __format__, а если сразу же после этого я сделаю
def myfunc():
return '2ch'
то та же самая строка должна дополниться уже четырьмя вариантами.
А где взять такой датасет, который содержал бы все эти варианты, если определения функций только что написаны и они до этого ни разу никак не вызывались?
Единственной возможностью дать соответствующие варианты не вызывая функцию мне тут видится анализ её исходного текста. Но это как-то совсем уж нетривиально.
Все, иди нахуй. Ты просто добоеб, которому видимо в целом сложно читать, писать и связывать слова. Несешь какую-то просто несусветную ахинею, от которой у меня только испанский стыд.
Не понял юмора
Есть компьютер, на котором будет запущен скрипт на питоне (только стандартная библиотека) с пользователя не имеющего прав администратора, но имеющего доступ как минимум на чтение к корпоративным сетевым дискам. Нужно с помощью этого скрипта собрать определенный минимум информации о владельце и передать её средствами Интернет. С помощью модуля os, я думаю, что могу собрать достаточно, но я пока не отстреливаю как передать эту информацию себе без всяких писечек типа requests
Алсо, инфраструктура, в которой будет запущен скрипт будет хорошо защищена, поэтому, скажем, со стандартного outlook письмо на внешний для компании адрес скорее всего отправить не получится, но скрипту, при этом, гарантированно дадут запуститься.
Скрывать работу скрипта нет необходимости, т.к. закон в данном случае нарушаю не я, но информация должна быть передана.
Сердечно прошу советов
Если админ в твоей конторе не лыком шит, то хуй что у тебя выйдет. Нормальный фаерволл блокирует вход-выход любой неизвестной хуйни
> без всяких писечек типа requests
Сокеты.
> закон в данном случае нарушаю не я
Собрался воевать каким-то скриптом против целой компании? Ну-ну. Ваши юристы улыбаются и машут тебе.
не я пролил первую кровь
они пытаются получить доступ туда, куда им нельзя, так что это скорее к нашим юристам, но пока не ясно куда воевать
Если я гипотетически захожу на сайт какого-нибудь маил.ру пост-реквестом и таким же макаром отправляю письмо, такое сможет распознать и заблочить?
> не я пролил первую кровь
Это не значит, что тебе тоже можно. По итогу накажут обе стороны, но компания утрётся, а тебе будет пиздец. Так что трижды подумай.
однострочника порвало
> А где взять такой датасет
Парсинг гитхабовских свежих реп с пистоном, например.
> они до этого ни разу никак не вызывались
Для этого тебе изначально надо собрать данные по всем возможным вариантам(из доков питона или так же как ты делаешь сейчас - из локального интерпретатора), затем на него наложить данные с гита(по частоте юзания) и только после этого применять на практике.
Это твой пет прожект? Как-то планируешь развивать это в конечный попенсорс продукт?
Мне случалось запускать веб-парсеры на разных рабочих местах с неплохой защитой, не все так однозначно
Ох, стандартными либами много не навоюешь.
Собрать данные соберёшь, но вывести не сможешь.
Всё настолько огорожено что даже меил отправить не сможешь?
Требуется разбить регуляркой строчку вида:
'metadata=1.2 name=ston\\=e:su pershare UUID=eff4e7bc:47aea5cf:0f0560f0:2de38475'
на словарь
в value могут быть экранированные 2мя слешами знаки равно \\=
и value может быть составлено из 2х слов
я ничего лучше не придумал, чем отдельно регуляркой взять ключи и отдельно взять значения это вообще норм подход?
Я просто делаю сейчас по принципу "лишь бы работало",
а как делать правильно я понятия не имею
на всякий случай код и регулярка
https://regex101.com/r/uB4sI9/159
https://pastebin.com/cCkgRRXP
Судя по твоим вопросам/ответами ты не очень компетентен в оценке уровня защиты чего бы то ни было. Так что не нарывайся почём зря.
Ты только что Language Server Protocol
Как они True или Int сравнивают с None? При том что по отдельности ни True, ни Int не сравниваются с None.
Приоритет операций:
first_time or value > None
равносильно
first_time or (value > None)
or не вычисляет выражение справа от себя, если левая часть True
Вообще да, хуевый какой-то код.
у вас информатику в школе проходят?
у тебя никогда не будет сравнения с None потому что
при первом проходе first_time будет True, а при последующих largest будет int которое будет присвоено в самом первом проходе и т.д , после чего first_time станет False.
пересмотри код ещё раз прежде чем кукарекать. где изменяется переменная largest которая с none, перед первым выполнением сравнения?
Первое сравнение True или Какой-то интеджер.
я всё равно ничего не понял. попробуйте в интерпретаторе это вбить оно сравнивается. но вопрос один, как?
Спасибо тебе!
линукс дома на домашнем компьютере используют задроты всратые для поднятия своего чсв.
тебе что делать нехуй? зачем вообще сидеть в интернете с мобильного это же боль и неудобства. маленькое сенсорное дерьмо на котором ничего не видно, многие сайты неадаптированы да ещё и нормально ничего не напечатать.
Спасибо анонче
смартфоны пораша.
Как этот ваш пайтон подходит для сетевого программирования вперемешку с задачами для решения инфосек залуп (network hardening) ну и написания утилит для сетевой безопасности?
я на окнах сижу. спасибо большое за совет.
ну так хочу на c++ вообще писать там всякие драйвера и прочее. но т.к. ньюфаня ёбаная и порог входа на ++ высокий изучаю питон после него на ++ пойду.
Ты в обратном порядке делаешь. Нужно начать с плюсов и охуеть от безблагодатности, а потом перекатиться на питон и наслаждаться горами синтаксического сахара.
но python он же для веба. а я хочу драйвера писать и прочим задротством заниматься.
знает кто?
Загуглил за тебя, не благодари
https://www.quora.com/Can-Python-be-used-in-device-driver-development
Двач, решил поставить ide для Python. Выбор пал на komodo 11, т.к. ток вкатываюсь и pycharm и eclipse пока не нужны. Ставлю на свою ubuntu. Зашёл в гайд по установке, а там пикрил. Нужно ли это делать? Что такое activepython и для чего он? >>12752 (OP)
Нахуй ты ебешь себе мозги неюзабельным говном? Если хочешь упороться, ну максимум паука себе поставь, а вообще вскод\саблайм тоже покатят, хоть и последний не ide
хочу в IDE)
Неистово двачую.
ну это что-то с перменной связано поэтому без него никак.
Активпайтон это просто готовый набор для работы. Там стандартный набор либ плюс куча дополнительных типа джанги, реквестс и т.д на все случаи жизни.
Можно обойтись обычным питоном и батарейки самому ставить.
>> они до этого ни разу никак не вызывались
>Для этого тебе изначально надо собрать данные по всем возможным вариантам(из доков питона или так же как ты делаешь сейчас - из локального интерпретатора), затем на него наложить данные с гита(по частоте юзания) и только после этого применять на практике.
То есть всё равно без синтаксического анализа кода не обойтись. Но возникает следующая проблема: версии библиотек. Если анализировать на гитхабе всё подряд, там могут попасться исходники и для второго питона, и для неактуальных версий библиотек. В итоге собранные данные окажутся ошибочными и такое автодополнение будет вести пользователя по ложному пути.
>Это твой пет прожект?
Типа того. Изначально мне просто надоело постоянно набирать dir(...) в голой консоли.
>Как-то планируешь развивать это в конечный попенсорс продукт?
Да я не знаю, нужны ли людям такие велосипеды.
Последнее хотя бы возможно (cgi и не только).
> такое автодополнение будет вести пользователя по ложному пути.
Верно мыслишь, видимо вначале надо будет спарсить для каждой версии пистона данные и в зависимости от версии юзера выдавать посказки.
А вот с либами уже интересней, надо думоть.
> Да я не знаю, нужны ли людям такие велосипеды.
Почему бы и нет? Ссылочка на гит есть? Или фейкопочта.
/home/username/lib/python3.6/site-packages/ipykernel_launcher.py:34: RuntimeWarning: divide by zero encountered in log
Это не ошибка, а какбы предупреждение. Просто чтобы оно не отображалось. Из-за паранойи не хочу юзернейм палить.
>how to disable python warnings
https://stackoverflow.com/questions/14463277/how-to-disable-python-warnings
Нет
Правильно ты сделал, единственное, надо было самому писать прогу для кривой коха, а не пиздить где-то. В мфтишном курсе 8 практика на рекурсию, там целая куча заданий на фракталы и есть гифки, по которым легко понять, как примерно двигается черепашка, прорешай эту практику смотря только на их страничку и страницы этих кривых в википедии
Ну sublimeREPL поставь, он точно поддерживает
У второго питона есть специфические черты в синтаксисе, по которым его модно отличить. Мне кажется лучше парусить исходники с pypi, там указывается с какими версиями совместима либа. Да и вообще, я бы на твоём месте дропал бы второго пистона, это доисторическое говно динозавров нахрен никому не упало, только дополнительные ресы на него потратишь, а актуальность будет мизерной.
Вот работаю я в своей ветке. Создаю файл с миграциями, применяю миграции. В это время в кто-то тоже в своей ветке создал файл миграций с таким же номером как и мой и применил их. Не будет ли конфликтов в самой базе?
С кодом то всё точно будет нормально. Просто перед мерджем с мастером меняешь зависимость миграции и её номер.
После мерджа в мастер всегда делаю migrate --fake, но сейчас почему-то засомневался что ничего не ломаю
Мне кажется я не могу спроектировать программу, представить ее архитектуру. Из за этого даже не начинаю писать код.
Я мог забрасывать программирование "для себя" на срок от месяца-два до пол года+. И ничего, возвращался со свежей головой и идеями.
Ты просто тупой.
Ну конечно не все работает в текстовом-то редакторе.
Сделать ИДЕ можно, но с ограничениями и еблей.
Спасибо большое, анон. Понял. Последую твоему совету.
Ну я её заимствовал т.к. условие в задании позволяло. Ну так я знаю алгоритм по которому фракталы делаются, поэтому я бы её скорее всего написал бы
Мне на галеру нужно пахать, в ближайшие полгода устроиться было бы неплохо.
Не понимаю почему мозг не запоминает примеры кода. Должен ведь анализировать и предлагать мне варианты применения, сука, горит ппц.
Просто почаще сталкивайся с реальными задачами. Я, к примеру, в голове держу только полезные мне модули, которые недавно использовал.
Все остальные полезные куски кода и примеры применения лежат на приватном битбакете, куда скидываю абсолютно все, что работало.
Да в том то и дело, что в реальных задачах ступор. Ну по книжечке возможно я могу найти подходящее решение, даже немного подправить под себя. Оно так и должно быть? Без книг вообще ступор, на уровне абсолютного примитива только пишу.
Важен результат, всем похуй на то, как ты пишешь, особенно, если этот код после тебя никто больше трогать не будет. Придрочишься, не переживай.
Ясен хуй будет проблема с миграциями.
Либо перед каждым тестом делай и накатывай дамп бд либо же напиши скрипт, который будет поднимать тебе бд локально и заполнять ее данными.
То что изменить нельзя, но, в принципе, можно сделать так что после копирования не сохраняется
Будь добр, ответь на волнующий вопрос. Я эту хуету смогу для теста запустить на домашнем компе, чтобы она отвечала написавшему?
Да, если будешь лонгполл юзать, если же на коллбэках то нужен или сервак или нгрок скачай.
Понял, спасибо. Если лонгпол то пропердится сам, если не лонгполл то нужно помочь пропердеться.
https://realpython.com/python-async-features/
https://realpython.com/async-io-python/
Ещ] аноны видое с ютуба советовали, но линк проебан
так у тебя запятой нет.
people = {'girl1' : 'Анна', 'girl2' : 'Наташа'}
вот это попробуй, после анны запятая должная быть
ну ты написал что у тебя ошибка синтаксиса, я тебе сказал чтот запятой нет. у тебя там просто кусок кода без назначенных перменных у тебя и people будет ненайден. хули ты хочешь, кинул блядь кусок кода. пошёл нахуй отсюда
>>20127
Спасибо, ананасы. Еще вопрос по асинкам:
https://aiohttp.readthedocs.io/en/stable/
Вот здесь в документации пример лупа такой, я по-моему на дваче читал что в последних версиях питона это неправильно?
он тебе щас выдвинет сообщение о том что переменная не найдена. этот еблан написал что у него синтасическая ошибка и нужно фиксить, ему сказали как. он пофиксил и теперь этот дебил предъявляет хули в его вырванном куске кода перменные не находятся. не отвечайте этому клоуну. пиздец просто откуда такие маньки лезут, очередной вайтишник в треде
Только что понял и хотел написать, что girl1 я не занес в апострофы, но спасибо за ответ. У меня башка уже дымит просто, я с 10 утра сижу дрочусь, надо передохнуть
Хуй саси
Нет, это к версиям питона отношения не имеет.
Я про конструкцию ИФ и т.д.
А насч]т создания лупа и т.д. то почти да, просто начиная с 3,7 можно писать асинкио.ран(мэин()), но можно и как на пике делать. Особенно это полезно если хочешь новый ивентлуп создать и т.п.
у тебя превосходная усидчивость
сколько тебе лет?
Могут быть поломанные данные.
Смотри как подобные задачи решают другие. Конечно, лучше всего будет, если ты сначала сам попытаешься решить задачу хоть как-нибудь и только потом посмотришь чужие решения. В этом нет ничего плохого, 90% программирования заключается в поиске готовых решений и адаптировании их для своей задачи
В некоторых главах глаза кровоточат от обилия непонятной хуиты.
Есть тут осилившие этот талмуд? Помогло в итоге?
Тупо взял и начал писать на питоне, не знаю зачем вам талмуды эти. Язык простой как хуй знает что.
Если есть опыт погромирования то понятно все с тобой. А еслм нафаня совсем? Даже без математической базы.
Язык то простой, а вот как это говно комбинировать хз.
Вот у функции есть аргументы
def func1 (a, b)
Как в a и b передать результат выполнения другой функции, например input()?
Почему шутка? Во всех видеоуроках говорят как прописать аргумент при вызове функции вручную. А если мне надо не вручную?
Тоесть я должен оьязательно обьявить переменные a, b в самой программе? И область видимости с моей def функцией будет одна и та же? ( a и b будут теже самые) Туповато както, без переменных нельзя сразу в скобки засунуть?
Почему бы тебе не начать самому пробовать свои догадки? Это быстрее чем капчу тут вводить.
От малого к большому, работает не только в программировании. Буквально от 10 строчных задачек до 20-50-100 строчных.
Где-то тут сайт был с задачками, тупо все прорешай прочитав раздел в котором они.
https://pythontutor.ru/
https://ideone.com/a8DHrb
Не понимаю,что не так?
Сап, как поменять местами папки в репрозитории на гитхабе? Никак не могу понять
По-моему, там всё не так.
Это какая-то бессмыслица.
Остатки там у тебя везде от деления на 2.
В последнем else чего-то не хватает.
Вложенный цикл for лишний.
len(arr) <= 5000 лишнее.
Да и условие while a >= 1 прямо перед if a == 1 лишнее.
i += 1 не на месте. Тут я не могу доказать, ибо это работе не мешает, просто не здесь оно должно быть, и всё.
Ну и, наконец, если процедура работает правильно, то добавление первого элемента arr вручную совершенно излишне.
[1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30, 32, 36, 40, 45, 48, 50, 54, 60, 64, 72, 75, 80, 81]
А ты сам всего этого не видишь?
Я бы просто в множество набил сперва n двоек, затем тройки вплость до n * 2, затем пятёрки так же. Преобразовал в список и вывел первые n чисел.
Насчет того,что там остаток от деления на 2,да я просто не ту версию кода скопировал. Вот что получилось после твоих советов
https://ideone.com/2xT1Md не хочет i+=1 делать
Рассылка должна идти обычными хттп пост запросами.
типо 2,4,8,16.... ну и потом что ты написал
так число может быть комбинацией из любого количества 2 3 и 5
Спасибо (что да блядь)
А если нет то и вообще нет смысла
Вот, например,
если у меня есть функция, которая разбивает строку по запятым на спиок слов,
я точно знаю, что этих слов должно быть 3
какие тесты я должен для неё прописать ?
Допустим:
Проверка на правильный тип данных возвращаемого значения
Проверка на правильную работу функции (забить выходной список вручную для небольшого примера)
Проверка на правильное количество возвращаемых элементов в списке
Я немного упростил свою реальную функцию, у меня еще добавятся тесты для разных специфичных случаев,
но есть ли еще какие-то основные тесты, которые я упустил?
И еще, если,допустим, делаешь собственный парсер и оформляешь его , как питоновский пакет,
нужно ли там прописывать собственные исключения, например для случая, когда на вход подана строка неправильного формата?
Или достаточно выбрасывать в коде уже существующий тип исключения, например ValueError, написав лишь там своё сообщение ?
а=input()
Примерно что должно быть.
def test(a, b, c=a+b):
return abc
Но мой пример не работает
Я могу ошибаться, но вроде такую хуйню добавили в питоне 3.8
Сколько сейчас пайтон джун (без опыта) может получать в мск? Хотя бы 50-55 реально выбить?
>Вопрос: насколько это через жопу?
Да вообщем то не через жопу, а нормальное вполне решение, подтверждающее что твой интеллект работает.
В таких случаях почти всегда есть решения лучше.
Но назвать это "через жопу" не получается, т.к. это очевидно разумный путь, который и должен был вначале в башне сформироваться.
>Объясните мне, как в питоне по нормальному копировать списки?
Чёрт, че развонялся? copy() и всё.
сам же пишешь:
>И главное, где про питон не почитаешь- ах какой элегантный язык.
На собесе что спрашивали? В чем заключается сама работа?
Как жаль, что версию 3,7 не будет ещё никто юзать пол года как
Это копия, сохраненная 16 ноября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.