Это копия, сохраненная 21 июля 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Запускай из терминала/idle
Возьми редактор с терминалом
Возьми ОС с нормальным терминалом
Юзать в этих целях input() - костыль.
Так, блядь, подожжи. Почему на ОП-пике сишный с логотипом питона?
cmd было достаточно,спасибо
Ты просто тупой, не видишь очевидного.
Ну и саси!
Эй, петуханы, как вы думаете, почему мне хочется раскроить череп тому, кто писал эту документацию?
https://docs.python.org/2/reference/index.html
Я блядь ожидал референс синтаксиса языка, а не абстрактное описание его BNF-формы блжад. Только не говорите, что синтаксис описан в туторе...
А ты скажи нам, какого хуя ты сидишь на 2 питоне? Пиздуй на 3 версию и не еби мозги!
>This reference manual describes the syntax and “core semantics” of the language
Читай туториал и СТЛ.
import socket
pagename = raw_input("Enter page URL: ")
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('pagename', 80))
sock.send('GET pagename HTTP/1.0\n\n')
Через threading, после запуска самого аппа, какого-то хуя спавнится второй процесс, а Celery+Redis - ебаный оверкилл. мне и без них говна в виде гуникорна и супервизора хватает Какого черта, анон?
Нюфак? Хуярь дальше, иногда нюфагу сложно понять как надо мыслить, со временем придрочишься.
>пол часа
Ну все, пиздец теперь.
Просто иди дальше, скоро освоишься. И да, количество строк никогда не говорит о хоть о чём-то (кроме того, что в меньшем количестве кода обычно меньше ошибок, но это не к месту)
Мне там тоже нехило припекает с этого. Хотя и задачи в elementary лёгкие, но когда смотришь другие решения создаётся ощущение что вот прямо кто-то выебнуться хочет, то блять всё в одну строку лямбдой-функцией захерачит, то импортирует всякие модули чтобы в итоге уложиться в 3 строки. Нету нормального и лаконичного решения в которым бы разобрался каждый, нет же, надо написать неудобный код в котором ньюфаг не разберётся.
Обычно они сначала пишут говнорешение, а потом уже как бы ВЫЕБНУТЬСЯ чтобы все охуели как они могут. В целом, всё как обычно же.
Сначала задачу решают ВЛОБ, а потом оптимизируют.
> использовать готовые модули вместо ржавого велосипеда
> map, reduce, for вместо трёхэтажной i = 0; while i<n: i += 1 "IndexError: list index out of range" не читаемой лапши
> ВЫЕБНУТЬСЯ
Я в душе неебу о чем там задачи, так что я даже не понимаю что ты мне говоришь и чего от меня хочешь, лол. Просто говорю как всякое олимпиадное программирование дрочат обычно, ну схему.
Учат понимать как решать задачи ВЛОБ и быстро-быстро осознавая каждый шаг, а потом уже как сделать это нормально.
В том-то и дело, что решение ВЛОБ, что обычно применяется на олимпиадках на чекио не котируется вовсе. Такое решение будет всегда на дне.
Ты не совсем понимаешь как на олимпиадках делают. Там учат разбирать ВЛОБ, а потом уже делать оптимизировано, иначе твои О(н) в хуевой степени никого не удивят и будешь на дне.
Поэтому после понимания задачи учат её делать ПРАВИЛЬНО. Кто тебе мешает тоже самое делать на чекио? Аллах?
Все также делают, на всех подобных сайтах.
На чекио сложность алгоритма не котируется. Есть несколько задач, где с неправильным™ алгоритмом ты будешь ждать вечность, но это скорее исключение. Чекио — олимпиадка не по скорости и памяти, а по краткости и "красоте" кода.
Я вот все равно не понимаю какие задачи выполняет питон не смотря на гайд, я привык что для скриптинга и автоматизации простых рутинных задач
https://docs.python.org/2/index.html
Пиздец, да откуда вы лезете со своими "какие основы обязательно знать" и прочей хернёй - берите и идите кодить, можно ещё выбрать книжку какую-нибудь и параллельно её читать, а уже с вопросами, которые вам не нагуглились и, уже подумав какое-то время, вы их так и не смогли сами решить, приходите сюда.
Второй питон, как же вы заебали. Какой, блядь, смысл начинать с версии питона, которая сейчас вообще существует хоть в каком-то количестве только из-за того, что некоторые, для кого-то критичные, библиотеки ещё не перенесли на третий. Тонко намекаю - для новичка критичных библиотек, которых нету на третьем питоне, существует ровно ни хуя.
Пусть тогда на фортране учится, или еще на каком говне мамонта.
>По второму много материала для новичков, а переход на третий - вопрос парочки вечеров и пиваса с кальмарами.
Блять, ну это жи лаконичный пифон, а не раздутая до невозможности жаба или сисярп. Чтоб выучить питон до приемлемого уровня даже последнему нубу достаточно какой-нибудь книжки вроде dive into python3 и документации с python.org. Все.
Последний раз кальмаров пожрал и три дня жопой ссал
Отличия не только в синтаксисе.
Прогаю первый раз в жизни, учебники не понимаю, так как необучаемый дебил, не могущий в концентрацию.
Хочу познать силу рандома, чтобы с imgur тянуть рандомные фотографии в мой комплюктор.
Как это реализовать?
Вот мой первый (самый первый) говнокод, который я и то, грубо говоря копипастил.
print ('SURPRISE, MUTHAFUCKA!');
import random
a = int(input("a -> "))
b = int(input("b -> "))
if a > b:
print(a)
elif a < b:
print(b)
print(random.randomint(a,b))
В правильном направлении двигаюсь, или хуй там?
Чот ты усложняешь. import random; print(random.randrange(1,100))
Ну иди рулеточки в /b/ покрути. Такое то занятие.
[code]
for i, v in enumerate(self.values):
if v < 0:
self.values = 0
[/code]
Жопой чую - можно это сделать короче. Как?
Зачем тут вообще enumerate? А по поводу самого вопроса, мне на ум приходит только вот такой костыль:
self.values = 0 if (for elem in self.values if elem < 0) else self.values
enumerate затем шоб заменить in-place по index, а не делать self.values = для всех values разом.
Тут в прошлом треде спрашивали примеры сайтов на джанге. Пожалуй стоит упомянуть про эти:
https://github.com/django/djangoproject.com
https://github.com/python/pythondotorg
Есть база этих фраз. Как мне научить мой говнокод обращаться к этой базе? Она у меня в txt лежит.
Пилить их в код?
Как я вижу это:
1) Каждой фразе присваивается свой номер в базе.
2) Впиливается генератор чисел
3) При генерации числа код обращается к базе и берет фразу под цифрой.
Верно мыслю?
Мне всё понятно и хорошо. Насчёт охуенности- вроде нет, но качественно, да я и SICP c Лутцом почитывал.
Я не осилил стандартную библиотеку, не мешай мне выебываться.
Короче, вот у меня есть этот код:
import random
lines = open('./zs.txt','r').readlines()
print(lines[random.randrange(0, len(lines))])
input()
После инпута мне надо заново повторять весь цикл и так пока программу не закроют.
Как это сделать?
while not input():
print('что-то там')
Выдашь ему не пустой инпут - не просто нажмёшь интер, а напишешь чего-нибудь, - он сразу выйдет из цикла.
import random
print ('Генератор фраз из "Зеленого Слоника"')
lines = open('./zs.txt','r').readlines()
while not input():
print(lines[random.randrange(0, len(lines))])
input()
Как меня доебали эти вендопроблемы, я их видеть уже не могу, все уже, блять.
Кодировка в консоли винды cp866, в ней нету множества символов юникода, тебе попался один из них. Самый просто вариант сделать:
print(lines[random.randrange(0, len(lines))].encode('cp866', 'replace').decode('cp866'))
В таком случае все символы, которые питон не сможет перевести в твою кодировку, он заменит на ?. Также можно 'replace' заменить на 'ignore' и тогда он эти символы просто будет игнорировать при инкоде.
Советую сразу навернуть что-то типа http://nedbatchelder.com/text/unipain.html , очень помогает разобраться, что вообще происходит
Что сказать то хотел?
А?
Чет совсем охуеть.
Ни в чём, быдло так зарезервировало место для кода. Пацаны используют pass.
Cron вряд ли будет работать на винде, а запускать апп я собираюсь именно на ней. (Тупо из-за network стораджей)
Энивей, решил черещ APScheduler.
from unittest import TestCase
from unittest.mock import patch
import my_class
class MyTest(TestCase):
@patch("my_class.MyClass")
def test_hello(self, MyKlass):
obj = MyKlass()
obj.hello.assert_called_with(x='y')
# WTF?
my_class.MyClass().hello(x='y')
unittest.main()
> raise AssertionError('Expected call: %s\nNot called' % (expected,))
AssertionError: Expected call: hello(x='y')
> Not called
что такое?
меняю assert_called_with на:
self.assertEqual(obj.mock_calls, [call.hello(x='y')])
работает.
штабильность.
Спасибо. Хуй знает пока, как разобраться, твои строки не работают что-то.
Буду дальше копать, за наводку спасибо :3
Я жопой прочитамши, но:
1) if any(x < 0 for x in self.values)
2) if min(self.values) < 0
Бака, которая автоформаттер в том треде заводила - я тут попробовал и увидел, как оно мне "поправило индентацию", убрав стейтмент под вышестоящий цикл. Причем, в моем Sublime это сделали оба существующих форматтера, хотя, может, они одну либу используют. Ситуация тем прикольней, что после циклов часто идут операции, которые делают что-то тяжёлое со всем итераблом, который этим циклом создавался.
После этого все автоформаттеры для меня - мертвы.
autopep8 то? Это был я. Ему надо отдавать весь сорец, а не кусок, иначе он не может просчитать индентацию и делает хуйту. В остальном все норм пока. Может сублим его криво использует.
Клиентская логика на js. Не интересно, думал там brython какой.
Маловероятно. Три года устанавливателем гемов для стартапов-однодневок как-то не очень.
В наличии http://pastebin.com/Lxx7qwwR
Как сделать, чтобы после ввода pluma в консоли открывалась плума? И помимо этого цикл с отслеживанием буфера обмена не останавливался.
Сделал, чтобы после копирования в буфер открывалась плума, но заебался копировать.
Ну понятное дело, что не в Гугол к Гвидо ван Россуму. На такой же уровень, устанавливателя пакетов.
execnet. Вроде еще какие-то были, но я забыл.
Зачем, например, вызывать функцию так:
func(*arg)?
При объявлении все понятно - для принятия неограниченного числа аргументов функцией.
Но при вызове что-то нелогично получается передавать неопределенное кол-во аргументов, например, если вызываемая функция имеет ограниченно их кол-во.
Гвидо не в гугле давно. Языки не столь похожи чтоб 3 года одного считать за 3 года другого. Но знание руби таки поможет шустренько осилить питон. Да вообще вся мэйнстримная динамика похожа.
А вот как работодатель на это посмотрит, и как ты будешь доказывать что не верблюд - вот тут хз.
Очевидный ipython-notebook http://ipython.org/ipython-doc/1/parallel/parallel_process.html
Еще наверное pySpark, правда не знаю, как там с ssh.
Распаковка списков в позиционные аргументы.
[code]
def func(arg1,arg2):
return arg1,arg2
In: func(*[0,1])
Out: (0, 1)
[/code]
Сойдут.
Решил удвоить анона и ещё раз написать, что это распаковка, и делается так частенько. Заменяет конструкции в стиле fun(list[0], list[1], list[2]) на няшный fun(*list).
УМВР, но, может, Сублим что-то дополнительное делает.
Не блогодори!
http://blogs.msdn.com/b/wpfsdk/archive/2007/10/02/data-validation-in-3-5.aspx
Как объявить в нем хрень по типу:
> public string this[string name]
в html форме поля с одинаковым именем:
<input name="fields" />
<input name="fields" />
...
параметры POST запроса:
{fields: ["hello", "world"]}
нужно сделать форму:
class MyForm(forms.form):
...
может я не правильно что-то делаю. смотрю в forms, fields, widgets. пытаюсь разобраться и написать свой field и widget. но что-то мне кажется слишком уж сложно и что-то упустил. есть какая-то библиотека?
В парсере. Чтобы подгрузилось больше ссылок и я смог по всем пройтись.
Причем здесь питон вообще? Во вкладке нетворк посмотри куда запрос шлется при клике на батон.
Сейчас использую такое:
import os
os.system('cls')
но всё равно остаётся нолик(почему?), а я хочу полную очистку.
первая же ссылка в гугле
http://stackoverflow.com/questions/18937058/python-clear-screen-in-shell
написал widget и js для добавления полей.
может не понятно написал, мне нужно было по кнопке js добавлять поле: click Add field, поле добавляется.
привык с рельсами, что все уже есть. с другой стороны, это не сложно и теперь знаю немного код форм, полей и виджетов и что-то другое будет легче написать.
Например есть два скрипта: один собирает грабом прогноз погоды и записывает его в sqlite3, второй берёт данные из базы и строит по ним диаграмку с помощью matplotlib. Но захотелось запускать их из браузера, для этого придумал простой html файл с двумя кнопками, которые пока никуда не ведут.
Хотелось бы чтобы эти кнопки запускали скрипты а диаграмка появлялась на странице. Как организовать такое общение? Если пойму принцип, прогрес-бар или сообщения об ошибках сделаю сам.
Пока что это просто три файла, которые лежат на рабочем компе.
Ок. Спасибо.
Не та картинка, чорт.
Аддон для ФФ - перенаправляет из гугла на нужную версию доков.
Как такое решать? Рубить всю страничку на куски, разделитель - пробел? Помоги анон, а то книгу по джанге прочитал, а осознание нахуя эта джанга нужна не пришло.
>Работать ларек должен на django
А почему такой выбор? Есть же куча более оптимизированных и простых решений.
http://pastebin.com/WvX39S9d
В Объявлении win_posX, win_posO запятых между элементами не хватает.
WebPy:
+ Очень простой в освоении, я буквально за 5 минут осилил тутор и за 15 пробежал часть API.
+ Очень понятные инструкции по нормальному деплою (не крутить же серьезный проект на встроенном говносервере для отладки), легко развернуть отдачу статики на отладке. Но это касается и двух других фреймворков.
- Застрял на версии 0.37
- Нахуя пихать искаропки свои всратые обертки для БД и говношаблонизаторы??? Я лучше наверну сам то, что мне нужно.
- Референс АПИ на сайте сдохший
- Заброшен
Вердикт: норм для людей, которые только начинают заниматься вебом - быстро поюзать для создания гостевухи и убежать в ужасе. Но успел даже мелькнуть где-то в Яндексе (может до сих пор крутится на одном из сервисов)
CherryPy
+ Весьма промышленный по духу, т.е. рассчитан именно на покрытие задач связанных с get/post/cookies/sessions/auth/etc...
+ Не пихает из коробки всякую хуйню, ставишь mysqlalchemy и mako сам и радуешься.
+ Неплохие доки
- Школьнику будет трудновато.
Flask
+- Самый жирный по докам и фичам из всех этих. Из коробки идет шаблонизатор Jinja 2.
+ Очень серьезная документация, хорошая
+ В доках дохуя "рецептов"
Ну в общем я бы выбрал CherryPy или Flask для работы над несложным сервисом.
Олсо все три фреймворка требуют от вас того, чтобы вы сами понимали, как построить MVC или MV приложение с многофайловой структурой, а не писали простыни говнокода. Тонкие фреймворки рассчитаны либо на мелкие задачи, либо на людей, которые смогут сами выстроить не пердоликую архитектуру для сервиса.
олсо можно не пердолиться и просто накатить рельсы
WebPy:
+ Очень простой в освоении, я буквально за 5 минут осилил тутор и за 15 пробежал часть API.
+ Очень понятные инструкции по нормальному деплою (не крутить же серьезный проект на встроенном говносервере для отладки), легко развернуть отдачу статики на отладке. Но это касается и двух других фреймворков.
- Застрял на версии 0.37
- Нахуя пихать искаропки свои всратые обертки для БД и говношаблонизаторы??? Я лучше наверну сам то, что мне нужно.
- Референс АПИ на сайте сдохший
- Заброшен
Вердикт: норм для людей, которые только начинают заниматься вебом - быстро поюзать для создания гостевухи и убежать в ужасе. Но успел даже мелькнуть где-то в Яндексе (может до сих пор крутится на одном из сервисов)
CherryPy
+ Весьма промышленный по духу, т.е. рассчитан именно на покрытие задач связанных с get/post/cookies/sessions/auth/etc...
+ Не пихает из коробки всякую хуйню, ставишь mysqlalchemy и mako сам и радуешься.
+ Неплохие доки
- Школьнику будет трудновато.
Flask
+- Самый жирный по докам и фичам из всех этих. Из коробки идет шаблонизатор Jinja 2.
+ Очень серьезная документация, хорошая
+ В доках дохуя "рецептов"
Ну в общем я бы выбрал CherryPy или Flask для работы над несложным сервисом.
Олсо все три фреймворка требуют от вас того, чтобы вы сами понимали, как построить MVC или MV приложение с многофайловой структурой, а не писали простыни говнокода. Тонкие фреймворки рассчитаны либо на мелкие задачи, либо на людей, которые смогут сами выстроить не пердоликую архитектуру для сервиса.
олсо можно не пердолиться и просто накатить рельсы
А что бы все охуели как я могу! А если серьезно только для резюме. Ну давай рассказывай, что за лучшие варианты.
можно использовать map вместо генераторов, и вычислить неизменяемую часть один раз, вместо вычисления каждый раз
можно суммировать boolean в генераторе: sum(True for x in range(15))
try/except лучше чем проверка if len(xs) > n
if xs вместо if len(xs) или тем более if len(xs) == 0
"string" False будет ""
* можно совать генератор в вызов функции без дополнительных скобок
Не богано.
Сук педальная разметка. "string" * False, на остальное похуй.
Блять, как же я завидую хуесосам которые живут в больших городах. Сук, каждый блядский месяц какие нибудь шкурсы и еще есть возможность трудоустроиться. Пидары
В украшке большая часть всяких курсов и стажировок в харькова, львове, етц. Там просто недвижимость очень дешевая и можно нонстоп хуячить все эти курсы компаниям, а в киеве всякая поебота как правило и конкуренция заметно выше.
>sum(True for x in range(15))
Болливудская замена len?
>if xs вместо if len(xs) или тем более if len(xs) == 0
Неоднозначно.
Вроде как советуется это только для сиквенсов и только для проверок на их пустоту, то есть "if xs" и "if not xs". Но не "if 5 - x", когда хотим ноль в качестве фолса, в этом случае нужно "if 5 - x == 0"
>try/except лучше чем проверка
Не лучше, а EAFP vs LBYL.
Зачем, если есть джанго?
А как это можно сделать руками, средствами стандартной библиотеки? В виде последовательности шагов, мне бы сам принцип понять .
Ну чисто теоретически. Тебе нужны:
-Веб-сервер, принимающий запрос и запускающий нужный скрипт.
-Сам скрипт, который делает необходимые вычисления и строит графики.
-Веб-приложение, которое отдает информацию пользователю.
Для всего этого есть готовые решения. Но ты можешь это сам делать. Я никогда не пользовался, но в питоне есть стандартный модуль simplehttpserver.
Юзаю Flask, очень впечатлительные положения от него.
Единственный минус в том, что из коробки нет поддержки методов UPDATE и DELETE через скрытое поле в форме, в то время как это умеют многие другие фреймворки (те же рельсы).
Короче, рикаминдую такой фреймворк.
Фласки и прочие джанги это всё синхронные фреймворки. И с вебсокетом у них не очень хорошо. Можно конечно и http запросами ограничиться, но это же неинтересно.
Спасибо.
>Веб-приложение
Значит весь html будет внутри питоновского скрипта как тут?
http://pythonworld.ru/web/cgi-3.html
Второй вопрос: можно ли обойтись без сервера (хостить я пока ничего не собираюсь), чтобы страница общалась с питоновскими скриптами через JS? Кажется, это в принципе возможно как тут:
http://community.southpawtech.com/content/example-js-execute-server-side-python-and-alert-debug-log
> замена len
Генераторы не умеют в len().
Для длинных генераторов (>20), такой костыль будет быстрее:
deque(enumerate(range(999999), 1), maxlen=1)[0][0]
> Неоднозначно
if x: вызывает x.__bool__()
if x == 0: вызывает (x.__eq__(0)).__bool__()
int.__bool__ реализован как:
return self != 0
так что в случае int, явное сравнение с нулём излишне.
>так что в случае int, явное сравнение с нулём излишне
Вопрос в самом стиле - мол, нехуй код обфусцировать и устраивать самому себе такие подляны - я в каком-то пепе читал про это. А мне и самому не нравилась в K&R эта манера, от которой разило какой-то машинной логикой. Собственно, я и стринг всегда сравниваю с пустой строкой.
>Генераторы не умеют в len().
Точно - всё думал, где я всё же видел эту конструкцию.
У меня получилась такая сборка: CherryPy, Jinja 2, python-mysqldb, Routes. Работает как часы. Осталось подключить sqlalchemy и получить такое же монструозное говно как и джанго, но с пердольской самопальной архитектурой. Вот была бы какая-нибудь более тонкая обертка над БД, чтобы можно было через паттерн activerecord работать в духе
fields.name = 'vasyan'
fields.age = '51'
db.insert('my_table', fields)
Может кто-нибудь знает что-то такое и не очень всратое?
Короче, у меня есть dict, нужно чтобы по этому дикту искало слова в предложении, я создал пустой list, переменную str в которую вводит юзер предложение и потом цикл for перебирает по букве это предложение, когда управляющая переменная (или как она там назыавется) равна пробелу к этому list добавляется слово, потом элементы list перебираются и если элемент есть в dict, то выводится значение соответствующее ключу, но нихуя не выходит:
\tif choice == 0:
\t\tsentence = []
\t\tsentence_inp = input("Введите предложение на русском языке: ")
\t\tword_inp = ''
\t\tfor n in sentence_inp:
\t\t\tword_inp += n
\t\t\twhile n == ' ':
\t\t\t\tsentence.append(word_inp)
\t\tfor word in sentence:
\t\t\tprint(dict[word])
Где у меня бесконечный цикл?
Отступы съело, не видишь? В питоне отступы определяют смысл кода. http://pastebin.com/
Предложение на слова разбей функцией "str.split()". Вернёт тебе то, что ты хотел иметь в lst. Велосипед выпили, ошибка в первую очередь в нём. https://docs.python.org/3.4/library/stdtypes.html#str.split
Последний цикл выдаст кейегор, когда слова из предложения не окажется в дикте. Проверяется так: "if word in dict", и там уже можешь делать "print(dict[word])".
Мне вот что-то sqlalchemy вообще не доставил почему-то.
> Где у меня бесконечный цикл?
Как эту хуйню надо было написать тебе уже сказали. А если об ошиках, то у тебя бесконечный цикл может быть только while (потому что другие циклы заведомо конечны). А в while, если присмотреться, условие выхода никогда не сработает, потому что n не сбрасывается.
бамп чтоли...
Есть парсер МП3 файлов из ВК.
Парсинг идет в один поток. Т.е. файлы идут по очереди.
Треки, на которые ведет битая ссылка скипаются.
Но попадаются треки, которые скачиваются со скоростью в десятков байт/с. Как можно организовать обнаружение и скип, в дальнейшем таких файлов? Качаю через urllib.request
Спасибо.
Спасибо. Как я понимаю, замерять скорость скачки и обрывать соединение, если скорость мала, в таком случае невозможно, если реализовывать в один поток?
многопоточность пока еще не изучил
местами доставило
Ну и хуле мне делать с этим респонсом?
Какой отправить запрос чтобы провернуть нажатие баттона?
Помоги, анон!
Аноны, помогите, пожалуйста.
Почему так? Где может быть ошибка?
Устанавливал через pip, собирал через гит. Одна и та же ошибка..
На windows установил через pip - все работает.
Предположу, что устанавливаемый модуль написан на втором пистоне, а ты пытаешься установить на третий.
Открываешь вкладку Нетворк, щелкаешь по кнопке, браузер отправляет запрос и он появляется в этой вкладке, щелкаешь по нему, изучаешь заголовки и куки, копируешь в параметры своего запроса, посылаешь его. Короче эмулируешь браузер руками, он же сам такие же запросы шлёт.
Нашел в чем причина. Почему-то Python на Raspberry Pi не переваривает u перед строковыми литералами. Запустил иксы на RPI - в Python IDLE u даже не зеленеет.
Это странно, Пайтон-то 3.2.3 выше обновляется только пересборкой пакетов
В общем, поковырял немного исходники, поудалял "u" перед строками - пакет установился правда, тесты не установились, ну да и черт с ними
Спасибо. Вот проект в GH, если интересно
https://github.com/dimka665/vk
>как построить MVC или MV приложение с многофайловой структурой
Где б почитать/посмотреть об этом подробнее?
В исходном коде других фреймворков. Django, Rails, Laravel, YII2. С расчетом на то, что в python/ruby получаются не такие простыни говнокода, как в PHP, да и python инструмент посильнее для того, чтобы сделать максимально прозрачное приложение (без кучи инициализации в контроллере, лаконичный route-config). Структуре папки модели лучше уделить побольше внимания, если планируется использовать datamapper-ы и миграции.
Поржал, как дротаны могут смеяться и рассуждать о коде из 80 символов вместо 79. Не думаю, что джанго-быдло смотрит подобные ролики.
Такое-то ОКР. Сам уйму времени трачу, когда для души или публичное что-то пилю - сортирую импорты, расставляю пробелы в докстрингах, вставляю пустые строки, выстраиваю JSON-образные столбики из длинных вызовов, рефакторю компрехеншены, стараюсь не смешивать EAFP и LBYL - заменяю тестовые ифы трай-экцептами или наоборот. Обязательно стараюсь "облегчить" строки - использовать более краткие имена переменных, поделить.вложенные.вызовы() на несколько строк, отобью пробелами, чтобы повторяющиеся стейтменты с общей идеей читались с первого взгляда на первую строчку. После чего, естественно, слежу, не стало ли только хуже - если стало, то отхожу от стандарта. Питон - отдушина для аутистов вроде меня. Я ещё файлы на компе постоянно сортирую.
Зато когда надо что-то сделать быстро - выходит лютая О(n^3) дрисня с пирамидами говна, похожая на обрушившееся здание.
А, у него там такая диспробелия и дальше. Видимо, на ноуте без очков не видит.
Одна из любимых Йоб. Походит под все ситуации.
Для современного ничего нет потому что питон не нужен когда есть дг, а под него есть асинхронный догевеб.
Да заебал ты уже форсить своё говно. Есть торнадо и айохттп.
@pyos, залогинься.
Энивей, рано или поздно разберусь, но несколько вопросов хотелось бы прояснить прямо сейчас.
1. Нужна ли под виндой какая-нибудь студия в качестве компилятора или в питоне уже всё есть?
2. Будет ли скомпиленная либа работать везде, где работал бы аналогичный модуль, написанный на чистом Питоне или будет пахать только на одной платформе?
3. Так или иначе, натыкаюсь на некий SWIG. Примеры выглядят довольно здорово - не нужно писать никаких адовых врапперов, пишешь обычные сорсы и генерируешь. Проще ли воспользоваться им или там своя специфика?
4. Создаёт ли SWIG какие-то дополнительные зависимости - нужно ли при импорте итогового модуля иметь его установленным, либо импортировать какие-нибудь утилитарные модули?
5. Есть ли способ лучше?
Как будто что-то плохое.
Вариантов несколько:
если либа ещё не написана, то пиши ещё сразу в питоньих обёртках на си
если либа уже написана и есть её исходник, тогда следует использовать swig
если либа идёт бинарником без исходников, тогда используй ctypes
Для swig:
компилируешь под каждую платформу (под виндой нужен компилятор)
работает только под скомпилированную платформу
дополнительных модулей и ухищрений не надо (получаешь бинарную либу + питоний файл)
Для cytpes (есть опыт только под вендой):
* вытягиваешь функции из бинарной либы задавая типы входных переменных и возвращаемого значения
Делаю Surface спрайта, просто заливая одним цветом — всё работает нормально.
Делаю из картинки-пикрелейтед (image.load()) — тоже получается, но спрайт начинает оставлять за собой "след" при движении.
Что-то не гуглится такая шляпа. Помогач-питонач.
>>>>502029
нахуйди
prompt - это обычно шрифт же, в переводе? А что значит Python Shell prompt? Шрифт Питоновой Оболочки? Что за этим стоит? Это индикатор "сюда вводить команды"?
Алсо, моя первая программа в жизни.
Почему
print('Hello World') выводит надпись на экран.
А
print(Hello World)
и
print Hello World
printHello World
нет?
Алсо, я так понял, что перед скобкой можно ставить пробел, а можно НЕ ставить
print('Hello World')
print ('Hello World')
равно дают результат
Это универсальное правило для любых пистоновых команд со скобкой?
Аха, то есть как я и понял, индикатор готовности сожрать команду. У линукса доллар, у пистона три стрелки.
А в чем разница между оператором и функцией?
>In most languages, functions may be seen as a special form of prefix operator with fixed precedence level and associativity, often with compulsory parentheses e.g. Func(a) (or (Func a) in LISP).
Что это значит?
Я вошел во второй питон (на моем линуксе оба), и второй питон действительно выводит в стрим оба варианта:
print 'Hello World'
print ('Hello World')
А третий уже нет! Лол!
Вопрос снимается. Я тупо забыл в основном цикле закрашивать экран.
Почитал бы, но рекомендовали dive into python3 в тредике. Теперь почитаю Лутца.
Поясни на пальцах разницу между функцией и оператором?
Так вот, я это все ввожу, а интерпретатор продолжает многоточиями требовать новых команд. Уж что я ни вводил - и end, и энтером стучал. Пикрелейтед.
Dive into python3
Я делаю первое задание оттуда. У меня проблема. В статье - стена текста. Непонятно, как ее вводить ввиду наличия нескольких строк. Мне приходится в конце строки жать Энтер, в результате интерпретатор делает абзац и показывает три точки (identation?). Не понимаю, ожидал ли такого Dive into python3, или я уже ошибся где-то.
И непонятно, как закончить ввод команд. Пик выше. Кто делал стартовое задание с Dive into python3 в треде?
Да. Как будешь выполнять первое задание, отпиши.
Я никогда раньше в жизни не программировал ничего, мои знания абсолютно нулевые, чему ты удивляешься? Лучше помоги с проблемой.
http://ideone.com/Lgu5fd
Вот как я понял идет цикл, он шагает все предложение каждый символ, верно? Т.е. сначала смотрит м, ага, видит что "М" - печатает "М", далее идет "a" - добавляем к счетчику +1. Далее идет s - первые два условия не выполняются, тогда пишем в счетчик -1.
Все верно понял? Тогда почему 1)Не печатает о, это потому что первый иф сработал?
2)пробелы считаются тоже символами в данном случае? Тогда откуда -25 в ответе, а не 24?
Напиши код в файл, сохрани myfile.py, запусти "python myfile.py" из консоли, и если не будет работать запости код с ideone сюда.
Смотря какие. ААА тайтлы да и просто игры с графеном - нет. Кривые поделки потренироваться - да, на pygame. Более продвинунутые можно делать на kivy.
Не слушай его. Можно. Просто мало кто делал. Критичные части ты в любом случае на си перепишешь в виде модуля. Зато остальные некритичные 80% будут без протеканий и сегфолтов.
Точно, спасибо, я забыл что y у них это согласная и как-то продинамился с гласными.
Можно и на лиспе и на брейнфаке и на петухе.
Конечно, даже не бэйсике можно.
мне нужно добавить некоторые методы которые буду использоваться тольк в template.html.
я же не буду добавлять их в модель.
например, добавить метод: display_xyz_as_table()
создаю class MyModelDecorator.
у этого класса такие методы:
def __init__(self, my_model)
@classmethod
def from_list(my_models)
# ну и
def display_xyz_as_table(self)
правильно делаю? нет для этого библиотеки?
в руби такие классы-обертки называются декораторами.
Где ошибка? Скрипт должен перемещать файл из папки загрузок в папку с картинками.
>Нихуя нет ведь, ни движков, ни библиотек годных
А сам не? Движок это 15% сложности всего конвейера разработки. Ну напишешь ты движок, потом в процессе производства контента всё равно пойдёшь матрицы перемножать.
Те кто использует готовый движок вообще не учат программирование, а таскают ассеты мышкой и пиздят бесплатный контент по инету.
Я только начал, пробую писать в питон шелле, но туда, вроде, нормально не копировать код.
А как запустить программу с питона?
Я скачал файл с расширение .ру, как его запустить?
Я его запускаю, и он сразу исчезает.
Через консоль или функцию запуска скрипта в твоей IDE.
Самый простой метод - открываешь консоль, перетягиваешь в неё мышью файл, нажимаешь ввод.
Спасибо, дружище.
Не знаю, я туториал изучаю: http://www.diveintopython3.net/your-first-python-program.html
>>502547
>Через консоль или функцию запуска скрипта в твоей IDE.
А где в питоншелл эта функция?
Что за курс?
>Вообще добавь в PATH адрес к интерпритатору
Что даёт? Куда вставить?
>работай из под cmd
Это как? Я, просто, в программировании нуб, вот, пытаюсь учиться.
У него лялих.
А ты пайтон шелл через терминал запускаешь? Пишешь "пайтон" и в него загружается питонья консоль с ">>>"? Тогда выйди из пайтон шелла, набрав "exit()" - вернёшься в терминал.
Ебать вас развелось!
Ну, в общем, ошибки быть не должно. Снеси все пайтоны, скачай и установи свежий заново, отметь там все галки при установке - у тебя его в системном PATH нету. Правильно установленный пайтон из cmd входит в пайтон шелл, ну и скрипты будут запускаться из консоли.
У тебя на экране IDLE - это отдельное приложение со своим шеллом. Там ещё есть эдитор убогонький. Говно, короче.
Ладно, завтра уже сделаю, а то сегодня плохо спал, голова не варит.
И, спасибо за помощь! Держи птичку.
Сам накернул и не подавился следующим:
Beyond PEP 8 - Best Practices for Beautiful Intelligible Code (Raymond Hettinger)
Super Considered Super! (Raymond Hettinger)
Facts and Myths About Python Names and Values (Ned Batchelder)
Losing Your Loops Fast Numerical Computing With NumPy
How to Be More Effective With Functions (Brett Slatkin)
Machine Learning 101 (Kyle Kastner)
Type Hints (Guido Van Rossum)
Почему убогенький-то? Пиздатый же IDLE для лёгких программ/скриптов. Для начала - в самый раз.
Чем сам пользуешься?
Мне ответит кто-нибудь или вы тут будете и дальше простейшую хрень, которая гуглится в 2 клика обсуждать?
Сублаймом - пишу именно легкие скрипты и плагины - это основной род моей деятельности. Но в первое время изучения пайтона перелез с Айдла на Ноутпад++ и почувствовал массивные облегчения в области пониже спины. Айдл просто очень топорный.
Посмотрел, поставил может перейду с нагроможденного эклипса. Саблайм приятнее стандартного IDLE, однако как решал вопрос с input()-ами?
Тогда не очень вариант. Как по мне, основное удобство IDLE в том, что он принимает input(), а также дает возможность отлаживать скрипты на ходу. запустить скрипт через него, а дальше проверять значения промежуточных переменных, и всё такое.
А никак - мне они не требуются. Может, из-за этого в IDLE я не вижу никаких хороших сторон. Поищу плагин для Сублайма, если он есть, если нет - запущу через консоль.
Все зависит от усилий и интереса. Если охуенно угореть и свободное время посвящать ему, то через месяца три можно джуном идти.
Эта где?
Интродукшен для тех, кто про нампай только слышал (типа меня). Ничего продвинутого, но зато очень понятно и наглядно, зачем оно нужно и как влиться.
Никто, случаем, не знает, как присвоить переменной значение?
В сублим можно встроить быстрый запуск и прописать путь к интерпритатору. Более того, он сам написан на пистоне, можно вообще чо угодно ебануть, при желании.
Ну, может быть, но мне нинужно, и я не ставил целью рекламировать софт. Я же всё не могу понять, что это за Айпайтон Ноутбук (Жупайтер) - похоже на некий репл, активно работающий с этим самым юзеринпутом.
В докладах все модные хипстеры используют его для всякого графинга и машинлёрнинга. Проблему омрачает то, что я лисодебил, и мне не хочется использовать ничего, что работало бы через вебморду браузера.
Зачем тебе dive into python тогда? Эта книга рассчитана на людей которые умеют программировать, но не знают python. Если ты известную пасту прочитал, то там было "похуй, если ничего не поймёшь".
Пройди лучше какой-то онлайн-курс где тебя как по рельсам прокатят по основным идеям и синтаксису. Начинать изучение программирования в 2015 с пердолинга с установкой (да ещё и на сперме) небогоугодное дело, ящитаю.
Посоветую тебе начать с Доусона. Очень хорошая книга по Python для начинающих. Можешь выполнять примеры на половину из них я забивал, можешь сам писать свои штуки.
Как закончишь книгу, у тебя будут поверхностные знания по типам данных, условным переходам и так далее. Немного даже затрагивается ООП.
Дальше, когда ты проехался по верхам, можешь начать изучать уже нормальные материалы, т.к. ты уже знаешь, "как это работает" и всё то, что было написано в Доусоне в углубленной версии, будет пониматься буквально с полуслова.
Второй книгой посоветую Саммерфилда. Приятно и интересно читать, а знания даются уже глубокие.
>>> import os
>>> os.startfile (home/1.py)
File "<stdin>", line 1
os.startfile (home/1.py)
^
SyntaxError: invalid syntax
Пробую
import os
os.startfile (/home/1.py)
File "<stdin>", line 1
os.startfile (/home/1.py)
^
SyntaxError: invalid syntax
То же самое.
Пробую
>>> open(/home/1.py)
File "<stdin>", line 1
open(/home/1.py)
^
SyntaxError: invalid syntax
>>>
Тоже нит. :(
инб4 днище.
>>> import os
>>> os.startfile (home/1.py)
File "<stdin>", line 1
os.startfile (home/1.py)
^
SyntaxError: invalid syntax
Пробую
import os
os.startfile (/home/1.py)
File "<stdin>", line 1
os.startfile (/home/1.py)
^
SyntaxError: invalid syntax
То же самое.
Пробую
>>> open(/home/1.py)
File "<stdin>", line 1
open(/home/1.py)
^
SyntaxError: invalid syntax
>>>
Тоже нит. :(
инб4 днище.
Изучи объекты str и попробуй ещё раз.
содержимое
print('Hello World')
Выполняю:
import os
os.popen('/home/user/folder/p3/py')
ПЕРМИШН ДЕНАЙД
Ок, sudo python3
ПЕРМИШН ДЕНАЙД
Разобрался, что надо в properties файла еще всякое наставить.
Пермишн перестало появляться. Новая проблема:
>>> /home/user/folder/p3.py: 1: /home/user/folder/p3.py: Syntax error: word unexpected (expecting ")")
Алсо, скачал файл humansize.py с туториала dive into python3. Схоронил.
Так он у меня тоже не открывается.
Ввожу
import os
os.popen('/home/user/folder/humansize.py')
Выводит
>>> /home/user/folder/humansize.py: 9: /home/user/folder/humansize.py: Convert file sizes to human-readable form.
Available functions:
approximate_size(size, a_kilobyte_is_1024_bytes)
takes a file size and returns a human-readable string
Examples:
>>> approximate_size(1024)
1.0: not found
/home/user/folder/humansize.py: 15: /home/user/folder/humansize.py: SUFFIXES: not found
/home/user/folder/humansize.py: 16: /home/user/folder/humansize.py: 1024:: not found
/home/user/folder/humansize.py: 18: /home/user/folder/humansize.py: Syntax error: "(" unexpected
Код скачан из образца: www.diveintopython3.net/examples/humansize.py
Из образца, Карл!
Все работает. Может проебался с версией питона?
в корневой папке запускается.
Когда ты ввел python консолька на секунду преобразилась в интерпретатор (IDLE), нашла файл и выполнила его.
Т.е. можно в соснольке зайти в саму папку, например, cd /home/test/programs/
и оттуда уже запустить скрипт с помощью
python3 main.py (либо ./main.py, если шибенг прописан и права даны).
Олсо, аноны, как сделать, чтобы стандартный IDLE делал копи-паст еще и на русской кодировке?
Да их как говна сейчас. Вон аноны проходят 6.00x от MIT, на Udacity годные курсы, на codeacademy, Intro to Interactive Computer Programming на курсере рекомендую. Было бы время и желание.
Загугли, даун.
Это программа, которая читает код и "преобразует" его в действия компьютера.
IDLE - очередная оболочка, в которой ты кодишь, и которая связывается с интерпретатором, когда ей нужно запустить код.
Т.е., введя в консоли python3 - открывается консольный IDE. Если вызывать программу через python3 temp.py - запускается сама программа (через интерпретатор).
>Если вызывать программу через python3 temp.py
- это понятно
python '/home/user/folder/humansize.py'
А вот как того же результата добиться, находясь в IDE?
import os?
open?
Нихуя не понимаю, чего ты хочешь. Открыть программу в IDLE в иксах?
Через file-open (в программе, а не в коде), а дальше - run.
Если в консоли - python3 <файл> <параментрхуй знает какой, гугли>
Или мы друг друга не понимаем.
Ты хочешь запустить программу в программе?
Я могу запустить программу humansize.py, не входя в питоновый шелл, через команду python humansize.py.
Но я не понимаю, как ее же запускать из-под шелла. Когда выполнен вход в IDLE.
Ты хочешь в интерактивном режиме, из-под него запустить программу? Никак.
Только открыть из-под него.
Потому что ты хочешь сделать какую-то рекурсивную хуйню и изобрести троллейбус из буханки
Объясни, пожалуйста, в чем концептуальная невозможность такого шага.
Я могу ввести в шелле print 'Hello World'
Я могу написать в блокноте print 'Hello World' и потом запустить эту программу, не заходя в шелл.
Но я не могу запустить эту программу, просто открыв блокнотный файл, находясь в шелле?
Как же тогда поступать с чужим кодом? Вот найду я код большой, захочу его запустить, мне его что, вручную в шелле набивать?
Открыть в шелле, не через код слабо? Там сверху менюшки, file->open, вся хуйня.
У тебя где-то логическая ошибка и ты не понимаешь, чего ты хочешь.
Перечитай посты еще разок.
Сука как ты заебал, ты что сюда за каждой ошибкой бегать будешь? Я понимаю, ты новичок и всё такое ( я сам ещё ньюфаг по сравнению со здешними), но если ты не можешь загуглить/разобраться с простейшими вещами то хули ты сюда лезешь? Если ты хочешь вкатиться в программирование, тебе придётся долго искать инфу, разбираться и собирать, эксперементировать, это блядь основы. Сорри, просто пригорело(
>Вот найду я код большой, захочу его запустить
https://docs.python.org/2/library/functions.html#execfile
Иди нах,чо хочу то и спрашиваю
В первой же главе у него заголовок Setting up Python on Windows.
Судя по тому, что написал анон выше (file - open вся хуйня), есть существенные отличия, работать с питоном из-под Виндовс или через linux terminal.
В связи с этим вопрос, правильно ли я понимаю, что для возможности follow his instructions мне сейчас надо
- поставить виртуальную машину виндовс
- из-под нее поставить виндистрибутив пинуса
Нихуя там нет отличий. Пишешь код через IDLE (для начала), или через другой IDE. В винде и на линухе.
В линухе запускаешь через терминал, а в винде клацаешь на само приложение, открывается интерпретатор, выполняется программа в консольном окошке (если не GUI не писал).
print "Hello World"
print('Hello World')
print ('Hello World')
print("Hello World")
print ("Hello World")
Какого хуя такая вариативность написания, ммм?
print 'Hello World'
print "Hello World"
На втором питоне принт-это функция (наконец-то), т.е. соснешь с этим выражением.
Остальные - пиши как хочешь. Что удивительного?
Нужна сишная строгость?
>На втором питоне
На третьем, ты хотел сказать? Алсо, я не понимаю сути вот этого - стала функцией, теперь без парентезис нельзя? Ват?
Скобочки.
Наткнулся у Довсона на некий скрипт моде, в котором ты пишешь print 'Hello World', а мгновенного вывода в стрим Hello World нет после нажатия энтера, ибо будет позже. На то и скрипт мод.
У меня этот скрипт мод в линуксовом-питоновом шелле отсутствует, да? Юзай блокнот заместо?
Я нихуя не понимаю. Но это не скрипт-мод, а интерактивный режим.
Т.е. ввел команду - нажал enter - она тут же выполнилась.
Шелл - это и есть скрипт-мод.
>You can open a script mode window from the interactive window you've been using. Select the File menu, then
New Window. A new window will appear that looks just like the one in
Figure 1.5
>Now type
print "Game Over"
and press Enter. Nothing happens! That's because you're in script mode.
What you're doing is writing a list of statements for the computer to execute later. Once you save your
program, you can run it.
СПЕРМОСОБЕННОСТИ какие-то.
Можешь подробнее или линк? Мне удалось найти еще Даусон 3-е издание, но это 2010. Смотрю английский онли, если что.
Импортируй этот файл через import.
Например, у меня есть простенький код программы, а что дальше?
Бамп вопросу.
Я, читал тред, тут про советуют юзать саблайм, он у меня есть, допустим я написал в нём код, а как его выполнить?
Из саблайма или с консоли?
F7.
А почему так много народу появилось в треде, которые прям с места в карьер? Каникулы вроде давно уже начались.
Или это какой-то зелёный семёнит?
Я не зелёный и не семеню, я еще вчера спрашивал.
Да писал уже постов 50 назад, на мой вопрос никто так и не ответил, вместо этого какую-то хуйню по хоткеям спрашивают
>>допустим я написал в нём код, а как его выполнить?
Ну, я написал код, жму F7, вот что выдаёт и все.
> Setting up Python on Windows.
В большинстве современных дистров 2я и 3я ветка питона установлены по-умолчанию. На винде очевидно его надо устанавливать специально.
> есть существенные отличия, работать с питоном из-под Виндовс или через linux terminal.
Возможно, но раз ты читаешь пока Дусона, то навряд ли их встретишь.
> для возможности follow his instructions
Нет. По крайнем мере когда я читал эту книжку у меня на винде проблем не было.
Ну, я по гайду делаю...
Вот, всё равно на ф7 ничего не происходит. Вернее происходит - табличка снизу, но там не печатает привет мир.
Раз про бота никто не ответил, задам другой вопрос. Где можно почитать про eventы в питоне?
Бамп.
Хочется узнать, какой же он, актуальный Давсон.
Это? http://www.amazon.com/Python-Programming-Absolute-Beginner-Edition/dp/1435455002
Там йоба.
Странное дерьмо, анон. Думаю, что-то не так с установкой.
Например, я не вижу пайтона в path, что выводится этой консолью. Но у меня выдается другая ошибка, когда я вручную удаляю из своей - ругается на то, что система вообще не знает такой команды. Сублайм третий? А то там легко скачать второй, которому уже много лет - странное решение разработчиков, тем более, что третий уже более чем mature.
https://www.sublimetext.com/3
Третий, да.
Но, у меня саблайм портативный - может из-за этого?
Питон в РАТН есть, только что устанавливал и галочку отмечал.
Тогда не знаю - гугли или забей до поры. Нужную тебе команду можешь увидеть в аутпуте - "python /blablabla/kokoko/script_path.py", опция "-u" не нужна только.
Когда-то использовал портативный, проблем вроде не было. Сейчас у меня тридцатидвухбитный Пистон и шестидесятичетырехбитный Сублим, установленный из инсталлера. BTW, кто периодически лазит в виндовый энвайронмент (и не только в PATH), советую вот этот гуй на замену дефолному: http://www.rapidee.com/en/about
К сожалению, англотексты 3-го издания я не нашел. Поэтому буду учить по русскому переводу (он есть в вк), сравнивая с английским первым изданием (есть в интернете).
И сразу вопрос.
В первом издании Давсон презентует функцию инпут так:
raw_input('\n\nPress any key to close window bla-bla')
В третьем издании уже так:
input('\n\nPress any key i t.d.')
Можете пояснить, в чем писечка перехода от функции роу инпут к инпут?
Я запускаю интерпретатор. Импортирую файл settings. Потом пишу " print settings.DJ_PROJECT_DIR" и получаю.... нихуя, пустую строку. Что бы это могло означать, почему так?
Тоже самое что и я написал.
>>503220
Хорошо анон. Есть приложение на Опеншифт - джанго. Эта хуйня работает и локально и на сервере. Можно запускать свой проект и на домашнем компе - python manage runserver ну ты понял.
Проблема в том что статику - css, images etc, они сделали как то странно. Есть папочка static, в нее складываешь это все говно и оно работает. Но только на сервере. На локальном компе - хуй.
Мне надо научить проект отличать мой локальный комп и сервер. Надежда конечно слабая что вы ответите, но я пытался.
И нехуй тебе отвечать. Такое объясняют джунам, отвешивая им пиздюлей и брызгая слюной, особенно когда они ломают проект при деплое - тогда его пиздит отдел тестирования ремнями с бляхами. Ебаные вонючие тупорылые джуны.
Хуясе эмоции. Ты почему такой злой? Я не против получить пизды, но только с условием что бы в конце экзекуции были данны объяснения. Щас попробую через os.path прощупать где файл находится. И почему сразу ломать? Есть же гит.
1 строчка отсюда вообще не работает, как и 2, что за туториал такой?
>>> import sys
>>> sys.path
['',
'/usr/lib/python31.zip',
'/usr/lib/python3.1',
'/usr/lib/python3.1/plat-linux2@EXTRAMACHDEPPATH@',
'/usr/lib/python3.1/lib-dynload',
'/usr/lib/python3.1/dist-packages',
'/usr/local/lib/python3.1/dist-packages']
>>> sys
<module 'sys' (built-in)>
>>> sys.path.insert(0, '/home/mark/diveintopython3/examples')
>>> sys.path
['/home/mark/diveintopython3/examples',
'',
'/usr/lib/python31.zip',
'/usr/lib/python3.1',
'/usr/lib/python3.1/plat-linux2@EXTRAMACHDEPPATH@',
'/usr/lib/python3.1/lib-dynload',
'/usr/lib/python3.1/dist-packages',
'/usr/local/lib/python3.1/dist-packages']
Я не понимаю, одни говорят одно, другие другое.
Пишу в саблайме код, сохраняю в файл, запускаю файл через консолЬ: python.exe file_name.py ничего не работает. В самой консоли тоже ничего не работает.
Сейчас попробовал написать в питон шелле, который никто не советует и всё заработало.
Поясните, что в саблайе я делаю не так?
Как правильно делать?
Кто такой, этот зелёный!?
Кто такой, это все из б?
Кто такой, лол?
Кто такой, такой?
Кто такой, м!
Там котятки. У меня аллергия на котятков.
Дотадебил, не?
Как пишешь к пайтону? Скрин блять прикрепляй.
c:\python\python.exe c:\python\file.py
А вообще ты дебил, ты должен НОРМАЛЬНО ПОСИДЕТЬ БЛЯТЬ И ПОНЯТЬ, ЧТО И КАК ДЕЛАТЬ. ВСЁ РАСПИСАНО ДАВНО
Тематика же. Плюс по началу забавно было, правда интересные вопросы игнорили.
А потом мне попалась такое задание, где надо написать import sys, но оно ничего не давало в консоли, но в шелле выдало такой результат.
МОжет я что неправильно делаю?
Я не троллю, а учусь. Просто, я еще многого не понимаю.
Учить формулировать проблемы. Точно описывай свои действия. Пиши ошибки, которые тебе выдаются, подписывай куски аутпута, чтобы было понятно, что это не рандомное говно. Пиши, что хотелось получить, а что в итоге вышло. Ты описываешь проблемы как тупая пизда, и с такими вопросами в пыхотреде тебе тоже рады не будут.
>ничего не работает
"Сделай что-нибудь."
>>503339
Ну хз. А в чем смысл?
Всё работает нормально, ничего не должно печататься. Импорт ничего не печатает. Твой скрипт сейчас просто импортирует модуль и на этом его работа заканчивается. Чтобы напечатать что-нибудь в консоль - напиши print(shit).
Пайтон шелл самостоятельно принтит просто.
Интерактивный режим отличается от исполнения .py
Поэтому например sys.path не печается из .py
Сублайм не требует консоли, так как сам умеет запускать скрипты. Пайтон шелл - это не то же самое, что cmd. Напиши в cmd "python" и откроется пайтон шелл, в который ты можешь писать питоньи стейтменты. Напиши там exit() и выйдешь обратно в командную строку.
>Просто, может я сейчас неправильно делаю.
Ну, ты какбэ полтреда утомил уже, что анон говном кидается. Может, умеришь количество дурацких вопросов в пользу гугла и самостоятельного пердолинга?
Читай блядь доки!
Разница в том что во втором питоне были raw_input и input. Первый возвращал обычную строку str. Второй пытается парсить введенный текст как питонячий код.
https://docs.python.org/2/library/functions.html#raw_input
https://docs.python.org/2/library/functions.html#input
Теперь в 3шке оставили только input и он возвращает только пустую строку.
https://docs.python.org/3/library/functions.html#input
>А в чем разница между оператором и функцией?
Математически -- практически ни в чём. Во многих языках единственное отличие оператора от функции это инфиксная нотация (запись "a + b" вместо, например "+(a, b)"), Питон -- не исключение.
Операторы имеют определённый приоритет (precedence), он определяет, в каком порядке они вычисляются (операторы с самым большим приоритетом вычисляются первыми, например, умножение вычисляется до сложения).
Также они имеют определённую ассоциативность, левую или правую. Этим определяется, по какую сторону от инфиксного оператора аргументы вычисляются в первую очередь.
В твоей цитате написано, что во многих языках функции являются операторами с определёнными ассоциативностью и приоритетом, часто с обязательными скобочками вокруг аргументов.
мимокрокодил
sounds the system bell of your computer
Типа должно возвращать звуковой сигнал. У меня нет. Почему?
Модуль для пищалки включи, modprobe snd-pcsp например. Еще в бивисе может быть выключена.
print("\a")
На winХР будет работать, на 7, ... - нет.
http://www.transl-gunsmoker.ru/2010/06/beep-windows-7.html
for i in 'hello world':
print(i 2, end='')
>hheelllloo wwoorrlldd
Т.е. для каждого i в "Хелло ворлд"
Он печатает i 2
Я не совсем понял. Я, раньше, изучал пхп, там он был понятный, а тут нет.
Годная книга?
>>> range(10)
range(0, 10)
Хотя везде пишут что должно быть так:
> >>> range(10)
>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
В питоне 3 range генератор. Во втором таким же был xrange, а range просто отдавал лист. Чтобы "опустошить" range в 3, можно сделать list(range(10)), но это имеет мало смысла, ведь генератор же.
Читай современную документацию под питон 3, а не говно мамонта.
Кстати, эта книга не устарела? 2011 всё-таки. >>503469
Спасибо.
random.random()
Пишу такое, ничего не происходит.
Импорт и есть "подключение".
>>> import random
>>> random.randrange(10)
2
>>> random.randrange(10)
Про книгу хз, я не помню по какой версии лутц пишет и смотреть лень. Если там питон 2 - нахуй.
Ты опять выходишь на связь? Я тебе вчера говорил что работа интерактивной версии отличается от исполнения файла. Интерактивная печатает все подряд, в исполнении надо явно юзать print(random.randrange(10))
Я, что-то, не совсем понимаю ФОР.
Сделать разброс от 0 до 11?
Я хотел чтобы писало без дробной части.
Кто?
Родина дала тебе хорошие доки, нет надо жрать говно.
https://docs.python.org/3.5/library/random.html
>randrange
Нормальная - это на рюске?
Тогда ладно. Но ты всё равно задрал.
ШОК. ПИТОНОТРЕДЫ УБИВАЕТ НЕАДЕКВАТ-РУБИСТ
Именно так, анон. Я бы схожу мочераторам, если он не уймется
Нас тут, как минимум, трое - с вопросами уровня бэйсика.
Да ну. Досуг уровня /s/ какой-то.
Что получится в результате этого выражения и почему?
По-моему, просто декартово произведение получилось.
For перебирает елементы обьекта, который можно итерировать. А ты сделал генератор for вложенным в for
Это какая-то зелень залетная.
где то видео откопал, там надо было скачивать exe файлы с сайта, но там файлов ехе больше нет! а какие-то ебучие whl файлы!
нигде не написано как их устанавливать!
Ведь так сложно сделать apt-get install pip
и
pip install yoba-package
Дали им пакетные манагеры, пользуйся. Нет, хочу руками качать кряккейгенультимейт.пу.езе
Злобный пробытый пидор. Я сам все сделал. Ты залил блядь весь тред своей пидорской желчью.
а + b, + - оператор.
+ (a, b), + - функция.
В чем разница? Я считаю, разница в значимости, в статусе, если угодно.
Оператор - обслуживающая величина, здесь главные А и Б, а что с ними происходит, это уже второстепенно. Незаменимых нет, вместо "+" может оказаться и "-", главное, что герой рассказа - А и Б. "+" приходит и уходит, а "А" и "Б" остаются.
В случае с функцией уже наоборот. Именно "+" у нас становится корольком. "+" - это определяемое слово, а "а" и "b" всего лишь распространяют, уточняют его. Вместо а и б легко может оказаться Ц, Ф, да что угодно, это просто параметры для функции, песчинки на дне аквариума. А и Б приходят и уходят, а "+" остается.
Разница в акцентах. В отношениях власти и подчинения.
Нет никакой разницы, у Вас фашизм в голове.
Нет. Можно писать все самому, а можно даже в одном файле, делать cat ./yobalib/*.py >> main.py. Но насколько тебе удобно с таким работать?
Так, некоторые библиотеки делали годами, например, игры с 3д графикой етц - это опенглы и директиксы?
print 'piepiepeiepepepepepepepepepepepepe \ piepiepiepiepiepiepie'
но не
print 'piepiepiepiepiepiepie' \
print 'piepie'
Правильно?
> Мне надо научить проект отличать мой локальный комп и сервер
http://stackoverflow.com/questions/1626326/how-to-manage-local-vs-production-settings-in-django
Но я хотел в разработку игр, а не сайтов. Для сайтов я и так знаю хтмл, цсс, скл, пхп и прочую парашу.
Игры на крестах без кастомных аллокаторов тормозят, какой питон?
есть же способ это делать красиво, а не так:
[code]while True:
try:
b.remove('\n')
except ValueError:
break[/code]
Фильторов тебе не завезли?
>>> l
['\n', 1, 3, 4, '\n', 9]
>>> list(filter(lambda x: x != '\n', l))
[1, 3, 4, 9]
Посоны, не бывает таких упорных и таких дебилов. Третий день он тут. Я вам гарантирую, это моча-рабист тралит.
Просто спросил.
Если можно, напиши код нормальный код а то мой похож на индуский.
num = str(input())
i = ' '
j = 0
a = 0
b = 0
c = 0
d = 0
var = [a,b,c,d]
for i in num:
\tif i != ' ':\t
\t\tvar[j]=int(i)
\t\tprint (var[j])
\tj += 1
[code lang="python3"]
num = str(input())
i = ' '
j = 0
a = 0
b = 0
c = 0
d = 0
var = [a,b,c,d]
for i in num:
\tif i != ' ':\t
\t\tvar[j]=int(i)
\t\tprint (var[j])
\tj += 1
[/code]
не судьба, я тоже выше облажался по faq
Что за строка то? lkj123 брать? Если нет - все просто.
>>> re.findall('\d+', 'lkajsdf 123 ll 1 m 2 n 444')
>['123', '1', '2', '444']
То-то все пердолятся сишарпом в жопу в юнити, ага.
> def foo(x):
print x
> foo([5])
[5]
[5])>foo(
5
>foo((5,))
5
>foo([5,6])
Traceback (most recent call last):
File "<pyshell#63>", line 1, in <module>
bar(*[5,6])
TypeError: bar() takes exactly 1 argument (2 given)
Так вот, что черт возьми происходит, и где про это можно прочитать?
https://docs.python.org/3/tutorial/controlflow.html#unpacking-argument-lists
>>504851
Вопрос понятен без ideone
http://ideone.com/qAwOZE
Ну суть примерно та же. Интересно, только: у тебя используется .split('\n'). А если файл не текстовый?
http://pastebin.com/fVzf4Nps - есть юзер этой либрари.
http://pastebin.com/N49rTwhB - я допилил эту либрали.
http://pastebin.com/XXLc6ecZ - и заюзал её, скопировав код юзера.
http://pastebin.com/XjW7NVZr - но на деле я хотел так. НО ХУЙ, КАК ВЫ ПОНИМАЕТЕ.
Скачать тут:
http://rghost.net/private/7hLlhDrXD/bae990723c3386afa15d82d3eed834f9
Можно ли импортировать юзера как-то без копипаста его кода? На деле я всё равно импортирую его, так как там много нужных мне функций, и либрари используется в одной из них - функция на сто с лишним строк, которую мне пришлось полностью скопировать, чтобы изменить одну букву.
Я нихрена тебя не понял. Унаследуй нужный метод и переопредели параметры в потомке
Параметры метода меня не интересуют. В теле нужного мне метода используется вызов к сторонней функции, которую я заменил своей реализацией. Обычно можно вызвать родительский метод и потом как-то дополнительно обработать результат, но в моем случае результат обработать не выйдет, родительский метод - здоровенная дура, которая делает всю работу и выдает законченный результат, который придётся заново парсить. Я метод целиком скопировал и заменил там название модуля на свой. Можно не менять и испльзоваь import mylib as lib, но метод всё равно придётся скопипастить.
Вопрос в том, можно ли подменить используемую им либу на пропатченную мною.
Сам скрипт юзера я менять не могу, но могу его импортировать и наследовать его классы. Я это и делаю, просто переопределение интересующего метода и заключается в копипасте всей простыни и замены одной буквы. Не знаю, может, ещё понятней можно объяснить, я, наверное, не могу в объяснения.
# усмотрение), который показывает содержимое страниц Хабра. С одним исключением: после
# каждого слова из шести букв должен стоять значок «™». Примерно так:
#
# http://habrahabr.ru/company/yandex/blog/258673/
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# Сейчас на фоне уязвимости Logjam все в индустрии в очередной раз обсуждают проблемы и
# особенности TLS. Я хочу воспользоваться этой возможностью, чтобы поговорить об одной из
# них, а именно — о настройке ciphersiutes.
#
# http://127.0.0.1:8232/company/yandex/blog/258673/
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# Сейчас™ на фоне уязвимости Logjam™ все в индустрии в очередной раз обсуждают проблемы и
# особенности TLS. Я хочу воспользоваться этой возможностью, чтобы поговорить об одной из
# них, а именно™ — о настройке ciphersiutes.
#
# Условия:
# Python 2.x
# можно использовать любые общедоступные библиотеки, которые сочтёте нужным
# чем меньше кода, тем лучше. PEP8 — обязательно
# в случае, если не хватает каких-то данных, следует опираться на здравый смысл
#
# Если задача кажется слишом простой, можно добавить следующее:
# параметры командной строки (порт, хост, сайт, отличный от хабра и т.п.)
# после старта локального сервера автоматически запускается браузер с открытой
# обработанной™ главной страницей
def main():
print 'Coming soon...'
if __name__ == '__main__':
main()
Как такую хуйню сделать? Принять страничку как поток, рабзить на части пробелами и потом считать буквочки? Блять, подскажите пожалуйста, хули вы всегда только молчите или хуями, фаршироваными говном, угощаете.
# усмотрение), который показывает содержимое страниц Хабра. С одним исключением: после
# каждого слова из шести букв должен стоять значок «™». Примерно так:
#
# http://habrahabr.ru/company/yandex/blog/258673/
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# Сейчас на фоне уязвимости Logjam все в индустрии в очередной раз обсуждают проблемы и
# особенности TLS. Я хочу воспользоваться этой возможностью, чтобы поговорить об одной из
# них, а именно — о настройке ciphersiutes.
#
# http://127.0.0.1:8232/company/yandex/blog/258673/
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# Сейчас™ на фоне уязвимости Logjam™ все в индустрии в очередной раз обсуждают проблемы и
# особенности TLS. Я хочу воспользоваться этой возможностью, чтобы поговорить об одной из
# них, а именно™ — о настройке ciphersiutes.
#
# Условия:
# Python 2.x
# можно использовать любые общедоступные библиотеки, которые сочтёте нужным
# чем меньше кода, тем лучше. PEP8 — обязательно
# в случае, если не хватает каких-то данных, следует опираться на здравый смысл
#
# Если задача кажется слишом простой, можно добавить следующее:
# параметры командной строки (порт, хост, сайт, отличный от хабра и т.п.)
# после старта локального сервера автоматически запускается браузер с открытой
# обработанной™ главной страницей
def main():
print 'Coming soon...'
if __name__ == '__main__':
main()
Как такую хуйню сделать? Принять страничку как поток, рабзить на части пробелами и потом считать буквочки? Блять, подскажите пожалуйста, хули вы всегда только молчите или хуями, фаршироваными говном, угощаете.
Кажется, ты сейчас получишь еще немного угощений.
Вот, например, я решил сделать такое приложение: база данных текстур, каждая текстура это картинка, описание, ну и разная информация. Текстуры можно комментировать. Собственно все. Сколько здесь надо сделать приложений и как их разделить?
>Как такую хуйню сделать?
Спарсить контент со страницы (<div class="content html_format">(.*)<div class="clear"></div>), и работать с ним, чтобы не зацепить лишние теги. Далее, разбить контент по словам, исключая теги (их ломать не нужно этими "™"), и проверяя длину слова, добавлять при надобности "™". Ну и сервер поднять. Сейчас сделаю тебе набросок.
Да вот я тоже думаю что одно. Просто, все мои проекты такие маленькие, что получается что хватает одного приложения. Не интересно как-то.
Забавно, что ты сделал сложную и специфичную часть задачи, но на простую забил, хотя средний человек поступил бы наоборот.
Мне просто спать хочется, лень доделывать. Заметил косяк.
Идеон шалит. В оригинале должно быть так
>req = requests.get("http://habrahabr.ru%s" % self.path)
И кстати, с текстом по-моему тоже не мало поебаться придется, я на джаве эту задачку писал, и заебался реплейсить так, чтобы теги не ломались. Хотя соуп очень удобная штука, минут за 20 можно закончить.
А теперь замени string на огромный кусок html'ки, и сломаешь все теги и ссылки. Понимаешь о чем я (пикрелейтед)? А если стрипнуть теги, то как потом страницу в исходный вид приводить?
Подумал, что там сразу текст вставляется в div_content. Сам-то сеть два раза в год трогаю, то есть четыре раза уже потрогал.
А еще вот такую штуку держи. В общем, мне понравилась задачка, если не лень будет можешь допилить.
Просто какие-то переменные можно передавать через формы и cgi обрабатывать, это понятно.
Но как сделать такое колдунство, чтобы при простом клике по картинке запускался питоновский скрипт и в него передавался адрес (т. е. где она лежит на локалхосте) этой конкретной картинки?
Бля, стыдно что я такое написал. Я просто нашел эту задачу для кандидатов на должность django-разработчика и подумал что эта хуйня решается средствами django. Где аноны находите задачи для того что бы подготовиться к работе? А то обычно в объявлении вываливают кучу технологий и фреймвоков которых надо знать. сайт я уже сообственый делаю.
Ебанись, но походу оно работает изкоробки, просто то ли ошибка в другом месте была, то ли у меня сейчас что-то сломалось путём правильной работы. (Антибаг!)
from user import *
import mylib as lib
Ебанись™, но до меня дошло, как нужно сделать, ну и что имел в виду анон.
import mylib
import user
на пик смотри
user.lib = mylib
По питону требования обычно не такие ебанутые как по всяким ЕЕ-жабам.
Я даже сейчас прошёлся, то требования на веб-питонера как правило:
- django или фласк, редко оба
- html/css
- javascript точнее фреймворки типа angular, backbone, react, jquery
- какая-нибудь бд, обычно mongodb
- REST
Ну, обычный набор считай. Недавно один знакомый устраивался в хохлокомпанию пром.ua, там просили в качестве тестового задания написать простенький аналог аск.фм и подобных сайтов. Короче, ничего сложного. Так что я сильно сомневаюсь что где-то будут как-то дохуя заебывать. По алгоритмам обычно просят всякие физзбаззы, бинарный поиск, быструю сортировку и умение в рекурсии. ЧТО ТАКОЕ ИТЕРАТОРЫ ГЕНЕРАТОРЫ ООП. Ну, у него спрашивали только половину этого. Взяли.
>в качестве тестового задания написать простенький аналог аск.фм
>я сильно сомневаюсь что где-то будут как-то дохуя заебывать.
Иван, ты либо крестик сними, либо трусы надень.
Если ты мне собираешься сказать, что тебе сложно написать простейший аналог аск.фм с 2 функциями - регистрация и задавать вопросы, то ты поехавший.
У меня лабы в универе сложнее были раз в 10, а вон в пхп треде и то задания некоторые сложнее у котиков и их повелителя аутизма.
Или ты из тех, кто принципиально не делает тестовые задания потому что НИАБЯЗАН?
Открой документацию джанги, там есть примеры.
А пока не перекатились, спрошу.
Как в джанге получить только загруженное изображение? То есть вот оно есть, в базе есть запись о нем. Как по url получить просто картинку? Например, из контакта я же могу по прямой ссылке получить картинку:
http://cs628029.vk.me/v628029604/6fdd/CH5IljfDKgU.jpg
https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.FileField
Читайте уже документацию, ну ей-богу же.
Или гуглом пользоваться учитесь:
http://bfy.tw/Ykh
https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.fields.files.FieldFile.url
В шаблоне дерни атрибут url поля field/image поля модели
>>505512
Ты опередил меня на пару секунд
Именно джанговский view вообще не используется. Сейчас посмотрю как в апи именно url отдать, а не объект.
Алсо, вот такой ответ пока приходит. Как видно, изображение только путь дает. По нему можно загрузить изображение как-то?
Ну классика ёпт.
А как мне его получить этот файл теперь? Чтобы отобразить на страничке с помощью ангуляра, например. Или скачать. Не совсем втыкаю что-то.
Ну ты учти 2 момента:
1. Путь тебе дают относительно MEDIA_URLа
2. Надо сервак настроить так, чтоб он умел файлы оттуда как статику раздавать.
Поправьте, если что не так, пожалуйста.
Интересует, как работают блокировки в subprocess.
Работает, например, три потока.
Один поток заблокировал переменную.
Остальные два потока работают, как работали.
Второй поток попытался "подключиться" к переменной (заблокированной) и приостановился, пока переменная не разблокируется.
Третий же поток, работал как работал (он не трогает эту переменную).
Всё правильно? Или где-то есть логическая ошибка?
Там все по-хитрому.
Джанга по умолчанию не умеет раздавать статику (в твоем случае - картинки) из директории, куда их аплоадят. Да и вообще- у нормальных людей статику раздает сервак на фронтенде. Но для разработки можно извернуться.
Посмотри как сделано вот тут:
https://github.com/sigurdga/django-jquery-file-upload
Особое внимание на django-jquery-file-upload/url.py
там в конце небольшой хак, для того чтобы джанга картинки из медиа-папки раздавала.
Спасибо, посмотрю завтра.
Скажи, а нормальные люди сразу используют боевой сервер даже для разработки у себя? Ведь все сообщения дебаггера джанги можно будет получать. А так будут условия максимально приближенные к реальным.
Причём здесь пижжу я или нет? Пифон для простоты, а не для скорости. Почти всегда, если ты упираешься в производительность, то значит либо делаешь что-то не так, либо пифон здесь не особо подходит. И это совсем не питонично изъёбываться с __magic__ чтобы выиграть пару секунд. Считать такты иди в ассемблер.
Это условное название (магические методы), так-то там магии нет конечно же. Сами двойные подчёркивания уже говорят о том, что ты делаешь что-то не то и эти методы не для прямого обращения. В пифоне так не принято. Можно, конечно, иногда пошалить и в некоторых ситуациях это может быть и оправдано, но никак не по причине скорости работы. И уж тем более писать так везде не стоит.
>если ты упираешься в производительность, то значит либо делаешь что-то не так
Кстати удваиваю этого. Раньше гнал на всякую динамикопарашу, а потом оказалось что я просто говнокодер.
в интернетах дохуя примеров аж со 2 ветки питона, и много всяких моментов. я же просто хочу целиком заслать уже правильно сформированный под схему кортёж. и всё. есть что вроде:
post = (123, '''петян раз-два''', '12-12-2012')
cursor.execute('''INSERT INTO posts ?''', post)
cursor.execute('''INSERT INTO posts VALUES(?, ?, ?)''', post)
какие нахуй числа? с чем она должна сложить 1998? ты упоротый?
https://pypi.python.org/pypi/gevent/1.1a1
Это копия, сохраненная 21 июля 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.