Двач.hk не отвечает.
Вы видите копию треда, сохраненную 8 марта 2020 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Тред, посвящённый языку программирования Питон, #77 /python/ 1569408 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #77, вечно живому. Встречаем старый новый год и провожаем новогодние каникулы и отпуска.
Предыдущий >>1563834 (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 <-- похоже ссылка больше не работает, а жаль
Автоматизация рутинных задач ч.2 - https://anonymousfiles.io/3CBCoy1o/ <-- тут только одна книжка. Ради неё держать ссылку в шапке неразумно.

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
#######################################
Вопросы-ответы:
А стоит ли читать Лутца, том номер 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/ (нужно знать ангельский или уметь пользоваться переводчиком)

Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём - брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

https://dumpz.org/b37erFzCnRmW
2 1569412
>>69408 (OP)

>https://dumpz.org/b37erFzCnRmW


По этой ссылке исходник шапки. Если кто готов из неё сделать что-нибудь такое, чтобы тни смотрели и мокли, а остальные слезали с джав и вкатывались в питон - You are welcome!
3 1569525
Анон, недавно начал учить питон, есть вопрос касательно синтаксиса.
Допустим, есть логическая конструкция, которая должна выполняться, если переменная будет иметь несколько значений (допустим, 1, 3 и 5). Есть ли способ записать такое условие проще, чем перечислять условия навроде: x == 1 or x == 3 or x == 5? По наитию попробовал написать x == 1, 3, 5 и x == (1 or 3 or 5) - ни то не другое не работает. Мой первый вариант - единственный рабочий адекватный способ?
4 1569526
>>69525
if x in {1, 3, 5}:
5 1569529
>>69526
Спасибо! В этих целях можно также использовать и кортежи, и списки?
6 1569542
>>69529
и словари ещё можно.
7 1569568
>>69529
Все итерируеиое.
8 1569574
>>69412
Гуд джоб, Анон.
Насчёт одной книги в шапке - видимо никого нет из владельцев крупных хранилищ книг, т.к. ее никто никуда не добавил.
Видать придется пилить новое свое хранилище и поддерживать его.
9 1570028
Как в flask файл принять?
10 1570035
>>70028
хтмл:
<form method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">Отправить</button>
</form>

Контроллер:
if "file" in flask.request.files:
..f = flask.request.files["file"]
..bs = f.read()
..f.close()
11 1570047
>>70035
Спасибо
12 1570050
>>69408 (OP)
Заехал в тред на ньюфажий угол.
В общем дрочу себе черепашку, по практикуму курса из шапки и дошел вот до задания с правильными многоугольниками. Никак не доеду, как мне добавить угол, что бы все они получились как на пикрл 1., у меня выходит пик 2.
Пробовал по всякому, но сейчас мне уже как-то настоебало, листинг пик 3. Кто знает/просто хочет помочь, просветите, в долгу не останусь, с меня нихуя
turtle.PNG7 Кб, 240x330
13 1570072
>>70050
ну ты говна наворотил, я тоже по этой хуйне учился, вот нашел свой говнокод
15 1570109
>>70072
>>70073
Мое увожение, после этой

>turtle.circle()


хуйни пошел в документацию к черепахе, и действительно, там она есть, а в методичке не удосужились поставить почему-то просто пол дня впустую ебался в угадайку с координатами.
16 1570120
Что за хуета, а я не пользовался никаким цирклом, сам считал. Сейчас найду своё
17 1570125
а что насчёт GUI. Кто знает в какой среде программировать начинать лучше, где больше уроков по этим GUI? Где проще и быстрее можно создать приложения для PC?
image.png100 Кб, 1076x775
18 1570130
>>70109
>>70072
Вот мой код, я считаю, нужно было использовать только то, что было дано в методичке. да, названия в кэмэлкэйзе и я присваиваю делаю странную хуйню с переменными в функции, я был молод, так делать не надо
https://pastebin.com/NVvLV9GP
19 1570133
>>70125
Ты там норкотой закинулся и думаешь, что ты в начале 80-х?
.png35 Кб, 749x608
20 1570134
Скину и я свой вариант.

мимо
21 1570149
>>70125
Гуй на питоне пишут редко. Найти иде для питоне, где из коробки есть Qt Designer или его аналог, ты вряд ли сможешь, придётся всё прикручивать самому. Просто и быстро не будет точно.
Можно вручную создавать формы через PyQt или Tkinter. Кода придётся писать много, но простое приложение сделать сравнительно несложно.
А проще и быстрее делать на плюсах или шарпе. Но они сами по себе намного сложнее питона.
22 1570214
Как можно изменить метод next, чтобы итерироваться по строкам в файле?
23 1570229
>>70214
Вопрос поставлен супер хуево.
24 1570235
>>70229
У меня есть класс A,
При создании объекта я передаю туда имя файла
b = A(2ch.hk)
Как переопределить магический метод таким образом, чтобы можно было итерироваться по объекту и выводить информацию, которая есть в файле построчно?

for _ in b:
--print(_)

>сап двач


>мать ебал

25 1570242
>>70235
Если у тебя функционал класса ограничивается этим, то проще вместо класса сделать функцию, котора принимает имя файла и через yield выдает строки.
Если же нужен класс, то в __iter__ делаешь что-то вроде self.file.seek(0), в __next__ делаешь self.file.readline() и возвращаешь или строку или StopIteration.
26 1570454
Я написал код и не совсем понимаю, как он работает. Можете помочь?
n = int(input())

for i in range(0,n):
____lst = list(map(int, input().split()))
____lst.sort()
____ print(lst[1], end = ' ')

Интересует определение lst. Он берет на вход информацию из инпута в виде целых чисел, дальше выполняется split, потом map, потом это все заворачивается в список, так? А что именно тут делает сплит и мап?
27 1570458
>>70454
input() - на выходе дает строку (тип str), то есть там будет что-то вроде '24 2 10 11'
str.split() - берет строку и разбивает по пробелам, получая список
'24 2 10 11' -> ['24', '2', '10', '11']
map(f, l) - берет f и для каждого элемента x из l применяет f(x), здесь map(int, ['24', '2', '10', '11']) тоже самое что и:
int('24'), int('2'), int('10'), int('11')
Но map возвращает не список, а специальный объект, поэтому его превращают в список list
15497185776591.mp47,8 Мб, mp4,
1280x720, 0:27
28 1570464
>>70458
Охуеть. Спасибо большое!
29 1570715
Что быстрей?
Получать один кусок данных из бд(монгодб) и сортировать его через пайтон.
Или сразу получать несколько но уже отсортированных кусков данных из бд.
30 1570716
>>70715
Запусти профилировщик и посмотри. Вангую, что сортировка в питоне будет жрать памяти немерено.
31 1570744
>>70715
Кстати, монгодб уже умеет не загружать всю базу в оперативную память при восстановлении после некорректного завершения работы?
32 1570755
>>70235
def __iter__(self):
__with open(self.filepath) as f:
____for line in f.read().splitlines():
______yield line
33 1570772
Простите за глупый вопрос.

Есть желание выучить python. Вернее мне предложили это сделать на работе. Но навыки программирования у меня следующие:
1)Писал что-то для микроконтроллера на си в универе. Писал криво, без каких-либо правил программирования
2) писал скрипты и макросы для эксель
3) написал сайт в универе, который хранил логины и пароли в SQL
4) написал табличку в борлэнд с++ билдер на ~250 строк кода.
То есть мне нужно обучаться почти с самого нуля в целом программированию, а не только пайтону. И это вводит меня в ступор. Все ссылки выглядят так будто они уже для тех, кто знает программирование.

Я правильно понимаю, что лекции от мфти будет идеальным вариантом для начала вкатывания? Или лучше какую-нибудь книжку.
И где брать практику.
34 1570806
function all_the_same at 0x0181C220

Подскажите, плиз, что с этой ебаниной делать? Бесит ужасно, но всегда проёбываю , что я сделал перед ней и потому не знаю из-за чего это и как фиксить
35 1570811
>>70806
М... Вызвать?
Наверное, ты принтишь саму функцию вместо того, чтобы её вызвать и принтить результат.
36 1570813
>>70811
Спасибо, на будущее запомню
37 1570821
>>70772

>выучить python


Что именно ты под этим подразумеваешь? Веб-разработка, фуллстак, машин лернинг, шкрепты для автоматизации какой-нибудь хуйни на работе?
38 1570854
>>70821
Нейронные сети. Именно они. Скрипты я умею писать
39 1570855
>>70854
не лезь блять, дебил сука ебаный. ты чо хуел, я те сказали чтоли. залесь нахрен нахуй обратно блять! Дебил бляять.
ОНА ТЕБЯ СОЖРЁТ, БЛЯТЬ! НАХУЙ ТЫ..
ААААААААА
БЛЯЯЯТЬ! СС
ЁЁЁЁЁ
СУКА! ЕБАН (АААААААААА)
(кряхтя) блиять
ААААААААААААААААААААААААААА

ДА БЛЯЯЯЯЯЯТЬ СУКА
40 1570868
>>70855
ахахах мемы))
41 1570901
>>70855
Я молод, у меня все в порядке с математикой (знаю хорошо ТОЭ, ТАУ, думаю выучить что-то еще не составит труда, у меня есть желание заниматься чем-то сложным, но хоть на 5% интересным, я думаю, что я буду хорошим и уникальным специалистом если совместить мои знания технологии с навыками работы нейросетей.
Но если опишешь подводных медведец то буду рад
42 1570909
>>70901
Так а зачем тебе питон тогда? Если ты знаешь математику и хочешь чем-то интересным с нейросетями заниматься, тебе скорее нужны алгоритмы и плюсы.
43 1570920
>>70909
В компании уже с python'ом работают. Да и , вроде, все курсы онлайн школ, что я видел на нем учат с нейросетями работать.
Я хочу к этим курсам подготовиться
Плюс моя математика не отличная, просто лучше, чем у рядового выпускника тех. вуза по моей специальности. Я же не на примате учился и не в MIT.
44 1570923
>>70909
Ну я не против начать изучать программирование с азов. Но только не стой скоростью, что предлагают всякие скиллбоксы. Начать я могу и с самообучения, а уже потом думаю взять курс на нетологии по машинному обучению
45 1570932
>>70050
Какого такого курса ?
46 1570943
>>70854
Тогда тебе лучше в машоб тред. Тут учат циклы и манипуляции со списками.
cachedfile15779973884321.mp4735 Кб, mp4,
288x360, 0:08
47 1570946
48 1571007
>>70943
Спасибо, анон
image.png5,7 Мб, 2000x1994
49 1571047
>>70932
Из шапки
50 1571085
Это немного не по теме треда, но как вы печатаете? Я сейчас пытаюсь научиться десятипальцевой печати, но прогать ей вообще невозможно, из-за того, что половина символов приходится на правый мизинец, ещё эти постоянные нижние подчёркивания
51 1571089
>>71085
Как придётся, никогда не заморачивался с этим. Открыл как-то картинку, где было изображено правильное положение пальцев в десятипальцевом, попробовал, не осилил, закрыл.
Вот бы хоть один из этих "методов правильного печатания" помогал быстрее переучиваться с одной клавиатуры на другую.
52 1571097
>>71085
Переходи на дворак, намного удобнее для десятипальцевой печати
53 1571098
У меня есть большой список из 365 интов. Мне нужно сумму каждых 7 интов в этом списке поделить на первое, второе, третье и т.д. число в другом списке и сложить их в другой список, т.е. грубо говоря:
result = []
lst1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,....,365]
lst2 = [5,10,15,.......]

result = [
((1+2+3+4+5+6+7)/5),
((8+9+10+11+12+13+14)/10),
........
]

Как это сделать?
54 1571107
>>71098
Бежать по первому списку циклом с шагом 7, брать от текущего элемента слайс из 7 элементов и делить на нужный элемент второго списка
Например, так:
j = 0
for i in range(0, len(lst1), 7):
..result.append(sum(lst1[i:i+7]) / lst2[j])
..j += 1
55 1571110
Есть файл с n-нным количеством строк, нужно эти строки считать, но так, чтобы все было в одну строчку (без переходов на новую строку). Пробовал replace() заменить все '\n' на ' ', но никаких изменений не произошло. Може кто знает как эти строки из файла соеденить в одну сплошную строку?
56 1571113
ААААААААААААААААААААААААА
ЁБАНЫЙ ЗАПРОС НЕ РАБОТАЛ ИЗ-ЗА ССАНОЙ ЗАПЯТОЙ БЛЯТЬ ПИЗДЕЦ
СУКА
57 1571114
>>71089
У меня как придётся получается 25 слов в минуту, во всяких туториалах не успеваю, за ютуберами, догоняю, пока они пиздят.
>>71097
Посмотрел, реально удобнее выглядит, но надо ещё, наверное, скобки куда-нибудь на левую руку перенести
>>71113
sqlite3? Подавал туда одну переменную, вместо кортежа? Мне хватило минут 15 чтобы понять в чём проблема
58 1571117
>>71114

> Подавал туда одну переменную, вместо кортежа?


Ага.
Надо '''запрос, (a,)''' вместо '''запрос, (a)'''.
59 1571126
>>71110

>


Может, у тебя там ещё и '\r' ?
60 1571135
>>71113
Это не ссаная запятая, это разные типы данных.
61 1571141
>>71126
Ну да, я же файл на чтение открываю
62 1571155
>>71141
Не, я про символ возврата каретки. Короче, кроме замены \n попробуй ещё сделать replace('\r', ' ')
63 1571223
>>71107
От души, братишка.
cover4.jpg50 Кб, 800x450
64 1571224
Какие часто используемые паттерные в flask/django?
Хочу почитать, так бы банду четырех почитал бы, но время ограниченно
65 1571230
>>71155
Спс, сработало )
66 1571243
a = [[1,2,3]]*2
a[0].remove(1)
print(a[1])

почему?
67 1571255
>>71243
v = [1,2,4]
a = [v,v]
v.remove(1)
68 1571256
>>71255
ясно, это пиздец
image.png19 Кб, 506x307
69 1571258
>>71243
Ты берешь один объект списка [1,2,3] и два раза ложишь ссылку на него в список a. Потом этот объект меняешь.
70 1571262
>>71243
Можно ещё так, чтобы списки были разными объектами:
a = [[1,2,3] for _ in range(2)]
71 1571282
>>71258
Клево объяснил, спасибо
72 1571302
Сап, ньюфаг на связи. Куда можно вкатиться с питоном? Только в бэкэнд и дата сайнс? Или есть еще что-то?
73 1571314
>>71302
В цирк
74 1571316
>>71314
Питонист слабее тигра и льва, но в цирке не выступает.
76 1571411
>>71302
Тестирование автоматизированное
77 1571498
Нашёл видос на ютубе, как написать парсер на питоне для headhunter
https://www.youtube.com/watch?v=lgGkBh8IUok

Списал код, а он не пашет, это вообще нормальная ситуация в программировании?

Полный 0 в программировании пытается пиздить чужой код
78 1571500
>>71498
Код забыл!

import requests
import csv
from bs4 import BeautifulSoup as bs

headers={'accept': '/',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10 14 2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}

base_url='https://hh.ru/search/vacancy?area=1&search_period=3&text=python&page=0'

def hh_parse(base_url, headers):
jobs=[]
urls=[]
urls.append(base_url)
session=requests.Session()
request=session.get(base_url, headers=headers)
if request.status_code == 200:
request = session.get(base_url, headers=headers)
soup = bs(request.content, 'lxml')
try:
pagination = soup.find_all('a', attrs={'data-qa': 'pager-page'})
count = int(pagination[-1].text)
for i in range(count):
url = f'https://hh.ru/search/vacancy?area=1&search_period=3&text=python&page={i}'
if url not in urls:
urls.append(url)
except:
pass

for url in urls:
request = session.get(url, headers=headers)
soup = bs(request.content, 'lxml')
divs = soup.find_all('div', attrs={'class': 'vacancy-serp-item'})
for div in divs:
try:
title = div.find('a', attrs={'data-qa': 'vacancy-serp__vacancy-title'}).text
href = div.find('a', attrs={'data-qa': 'vacancy-serp__vacancy-title'})['href']
company = div.find('a', attrs={'data-qa': 'vacancy-serp__vacancy-employer'}).text
text1=div.find('div', attrs={'data-qa': 'vacancy-serp__vacancy_snippet_responsibility'}).text
text2=div.find('div', attrs={'data-qa': 'vacancy-serp__vacancy_snippet_requirement'}).text
content = text1 + ' ' + text2
jobs.append({
'title': title,
'href': href,
'company': company,
'content': content
})
except:
pass

print(len(jobs))
else:
print('ERROR or Done' + str(request.status_code))
return jobs

def files_writer(jobs):
with open('parsed_jobs.csv', 'w') as file:
a_pen = csv.writer(file)
a_pen.writerow(('Название вакансии', 'URL', 'Название компании', 'Описание'))
for job in jobs:
a_pen.writerow((job['title'], job['href'], job['company'], job['content']))

jobs = hh_parse(base_url, headers)
files_writer(jobs)

Полный 0 в программировании пытается пиздить чужой код
78 1571500
>>71498
Код забыл!

import requests
import csv
from bs4 import BeautifulSoup as bs

headers={'accept': '/',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10 14 2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}

base_url='https://hh.ru/search/vacancy?area=1&search_period=3&text=python&page=0'

def hh_parse(base_url, headers):
jobs=[]
urls=[]
urls.append(base_url)
session=requests.Session()
request=session.get(base_url, headers=headers)
if request.status_code == 200:
request = session.get(base_url, headers=headers)
soup = bs(request.content, 'lxml')
try:
pagination = soup.find_all('a', attrs={'data-qa': 'pager-page'})
count = int(pagination[-1].text)
for i in range(count):
url = f'https://hh.ru/search/vacancy?area=1&search_period=3&text=python&page={i}'
if url not in urls:
urls.append(url)
except:
pass

for url in urls:
request = session.get(url, headers=headers)
soup = bs(request.content, 'lxml')
divs = soup.find_all('div', attrs={'class': 'vacancy-serp-item'})
for div in divs:
try:
title = div.find('a', attrs={'data-qa': 'vacancy-serp__vacancy-title'}).text
href = div.find('a', attrs={'data-qa': 'vacancy-serp__vacancy-title'})['href']
company = div.find('a', attrs={'data-qa': 'vacancy-serp__vacancy-employer'}).text
text1=div.find('div', attrs={'data-qa': 'vacancy-serp__vacancy_snippet_responsibility'}).text
text2=div.find('div', attrs={'data-qa': 'vacancy-serp__vacancy_snippet_requirement'}).text
content = text1 + ' ' + text2
jobs.append({
'title': title,
'href': href,
'company': company,
'content': content
})
except:
pass

print(len(jobs))
else:
print('ERROR or Done' + str(request.status_code))
return jobs

def files_writer(jobs):
with open('parsed_jobs.csv', 'w') as file:
a_pen = csv.writer(file)
a_pen.writerow(('Название вакансии', 'URL', 'Название компании', 'Описание'))
for job in jobs:
a_pen.writerow((job['title'], job['href'], job['company'], job['content']))

jobs = hh_parse(base_url, headers)
files_writer(jobs)

Полный 0 в программировании пытается пиздить чужой код
79 1571501
>>71500
Сука, чё за tttt

Полный 0 в программировании пытается пиздить чужой код
80 1571505
>>71501
И что ты хочешь чтобы мы сделали? Покормили тебя с ложечки?
81 1571542
>>71498
Не списывай просто, пока хуй в видосе печатает, ты тоже печатай. Когда он будет пробовать, как работают куски его программы ты тоже пробуй, короче, делай, всё что он делает.
82 1571549
>>71542
Хорошо, спасибо, попробую
1379502562830.jpg40 Кб, 403x403
83 1571552
Почему при наполнении множества уникальными словами (>2000) из 3мб текста мне не хватает 30 гигов озу?
84 1571556
>>70464
что за фильм?
85 1571566
>>71552
Множество как и словарь по своему условию потребляет больше памяти чем другие типы данных, но у тебя очевидный косяк.
86 1571570
>>71552
Вангую 2000 множеств и код в функцианальном стиле.
87 1571574
>>71047
не могу найти
88 1571578
>>71570
input_characters = set()

for sent in input_texts:
____input_sentlist = sent.split(' ')
____for word in input_sentlist:
________if word not in input_characters:
____________input_characters.add(word)
89 1571597
>>71578
input_characters = {}

for sent in input_texts:
____input_sentlist = sent.split(' ')
____for word in input_sentlist:
________input_characters[word] = True

input_characters = input_characters.keys()

попробуй вот так, должно меньше кушоть
90 1571623
>>71597
На 3% быстрее.
91 1571642
Я ничё понять не могу. Вот у меня есть функция os.rename(name,nName). Она выполняется только при условии, что я нажал кнопку (Гуи запилен на tkinter)

yesButton=Button(frameButtons12, text="Rename", command=BSave(entryRe))

Если я заместо nName подставляю какую-то определённую строку, то код выполняется. Но когда я оставляю там переменную, которая должна браться из поля ввода entry

nName = entryRe.get()

то выскакивает ошибка

FileNotFoundError: [WinError 3] Системе не удается найти указанный путь: 'New_Text_3' -> ''

Да, как бы там действительно пусто и я понимаю, почему система не может записать файл с нулевым названием. Но я не понимаю, почему программа заранее считает что в поле ввода entry пусто, ведь команда os.rename идёт уже после получения содержимого поля entryRe

nName = entryRe.get()
os.rename(name,nName)

Следовательно сперва должно идти получение содержимого а уже потом переименование

Полный код
https://pastebin.com/tHa6QLDm
92 1571656
Не могу понять, как мне составить гистограмму с частотой показателей в массиве c числами.
Я хочу, чтобы по оси у была указана частота в процентах, сколько у меня встречается это значение, а по оси х - сам показатель, как на первом пикрелейтеде.
А выходит у меня второй пикрелейтед, что являет собой полную хуету.
Код: https://pastebin.com/UNX3wuNs
93 1571681
>>69408 (OP)
Аноны, как вы увидели, эта ссылка не работает https://drive.google.com/drive/folders/13YaFijvuH4dtv-PjUKVWLQ7ZIqXIfCLK
Возможно есть другая ссылка на такой же диск, что был по этой? Поскольку по этой ссылке было больше всего книг, не хотелось бы терять такой замечательный диск.
94 1571704
>>71681
Забей на рутрекере "python pdf" и получишь точно такой же замечательный диск.
TcgnM9r0TuI.jpg169 Кб, 1280x692
95 1571805
Ребзи, я тоже нуфаня, поэтому строго не обоссывайте. Суть: Работаю с джангой, про рест апи почти ничего не знаю. Вообщем появилась задача сделать рест апи сервис для джанго приложения, однако рест джанги (Django Rest Framework) использовать нельзя. Вопрос: где-то можно посмотреть, как это реализовывать? Может туторы/гайды где-то есть, или видео? Подскажите пожалуйста молодому джуну
96 1571811
>>71805
Джуны умеют гуглить, а ты нет, ты не джун.
97 1571844
SELECT song_name FROM Info WHERE id=1
как выполнить такой запрос через sqlalchemy?
делаю так:
db.session.query(Info.song_name).get(1)
выдает:
sqlalchemy.exc.InvalidRequestError: get() can only be used against a single mapped class.
98 1571866
euros_count = 100
euros_per_dollars = 100 1.25
dollars_per_rubles = euros_per_dollars
60
print(euros_per_dollars\ndollars_per_euros)

Как при помощи \n перенести строку между переменными ?
99 1571867
>>71866
print(..., end="\n") ???
100 1571869
>>69408 (OP)
Сап, как крякнуть pycharm про, если 30 дней триала прошло? В инструкции написано зайти в "Configure" или "Help" и зайти в "Edit Custom VM Options..."

А я не могу туда зайти, из-за того что триалка кончилась
101 1571872
>>71867
нет только \n можно end не проходили еще
102 1571876
>>71869
все, фиксанул, сорян
103 1571877
>>71872
Что значит не проходили? У вас в школе для даунов запрещено брать информацию с интернета? Лол
104 1571879
>>71867
А всё нашел сорян эта поебота только внутри ковычек
105 1571880
>>71869
на торрентах без триала крякается, для линухи и для венды есть
106 1571882
>>71811
Я нашёл только принципы как это работает и небольшие примеры. А мне нужно создание полноценного сервиса, ибо я полный ноль в этом, к тому же время сильно ограничено. Поэтому тут и спросил, мб кто знает.
107 1571884
>>71877
незя и ваще это то же не работает я ужу сделал даунским методом
108 1571886
>>71882
как вариант глянуть в книге django by example или там best practics
109 1571891
>>71877
Точнее способом
110 1571912
>>71877
Это всё каадратно-гнездовой способ преподавания людьми, которые ни дня не работали программистами, но зато "уважаемые профессора, которые преподают больше 50 лет".
111 1571932
>>69408 (OP)
Ребят, подскажите, плиз больше сайтов с задачками, желательно чтобы был раздел с элементарными. Ебусь с обработками массивов по два дня, хочу надрочиться на лайтовых задачках чтобы легче телега ехала
B8DD1A7D-416E-4D6B-AD59-9EED3371092D.jpeg37 Кб, 800x545
112 1571938
>>71932
но... в питоне нет массивов
113 1571946
>>71938
ну списки ёпта какая разница то =) одна хуйня
114 1571947
>>71912
Да я курс на сайте прохожу нету там вообще никого успокойся
115 1571948
Утро в хату. Есть один скрипт на питоне, который я хочу зараспространить среди свой компании в виде веб-сервиса (доменное имя для меня уже подготовили, нжинкс я поднял).
Вопрос в том, как мне запиздрячить на страничку свой питоновский код?
Иными словами, хочу поднять на нжинксе страничку, где будет кнопка, например "зделоть пиздато". По нажатии на кнопку запускается мой питоновский скрипт, и юзер получает результат, например выводится сообщение "зделоно".

В идеале мне нужно будет подучить жс, чтобы вывести кнопки к себе на страничку, но в целом, я даже хз, куда копать, что смотреть, какие гайды брать?
116 1571956
>>71948

> нжинкс


Ахахахах

Поднимай uwsgi. Или хотя бы апач с mod_wsgi
117 1571977
>>71956
Почему? Какая разница?
118 1571985
>>71977
nginx - это по большей части либо раздача статического контента (то есть никакого бекенда с логикой), либо прокси, то есть пересылка всех запросов на другой порт, на котором запущено приложение.
119 1572033
>>71985
По-твоему на нжинксе нельзя поднять веб аппликуху, которая сделает одно действие?
120 1572039
>>72033
Можно, конечно. Есть даже какие-то плагины.
А ещё можно вообще без отдельного сервера обойтись и всё сделать на питоне.
121 1572041
>>71948
Не проще ли на фласке это сделать?
мимопытаюсьвкатиться
122 1572046
>>72039
>>72041
Вот я и прошу помощи. Если можно сделать на фласке - есть ли годный гайд, как это все организовать? Особенно по сетевой части, а то я вообще в этом не разбираюсь. Мне вот в нашей корпоративной локалке выдали домен - vpupkin.ln, я смогу на нем захостить свое приложение? Я просто думал, что это ток через веб сервер можно сделать, там резолв просто организуется.
123 1572047
>>71938
А не пиздишь ли ты часом?
import array
124 1572055
>>72046
Почитай по фласку пару туториалов каких-нибудь. Там можно на определённый URL (например, /) повесить функцию-обработчик, в которой можно вызвать твой скрипт, например.
Фласк сам по себе веб-сервером не является, но с ним идёт сервер для разработки/отладки. Его всерьёз использовать не рекомендуется, но вдруг для нужд вашей организации хватит.
Просто повесить в автозапуск скрипт, он будет слушать какой-нибудь порт и вызывать обработчик.

А ещё можно использовать cgi, но там всё несколько сложнее, да и в 2020 никто так не делает.
125 1572058
>>72055
Ну или даже не фласк, а bottle.
126 1572059
>>72046
Хостишь приложение не на домене, а на сервере. Для адреса vpupkin.ln необходимо в A записи указать ip адрес сервера на котором будет твое приложение.
127 1572066
>>71556
Серьезно? Индиана Джонс 3.
128 1572071
>>72059
А что такое А запись?

>ip адрес сервера


Это адрес моего компа в нашей локалке, получается? Доступ к аппликухе будет только из-под нашей локалки.
129 1572072
>>72055
Можно с фласком на replit поиграть и понять подойдет или нет
https://repl.it/repls/MindlessFoolhardyDaemons
130 1572081
>>72071

>А-запись указывает адрес, куда должен ссылаться Ваш домен. Обычно это адрес хостинг-сервера, на котором располагается контент (содержимое) сайта.


>Это адрес моего компа в нашей локалке, получается?


Если приложение будет на твоем компе запускатся то да, но возможно нужно будет какие-нибудь порты пробросить. Если я ошибаюсь пусть мудрый анон меня поправит
cover4.jpg50 Кб, 800x450
131 1572108
- SELECT song_name FROM Info WHERE id=1
- db.session.query(Info.song_name).filter(Info.id == 1).one()
для sql запроса через alchemy это единственный короткий способ?
Когда пишу Info.query(Info.song_name).filter(Info.id == 1).one() то арёт на TypeError: 'BaseQuery' object is not callable
И стоит ли пользоваться select'ом на чистом sql запрашивать когда есть обертка sqlalchemy
132 1572153
Запихивать в докер небольшой скрипт пингующий сервера и алертящий в слак, если они легли, ок или из пушки по воробьям?
133 1572182
>>72153
А зачем в докер? Пускай так крутится.
134 1572229
>>72182

>А зачем в докер?


¯\_(ツ)_/¯
135 1572308
>>72182
Ты шо, сейчас же модно все докер сунуть, что б было.
>>72153
Сама идея то норм, почему нет? Сунуть в докер возможно не стоило, но ради опыта - ок.
Если тебе по работе надо такое, то взгляни на готовые сервисы ибо функционал там шире.
136 1572320
>>71642
Бамп
137 1572348
>>71947
М-да, вот вам и курсы. А ещё кто-то говорит, что книги/учебники нинужны.
138 1572352
>>72348
По книжке я тож занимаюсь, иди нах уже короче быдло
139 1572459
>>72352
Вангую у тебя было задание по конкатенации строк и тебе надо было
Str1 + '\n' + str2 но ты попал под троллинг
140 1572508
>>72459
Все так, я почему то забываю про кавычки все время. Книга эта конечно пиздец "Изучаем питон", сначала две три страницы "отборных" данных и прочих примеров, а потом -"Ну если вы новичок можете не акцентировать на этом внимание"
В этом плане курсы героиновые https://ru.code-basics.com/ подиничамичнее, поэтому я комбинирую.
141 1572588
>>72508
Я лично щитаю, что нужно сначала пройти укус питона, получить знания синтаксиса, а потом зная синтаксис сразу в курс хирьянова по алгоритмам, там практики дохуя, как раз надрочишься.
А лутц хуета.
142 1572593
>>72588
А пройти пару курсов на метаните норм?
143 1572634
>>72588
Этого чела когда начал сразу кинул в избранное, нихуя не понятно но ясно что пригодится
144 1572635
>>72593
Ачо батее codebasics или метанин ?
145 1572642
>>72593
>>72635
Тут многие почему-то гонят на метанит, так что.
146 1572648
как реализовать пустой указатель на python
Нужно что-то проинициализировать, а уже потом присваивать
147 1572649
>>72648
имя = None
148 1572777
Сап, питонач, есть пара полей на форме, и нужно проверить их на содержимое. Надо ли проверку по каждому полю выделять в отдельную функцию а потом вызывать их в рамках ещё большей функции или захуячить в одну большую? Не много if-else'ов будет?
149 1572839
>>72777
Если пишешь код, который будут читать другие люди то с таким подходом захуячить нужно тебя, то конечно нужно сделать несколько коротких легкочитаемых методов. А еще лучше нати готовое решение для валидации.
150 1572994
Практика программирования на Python 3, лекция №1 или
Алгоритмы на Python 3. Лекция №1

Это одно и то же ??? Что выбрать ? Есть кто уже Хирьянова смотрел ?
151 1572995
>>72994
Алгоритмы выбирай
152 1572996
>>72995
Ты смотрел или на слово сбайтился ? дело в том что это один и тот ж курс прост названия разные прост один новее (вроде так)
153 1573000
>>72996
Нет, не так
154 1573001
>>73000
Смотрю, первую лекцию, то же самое
155 1573012
>>73001
Остальные посмотри, заебал
156 1573014
>>73012
Бля у этих лекций даже одна и та же практика. Твои действия ? Хочешь сказать разница только в риторике ?
157 1573015
Не очень понимаю, что значит stateless. Вот например есть antihammering защита какая-то на сервере, сохраняется некоторый список айпишников или логинов и время, в течение которого от них нельзя принимать попытки войти, это же уже некоторое состояние?
158 1573019
>>73014
Блядь, ты заебал, какого хуя ты такой тормозной? Не одна у них практика нихуя, я специально зашел, чтобы ещё раз посмотреть. В КУРСЕ ПРАКТИКА ПРОГРАММИРОВАНИЯ НЕТ АЛГОРИТМОВ. В КУРСЕ ПО АЛГОРИТМАМ НЕТ ПРО ГИТ, ПРО ПЕП, ПРО ТЕСТИРОВАНИЕ, МЕНЬШЕ ПРО ООП. Это тупо разные курсы. Может программирование это не твоё, если ты не можешь просто покликать по видосам в разных местах и посмотреть что там?
159 1573021
>>73015

>это же уже некоторое состояние


Да. Но обычно стейтлесс говорят про приложение. Это означает, что любой запрос может быть обработан любым сервером. Т.е. состояние вынесено наружу приложения, например, в бд. Например, сессию хранишь ты в jwt, а его юзеру записываешь в куки, запускаешь 10 копий приложения и теперь сессию берешь из каждого реквеста, т.е. у тебя в приложухе нет состояния сессии, которое надо поддерживать.
160 1573025
>>73015
Даже Keep-Alive-соединения - это уже atateful в каком-то смысле.
Стейтфул изначально подразумевает архитектуру вида "подключился - отправил один или более запросов, получил на каждый ответ - отключился", причём построено всё так, что в общем случае нельзя отправить все запросы в новых подключениях (сессиях), всё обязательно должно идти через одно. Например, FTP или SSH.
Стейтлесс же наоборот говорит: можете отправлять запросы в одном подключении, можете в разных, но результат от этого зависеть не должен. В результате, состояние не связывается с конкретным соединением, а гоняется туда-сюда при каждом подключении, как куки.
161 1573026
>>73021

>Т.е. состояние вынесено наружу приложения, например, в бд.


То есть если есть какая-то база данных, к которой все сервера обращаются, то это всё равно stateless приложение?
Как я понимаю, сам jwt нужен, чтобы избежать хранения сессий в такой базе данных, но с защитой от брутфорса так не получится, клиент не будет ничего хранить.
162 1573028
>>73019
Спасибо за информацию, с тебя инфы хуй дождешься. Не рили спс не нервничай, теперь можно и покумекать что выбрать кек пук.
163 1573032
>>73025
Но ведь браузеры на каждый запрос делают новое соединение, тогда получается, что в вебе всё stateless? Или тогда правильно сказать, что сам http протокол stateless, но серверное приложение само по себе может сохранять состояние, а может нет и при этом сохранение состояния в бд != сохранение состояния у приложения...
164 1573033
>>73026

>То есть если есть какая-то база данных, к которой все сервера обращаются, то это всё равно stateless приложение?


Конечно. Суть в том, что конкретный процесс твоего конкретного приложения не имеет внутреннего состояния, от которого завит обработка запроса. Если он это состояния при каждом запросе берет из постороннего сервиса, то это не делает его стейтфул, а наоборот как раз.

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


Jwt нужен чтобы хранить сессию на стороне клиента. Да вообще в данном контексте это не важно, главное что ты хранишь состояние не в своем приложении, а снаружи.
165 1573035
>>73032
Не обязательно новое, см. Keep-Alive.

Stateless говорится про протокол HTTP, приложение практически никогда не бывает stateless (кроме простейших случаев, где что-нибудь налету считается и сразу возвращается пользователю).
166 1573038
>>73035

>приложение практически никогда не бывает stateless


Да ну ты чего, наоборот же, практически всегда делают стейтлесс приложения, уж в вебе то точно. Иначе очень трудно масштабировать.
167 1573039
>>73038
Ну, стейтлесс оно может быть в плане того, что не хранит дополнительную информацию в ОЗУ. Но оно же всё равно грузит кучу данных из БД и иногда из файлов. Хотя это скорее философский вопрос, считать ли это частью приложения, или приложение - это чисто логика.
168 1573043
В чем отличия этих двух импортов?
from bokeh.plotting import figure, show, output_file, output_notebook
import bokeh

Типо они по разному жрут память?
169 1573046
Суп питонач. Вопрос к адептам django по организации БД. Есть достаточно классическая задача. Хочу узнать у семпаев как ее лучше решить в БД:

Есть таблица "Финансовая операция". Операция может быть на положительную или отрицательную сумму, пополнение или списание средств. Для этой операции должна быть причина. Вот собственно вопрос, как должна выглядеть и чем вообще быть эта таблица "причина".
170 1573053
>>73043
import jopa
Импортирует библиотеку с ее неймспейсами. Т.е. вызов метода govno будет выглядеть как jopa.govno()
from jopa import govno
Импортирует только метод govno в неймспейс проекта, т.е. этот метод ты можешь вызывать просто govno()
from jopa import (звездочка блять)
Импортирует все из библиотеки в неймспейс проекта, т.е. ты можешь вызвать какой-нибудь fart(), которого в твоем проекте нет, но есть в той библиотеке
Будет лучше, если на самом деле разбирающиеся аноны меня поправят и дадут более четкий ответ
171 1573055
>>73046
Может сделать таблицу с Generic Foreign Key и привязывать к разным таблицам-причинам?
172 1573073
>>73053
Я знаю что различие в сокращенном варианте написания. Будет меньше писанины. Но меня интересует вопрос ресурсопотребления.
Есть ли разница или нет?

Просто я как ньюфаг, считаю что мне нужно прописывать полные пути к функциям. А в примерах постоянно импортируют методы и я путаюсь.
173 1573075
>>73035
>>73033
Понял, спасибо.
174 1573178
Бывает есть такая запись "слова-слова at 0x106fa2390"
Эти циферы что означают? Ячейка памяти?
175 1573216
Питонисты, этой херней правда можно DDoS'ить?

import threading
import requests

def dos():
while True:
requests.get("http://example.com")

while True:
threading.Thread(target=dos).start()
176 1573218
Я в начале января говорил, что делаю онлайн магазин и не хочу брать бустрап, буду сам фронт делать.
Не делайте так, пацаны, вы погрязните в этой хуете, если вы никаких нормальных курсов по фронту не проходили, вы проебете просто десятки часов дрочась методом тыка, пока не будет красиво.
Лучше сделайте супер рест эйпиай, чисто в консоли без фронта, как в демке в этом выступлении https://youtu.be/pZYRC8IbCwk
image.png36 Кб, 1168x208
177 1573222
>>73216
Ну прямо вот так особо не получится, но по сути да. Вот так ещё лучше.
178 1573229
>>73216
Я так уничтожил ядерную программу Ирана.
179 1573235
>>73216
Попробуй заодно slow headers.
180 1573514
>>73073
разницы в производительности нет
.png30 Кб, 502x244
181 1573618
Анон помоги, где я накосячил? Писал скрипт, считающий хэши файлов и столкнулся со след. проблемой: во время обработки больших файлов (>1gb) рандомно выдаёт другой хэш. Также имеет место высокая загрузка носителя во время работы(наверное это как-то связано)
182 1573622
>>69408 (OP)
Во что можно вкатиться с питоном, кроме веба, системного администратора и DS/ML?
183 1573623
>>73178
0x обозначает, что дальше идут цифры в 16-ой системе счисления, at - вероятно о памяти.
184 1573641
>>73622
Визуалки на renpy писать и язык движка godot очень на питон похож. ни во что
185 1573665
>>73514
Не обращайтесь к атрибутам

Ещё один механизм, способный замедлить программу — это оператор точка (.), который используется для доступа к атрибутам объектов. Этот оператор вызывает выполнение процедуры поиска по словарю с использованием __getattribute__, что создаёт дополнительную нагрузку на систему. Как ограничить влияние этой особенности Python на производительность?

# Медленно:
import re

def slow_func():
for i in range(10000):
re.findall(regex, line) # Медленно!

# Быстро:
from re import findall

def fast_func():
for i in range(10000):
findall(regex, line) # Быстрее!

>https://habr.com/ru/company/ruvds/blog/483678/

186 1573668
>>73622
Что ж, некоторые и под мобилки, и тырпрайз пишут на питоне. Но слишком некоторые.
187 1573677
>>73622
Если с ориентацией на рынок, то ни во что кроме обозначенного тобою, при том веб намного приоритетнее.
188 1573678
>>73665
Писать на питоне с оглядкой на производительность - пидорская тема. На питоне нужно писать читабельный код, близкий к английскому тексту. Если все работает и хочется быстрее, тогда уже запускаешь профилировщики и переписываешь проблемные методы на сишечке. Оператор точка им, блядь, тормозит. Пиздец просто.
189 1573755
>>69408 (OP)
По какой причине любые дескрипторы надо объявлять как атрибуты класса? Почему если я буду ставить дескрипторы скажем внутри метода __init__ они не будут работать? Что за пидорство?
190 1573779
Даже он вкотился, а ты нет.
https://opensource.com/article/20/1/prison-to-python
192 1573802
Нужно ли знать SQL для бэка на Питоне выше базовых быдло-команд?
193 1573851
>>73802
Смотря какой бек. Если примитивный круд, можно обмазаться ORM и вообще не знать скл.
194 1573883
>>73802
Нужно знать про типы данных и индексы, что/куда/почему.
Еще было бы неплохо про транзакции и прочее БД-специфичное иметь представление.
195 1574071
>>73783
Ну пиздец, теперь питон запретят.
изображение.png8 Кб, 762x150
196 1574523
>>73665

>https://habr.com/ru/company/ruvds/blog/483678/


обоссан в комментах
197 1574597
С фига ли в Питоне по умолчанию не стоит JIT компиляция?
198 1574615
>>74597
Потому же, почему и GIL.
199 1574633
Если хочу вкатиться в питон, то норм будет начать с этого Dive Into Python 3 ???
200 1574688
201 1574701
>>74633
Мне "погружение" зашло после официального туториала у последнего есть старый, но более-менее актуальный перевод: https://ru.wikibooks.org/wiki/Python/Учебник_Python_3.1
202 1574719
Где есть годные туториалы по написанию вирусов на Питонухе? Червь или вирус шпион?
203 1574732
>>74719
Ты ебанулся? Тебе в С-тред.
204 1574743
>>74732
Быдлокожу именно на Змее уже почти год. Подумал, будет полезным подрочить системное программирование на нем (пусть оно и более каличное чем на любой низкоуровневой ебале вроде того же С)
205 1574747
>>74719
Пишешь вирус, собираешь в py2win. Profit.
206 1574752
>>74743
Есть обёртки WinAPI/POSIX API для питона. Можно написать какой-нибудь системный сервис. Что-то более низкоуровневое получится вряд ли.
207 1574754
>>74597
Потому что Гвидо не осилил даже ast-парсер, а с тех пор всем стало похуй. Если тебя ебёт скорость, тебе не нужен питон.
208 1574755
Что происходит когда я сравниваю результаты функций и почему всегда выдает True?
def inta():
a = 1
print(a)
def intb():
b = 2
print(b)

>>inta() == intb()


1
2
True

>>

209 1574760
>>74755
Потому что обе возвращают None
210 1574763
>>74755
Не имеет значения, что ты принтишь в функции, важно только возвращаемое значение. Ты ничего не возвращаешь, то есть неявно возвращаешь None. None, очевидно, равен None.
211 1574766
>>74755
Твои функции печатают единицу и двойку, но ничего не возвращают. Поэтому == сравнивает два None
212 1574767
>>74760
Лол. Можно было и догадаться. Мне просто мысль пришла что я могу так сравнивать содержимое самой функции, идентичны ли они.
213 1574774
>>74767
Такое сравнение было бы без скобок:
inta == intb

Но это сравнит ссылки на функции, но не их код. Простого способа сравнить код нет.
214 1574778
>>74767
Это тоже можно делать. Но не нужно. Например, сериализовав функцию через pickle.
215 1574788
Еще вопрос. Есть декоратор и функция для обертки
пусть декоратор
. def decor(func):
. def wrapper():
. print('govno')
. func()
. print('mocha')
. return wrapper
и есть функция hello() которая выводит hello_world
и есть функция decor_hello, которая делает тоже самое но обернута в @decor
получается @decor каким то образом меняет код функции decor_hello и этот самый decor_hello вместо обычного hello_world выводит

>>decor_hello()


govno
hello_world
mocha

>>


Это значит что каким то образом, не знаю каким, @decor меняет код функции decor_hello и если бы у меня был способ сравнить код, пример
code_cmpr(hello, decor_hello)
он мне бы выдал False?

>>

216 1574789
>>74788
Думал он мне нормально с точками отобразит отступы, но обосрался.
217 1574791
>>74778
Ты хоть раз пробовал так делать?
218 1574796
>>74788
Декораторы ничего не меняют. Они оборачивают вызов одних функций в другие. Что-то типа
f = decor(f)
219 1574803
>>74796
Действительно, получилось в ручную так сделать, спасибо. Немного непривычно правда, зато понятно как декораторы работают. Получается вот зачем он wrapper() возвращает, чтобы потом его функцией оберткой и активировать.
220 1574817
Какие профиты от тайпинга? Если:

>The Python runtime does not enforce function and variable type annotations. They can be used by third party tools such as type checkers, IDEs, linters, etc.


Не троллю, просто интересуюсь.
221 1574819
>>74817
Документирование кода. Не нужно лезть в доки, достаточно глянуть на объявление функции.
165484556498410.png2 Кб, 353x137
222 1574821
>>74767
выебан лично Гвидо
223 1574827
>>74821
давнич
g() == f()
224 1574835
>>74827
Ты нихуя не понял.
225 1574836
>>74827
Давнич ты. Я сравнивал не вызовы функций __call__, а сами функции как объекты. Как видишь, оператор == для функций не имеет смысла можно канешн сравнить f == f, но что конкретно ты захочешь этим получить я хз
226 1574847
>>74836
ну так это два разных объекта, как один может быть равен другому?
3037807807.png13 Кб, 674x390
227 1574865
>>74847
Гвидо провёл шершавым уже во второй раз
36873687365823.png19 Кб, 542x547
228 1574874
>>74865
Вместо того чтоб спать хуйней маюсь бля
image.png1,3 Мб, 1080x562
229 1575036
Есть два питоновских скрипта. В скрипте №1 крутится бесконечный цикл (опрос оборудования), и по сигналу из скрипта №2 этот цикл должен прерываться. Как это можно реализовать? я правильно понял что это можно сделать только с помощью многопоточности и модуля threading
230 1575039
>>75036
да, запускаешь первый цикл в треде, добавляешь в него опрос переменной типа while not peremennaya:. А потом из второго цикла выставляешь peremennaya в 1, чтобы остановить первый цикл
231 1575163
>>75036
Можешь при запуске скрипта1 создавать файл и в цикле проверять его наличие. Если файл удален, то завершаешь скрипт. В скрипте2 удаляешь этот файл если надо завершить скрипт1.
233 1575279
>>75220
Увы, это все происходит на windows 7.
234 1575287
Как в питоне реализовать проверку ошибок?
То есть, если происходит ошибка - то запускается определённая ветка if
235 1575295
>>75287
Или что-нибудь вроде
if error == 'oshibka_1':
...
elif error == 'oshibka_2':
....
это если возвращаются функциями или ты их сам на генеришь в функции-методе, в которых надо обрабатывать.

или по сути примерно тоже самое, но с механизмом исключений try-except, он более мощный, но для более сложных случаев.
236 1575308
>>75039
И производительность на ровном месте падает ровно в 2 раза. Збс
237 1575319
Есть телеграм бот, который задеплоил на сервер pythonanywhere, теперь хочу прикрутить к нему базу данных, скорее всего sqlite3
Подскажите как ее залить на сервер
238 1575367
>>75308
Можно обмазаться подпроцессами.

>>75036
Можно обмазаться IPC через сокеты или файлы. Или очереди.
239 1575374
Как в pyCharm редактировать одинаковое слово во всем проекте ? Знает кто ? Или где узнавать такое ? Не гуглитсо
240 1575415
>>75374
Оно? https://www.jetbrains.com/help/pycharm/rename-refactorings.html
Первая ссылка в нигуглитсо
241 1575423
Какаю библиотеку учить, чтобы создавать GUI на подобии Windows Forms/WPF ???
Я не тролль
242 1575425
>>75415
Не ну а хуля ты внатуре конечно бля на не русском бля делаешь уеба бля ? (Спасибо)
243 1575429
>>75423
Tkinter
>>75425

>на не русском бля


Кожевенник, тред 1С двумя блоками ниже.
cachedfile15779973884321.mp4735 Кб, mp4,
288x360, 0:08
244 1575431
245 1575439
>>75429
у меня будет около 35-45 окон, я должен все это руками писать ????
246 1575448
>>75439
Напиши программу, которая будет вместо тебя окна писать.
247 1575472
>>75374
ctrl + shift + r
248 1575492
>>75439
Можешь взять PyQt и попробовать прикрутить Qt Designer, но хз, уживаются ли они вместе.
249 1575497
Народ пробую сделать конвертер с cp1251-cp1252 но что-то идет не так
https://pastebin.com/zVeSikLG
250 1575508
>>75497
Что происходит?
251 1575515
>>75508
на экране суде по всему всё хорошо, кодировка срабатывает, а вот в файл заливается то же что и было до. Т.е. без изменений.
252 1575543
>>75295
class Oshibca(Exeption):
__pass

def fun():
__raise Oshibca

try:
__fun()
except Oshibca:
__print('')
253 1575655
>>75497

>f.read().encode('cp1251').decode('cp1252')


Ты сначала кодируешь в 51, потом раскодируешь 52. По логике надо всё наоборот. С другой стороны ты уже расписал кодировки когда файлы открывал, так что я не уверен, что это вообще нужно. Хз короче, я у себя не пробовал.
254 1575657
Блять помогите а. Смотрю курс Хирьянова и первая практика задание про Робота я скачал но там задачи а куда ответы то пихать уже решенные что бы видеть как сам робот ходит. Где графен то как на картинке ? Нихуя не понятно
255 1575667
>>75657
Все начинаю догадываться ткинкер какой то ебаный насрал блеать
256 1575676
>>75657
Ты скачиваешь, открываешь питонофайл с лабой, там функция есть, её меняешь так, чтобы робот выполнил что надо
257 1575705
>>75676
Это понятно, просто не открывалась графика у меня не было tkinker
258 1575842
А где лучше всего искать удалёнку на западного барина сегодня? Опыт 6 лет, английский в порядке. Есть у кого такой опыт?
259 1575851
>>75842
Апворк, все ещё.
260 1575860
>>75851
Ну это фриланс, а я нацелился на конкретную фирму. Я пробовал несколько раз вкатиться в фриланс, кстати, и всегда заканчивалось ничем.
261 1575923
Как просмотреть в консоли от чего зависит конкретный пакет и какие установленные пакеты зависят от него самого?.. Помню, как-то можно было сделать, но хз как
262 1575998
>>75923
pip show
263 1576191
Надеюсь недочеловек не будет опять агриться. Короч нажал что то и теперь pyCharm не дописывает имена которые уже были, а показывает какие то методы или что то типо, не могу найти как вернуть как было. Классека даунизма короч.
264 1576271
Никто не помог: печатаю уже 340 слов в минуту. Ждите конкуренцию дауны.
265 1576278
266 1576281
>>76191
>>76271
Еблан, учись объяснять свою проблему
267 1576329
В Джанго проектах видел импорт с точкой в начале как:
from .models import Post
Что это значит?.. Модуля с именем .models нет нигде. Думал что это означает "из той же папки где находится этот скрипт обратись к файлу models.py и импортируй оттуда Post". Пробовал сделать так же в рандомном проекте - вылетает ошибка: ModuleNotFoundError: No module named '__main__.test111'; '__main__' is not a package
268 1576346
>>76329
Это файл models из твоей директории. Когда делаешь импорт через точку, то импортируешь компоненты из файла своей директории. Например from .urls import urlpatterns
269 1576357
>>76281
Все ж чотко обьяснил. Дописатор слов не работает. Он работает только на функции, операторы и всякое такое а раньше работал на любые слова(имена) если они повторялись. Можт как настройки можно сбросить к стандартным или чото типо этого
270 1576372
>>76357
Да забей, ты быстрее переустановишь и настроишь всё заново, чем кто-то тут тебе поможет.
Погугли, где пайчарм хранит папку с настройками, и удали её, либо сохрани в другом месте.
271 1576390
>>76346
Только почему у меня такой импорт не прокатил?
image.png62 Кб, 1049x569
272 1576440
Сап двач! Почему эта хуесосина пишет мне, что train.py нет в директории, если я в нее перешел?
273 1576442
>>76440
Рабочая директория может быть другая
274 1576443
>>76442
а как ее сменить?
image.png48 Кб, 1126x557
275 1576449
блядь, я в ней, но какого хуя. Я уже и новый колаб проверил, там без проблем запускает py файлы
Снимок.PNG152 Кб, 1367x688
276 1576488
Почему робот красит все клетки подряд а не только те на которых нету краски ??
277 1576497
>>76357

Вот по code completion

If code completion doesn't work, this may be due to one of the following reasons:

The Power Save Mode is on (File | Power Save Mode). Turning it on minimizes power consumption of your laptop by eliminating the background operations, including error highlighting, on-the-fly inspections, and code completion.

Your file doesn't reside in a content root, so it doesn't get the required class definitions and resources needed for code completion.

Refer to Configuring folders within a content root for more details.

A file containing classes and functions that you want to appear in completion suggestions list is marked as a plain text file.

External libraries that contain functions that you want to appear in the completion suggestions list are not added as dependencies or global libraries.

https://www.jetbrains.com/help/pycharm/auto-completing-code.html

мимо нуб
278 1576516
>>76497
не подходит, у меня функции и всякое такое дописывает а имена перестало дописывать
279 1576519
>>76440
Потому что хуесосина eto ti.
280 1576541
>>76516
ты про переменные? если они у тебя ранее не определены, определены внутри класса/функции или не импортированы, то дальше по коду они не будут автокомплитится.

вообще скриншот покажи, так проще будет.

>мимо нуб

281 1576542
>>76541
А точно! Спс. А еще можешь помочь с роботом выше скрин ?
282 1576543
>>76488
Насколько я помню, эта проверка на то, красил ли ты сам уже ячейку. Тебе нужно проверять верхнюю стену
283 1576560
>>76543
Пиздец, спасибо
Снимок.PNG6 Кб, 485x153
284 1576598
Как лучше сделать а то как то ебано ?
285 1576611
работают ли библиотеки tf, cyclegan на картах от амд?
286 1576613
>>76598
Ну можно переделать в while true и в конце, если стена справа то break. Но по сути как-то особо красиво переделать не получится
Screenshot 2020-01-18 at 20.34.46.png12 Кб, 372x86
287 1576653
Зачем писать название ошибки в except, если и без него ошибку обрабатывает нормально?
288 1576659
>>76653
Типа чтоб не проебать непредвиденную ошибку наверное
289 1576681
За какое время можно осилить http://composingprograms.com/ , хочу поставить себе рамки самообучения для дисциплины. В день могу тратить 3-4 часа на это.
290 1576685
А есть какой-то грамотный курс, чтобы бэкэндер мог быстро и уверенно вкатиться в современный фронт? Чтобы там было ориентировано на людей, которые уже собирали фронт кусками, парсили html, спокойно пишут на жс и всё такое, но нихуя не понимают, как верстать страницы правильно.
291 1576715
>>76653
Наверное, чтобы обрабатывать определённые ошибки определённым образом? Или в чём вопрос?
15551767753250.jpg170 Кб, 720x960
292 1576734
Подскажите сервис генерации sql кода в в класс моделей питон кода
15353848915230.jpg65 Кб, 500x669
294 1576777
>>76766
Нихуя себе! Так можно было ! Анон спасибо, ты даже не представляешь как выручил.
295 1576785
>>76766
Да да, я уже вспомнил, жаль што импорт там платный, мб есть фришное типо umbrello?
Есть конечно vertabelo.com но там нет генерации в питон
296 1576787
>>76785
Хотя чет импорта в pynyorm и нет вроде
297 1576859
>>76785
Какой импорт?
298 1577155
>>76859
импорт sql и потом уже ER, наподобие vertabelo, и штоп в питон модели можно было, дада я губу раскатал
299 1577254
>>76659
>>76715
Т.е. тут прописан KeyError и если вылезет ошибка другого типа, то он её не отработает и напишет?
300 1577311
>>76613
mov(r, v)Поместить значение v в регистр r

что это за ебола и как в этих заданиях про робота использовать
?
301 1577339
>>77311
Это в последнем задание понадобиться. Пока забей.
cover4.jpg50 Кб, 800x450
302 1577407
Нашёл проект на жидхабе с django, в файлах пишет шо версия 1.9
Какой вариант проще, создать сразу на версии 3 или 2 lts, или же попытаться запустить под 1.9 (что не получается)?
303 1577439
>>77407
Да.
304 1577446
Пизда.
305 1577447
>>77439
ПИЗДА!
306 1577448
Чтото я найти не могу.
При таком раскладе
./main/root/lala.py
./main/repository.py

Как мне в лала заимпортить репозиторий?

from main.repository import * не работает.
307 1577503
>>77407
Охуительные ошибки которые вылазили 1.9 и 1.11 сами ушли
308 1577531
PyCharm, или VS Code? До недавнего времени я всегда склонялся к PyCharm, потому что я с ним уже 4 года и знаю его довольно хорошо. Но железо (mac pro 2013, 8Gb memory) побудило меня испробовать VS Code. И теперь я сижу только на нем. VS Code ничем не уступает, а работает гораздо быстрее. Рекомендую всем, у кого оперативки менее 12Gb.
309 1577546
>>77531
А третью версию питона не пробовал? Лучше, чем вторая?
1-8.png8 Кб, 452x225
310 1577573
Суть такова. Есть простой код на Си, надо его переписать на питоне.

Пример кода на Си представлен здесь:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/accounting/psi.rst

В Линуксах начиная с 5.2 появилось улучшение подсистемы PSI, позволяющее определять превышение заданных метрик с использованием epoll().

Первым этапом прелагается вписать строку в дескриптор файла /proc/pressure/memory, и далее проводить опрос с помощью epoll().

На первом этапе возникает проблема.

Открываю дескриптор, получаю его номер, все ОК. Но при попытке записи предлагаемой строки получаю ошибку [Errno 22] Invalid argument. С сишным кодом проблем нет, все работает как задумано.

Код на питоне: https://pastebin.com/5Sj98iTQ

В чем ошибка? Как исправить?
изображение.png27 Кб, 1364x618
311 1577598
>>77573
на винде твой код работает. Только у тебя в коде 2 раза fd вместо fd1 упоминается + в моём модуле os нету os.O_NONBLOCK, а dir_fd=None вабще неизвестный судя-по всему аргумент
312 1577599
Как вообще искать работу в Дата Саенсе на Питоне ньюфагу?.. В бэкенд в портфолио можно представить свои проекты сайтов, которые ты напилил, а с датасаенсом что? Потешные ML-модельки на собес приносить? Там в одиночку ничего существенного родить все равно не выйдет
313 1577614
>>77599
Ты немного не в тот тред зашел.
К МЛщикам иди.
У датасаентистов питон просто как инструмент, не более, думаю тебя спросят про научные либы питоновские и все.
314 1577623
>>77339
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
move_right()

Заценщи какой я тупой, у меня или так или робот просто убегал за край карты
314 1577623
>>77339
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
if not wall_is_on_the_right():
while not wall_is_on_the_right():
move_right()
if not wall_is_on_the_right():
fill_cell()
move_down()
if not wall_is_on_the_left():
while not wall_is_on_the_left():
move_left()
if not wall_is_on_the_left():
fill_cell()
move_down()
move_right()

Заценщи какой я тупой, у меня или так или робот просто убегал за край карты
Kc651HQgTA.jpg21 Кб, 334x224
315 1577627
316 1577651
>>77598
спасибо
jfv6f2r.png126 Кб, 900x548
317 1577653
318 1577663
>>77598
Мой код работает с произвольными файлами, но дает ошибку с /proc/pressure/memory.
319 1577666
>>77598
поставил перевод в конце строки - все везде заработало
320 1577682
>>77653
непонятно, там кароч сложность в том нужно как то повторить функицию нужное количестов раз по отделности, что бы между повтороми делать операцию
321 1577841
Да! Третья версия питона вообще огонь! Сейчас изучаю новую версию 3.4, говорят питон стал асинхронным, там появились корутины
322 1577844
>>77546
Да! Третья версия питона вообще огонь! Сейчас изучаю новую версию 3.4, говорят питон стал асинхронным, там появились корутины
323 1577884
>>72839
Спасибо.
Теперь нубовопрос: есть несколько полей, у каждого из которых надо проверить заполнено или нет. Чтобы не писать по функции на каждое поле, надо использовать классы?
324 1578382
>>77884
Необязательно, можешь написать одну функцию проверки и применять ее к каждому полю.
325 1578388
>>78382
Т.е., например, есть поля EditLine1 и EditLine2, мы пишем что-то вроде:
def(self, x):
--val = self.x.toPlainText()
--if val is '':
...
Вместо x подставляем эдитлайны?
326 1578398
Опять троллинг какой-то в треде? Есть WTForms. Я не пользовался, но это должно быть именно то, что надо.
327 1578431
>>78388
Если ты проверяешь поля по отдельности, то используешь эту функцию по событию onChanged или textChanged или что там у тебя. Если проверяешь все поля формы вместе, допустим, по нажатию кнопки, собираешь все нужные поля формы и в цикле передаешь значение каждого поля в функцию проверки. На чем ты эти формочки пишешь?
328 1578442
1. Укус Питона
2. Документация по Джанге
3. Актуальная книжка по Джанге

Нормальный план чтобы освоить веб-разработку или перед вторым пунктом еще что-то почитать?
1579511760084.png35 Кб, 587x551
329 1578482
>>78442
Два томика душного Лутца.
Снимок.PNG7 Кб, 347x356
330 1578486
Здесь y
это не переменная и я не могу больше y использовать нигде ?
331 1578487
>>78482
А можно хотя бы только один?
332 1578505
>>78442
Ты читать книжки или писать код собираешься? Бери туториал по
джанге, и по ходу дела читай документацию по мере необходимости.
333 1578510
>>78505
Это прошлый век. Пускай открывает видосы Хауди Хо/Гоши Дударя и по ним хуярит.
334 1578517
>>78510
Так даже лучше. А то на том же реддите очередная волна читателей книжечек плачется, что программирование не дается.
335 1578527
>>78505
Тутора достаточно будет чтобы хотя бы немного понять как самому делать веб-приложения?
Пока нихрена не понимаю зачем нужны эти views, models, urlconf.
336 1578531
>>78517
А где практику приматам искать ? Не подскажете ? Кроме говнокурсов есть что ? А то там раз сделал и забыл.
337 1578550
>>78531
Не понял, зачем искать практику, бери и пили что-нибудь.
338 1578555
>>78486
Ты шо творишь, демон? Иди читай про функции, передачу значений в функции и локальные переменные.
339 1578566
>>78527
Для этого туториалы и существуют, потыкаешь, поймешь что куда примерно писать, какой путь твой запрос проходит, будет хоть какая-то картина происходящего в голове, сможешь конкретные вопросы задавать, а тут мы тебе уже поможем, здесь все твои друзья.
340 1578574
>>78555
Эта хуйня сработала кроме нижней строки где у. Но в самой функции у не переменная ? Как это называется что ето ? Оно как бы работает а как хуй его знает
341 1578577
>>78486

>while not x == y вместо x != y


Братишка...
342 1578582
>>78574

>Эта хуйня сработала кроме нижней строки где у


В move_left(y) ты где-то y задаешь?
343 1578589
>>78517

>очередная волна читателей книжечек плачется, что программирование не дается


О таком обычно любители учиться по видосикам на ютюбчике плачутся.
344 1578595
>>78589

>I started with Codecademy in 2016-ish when almost everything was still free. I have finished the Python modules of that as well as with SoloLearn. I have read Automate the Boring Stuff and Python Crash Course as well as following along with the examples cover to cover. Now I am re-reading Automate, Crash Course, and Mark Lutz Learning Python, 5th edition. To add to these books I have: Complete Guide For Python Programming Deep Learning with Python, Fluent Python, Learning Python Network Programming, Rapid GUI Programming with Python and Qt, Python High Performance Programming.



>I understand syntax, can usually fix an error and debug, but to actually sit down and program anything of any real value eludes me.



Ну вот человек курсы проходил, книги читал и даже перечитывал. И не может понять что не так.
345 1578600
>>78595

>Starting to lose hope with learning Python


I have been interested in Python for over 7 months. I have read and followed along through Python Crash Course. I felt pretty confident with it. I wanted to learn more so I decided to start following along with Automate the Boring Stuff. Im starting to feel discouraged from learning, when it comes to writing code in the Practice Projects; I am 100% completely lost.

Вот второй такой же. Книжки, курсы. Так может лучше говнокодить тогда, чем книжки просто читать.
image.png6 Кб, 293x101
346 1578606
У них бекэнд на джанго, судя по вакансиям. А я думаю, почему всё так хреново грузится и даже зайти с первого раза не может.
347 1578650
>>78600
Он учился семь месяцев, и после этого он не мог осилить задания из боринг стаффа? Это блять шутка?
348 1578657
>>78595

>I started with Codecademy


Начал с бесполезного дерьма, которое ничему не учит, и каждый новый курс объясняет одни и те же вещи, как будто я двенадцатилетний дебил, в первый раз увидевший компьютер.
>>78600

>Так может лучше говнокодить тогда, чем книжки просто читать


Так их и не надо просто читать. Естественно, что практике можно научиться только через практику. Но начинать надо с базы, которая берётся из книг. А потом уже книги используются, чтобы разобрать непонятные моменты. А курсы обычно по-быстрому дают основы, ничего не объясняют, и в конце говорят "всё, вы готовы", что вселяет в человека ложную уверенность.
349 1578673
>>78606
Да они просто пожалели деньги на нормальное железо, сайт вообще не работает нихуя
Снимок.PNG2 Кб, 150x146
350 1578767
Я мощно заебался. Если x за пределами функции не робит, если внутри то всегда одно число 1. А мне надо что бы я возвращался к переменной и в ней всегда было на +1 больше
351 1578772
>>78577
ок спс
352 1578781
>>78767
https://python-scripts.com/scope просвящайся (хз, насколько там хорошо объяснено, но там как раз про это).
В твоём случае нужно написать:
global x
над
x += 1
353 1578802
>>78781
Пасибо
354 1578803
>>78767
В то время как в JS и Lua локальность указывается вручную (иначе интерпретатор ищет переменную во внешних областях видимости), в питоне вручную указывается нелокальность (nonlocal и global).

ты всё равно что написал на JS:
function step() {
var x += 1
print(x)
}

Естественно, получишь UnboundLocalError: local variable 'x' referenced before assignment
355 1578808
>>78803
чел да мне похуй я тут робота делаю
Снимок.PNG10 Кб, 803x174
356 1578810
>>78803
Какой JS какой функшн
357 1578811
>>78803
РОБОТ БЛЯТЬ
358 1578829
>>78781
Пусть найдёт как без глобалов сделать
359 1578875
>>78767
Я тебе выше что написал?

> Иди читай про функции, передачу значений в функции и локальные переменные.


Почему не сделал? Считаешь, что такое должен двачик объяснять?
360 1578876
Есть два датафрейма пандас
первый:
A = 1,2,3,4,5
B = q,w,e,r,t

второй:
A = 1,2,3,4,5
С = a,s,d,f,g


Я хочу получить следующее:
A = 1,2,3,4,5
B = q,w,e,r,t
С = a,s,d,f,g


Но через метод pandas.concat(frames)
получаю:
A = 1,2,3,4,5,1,2,3,4,5
B = q,w,e,r,t,NaN,NaN,NaN,NaN,NaN
С = NaN,NaN,NaN,NaN,NaNa,s,d,f,g


Весь день пытаюсь. Ниче не выходит. Помогите.
361 1578898
>>78876
Всё. Нашел решение.

frames = [df1, df2]

result = pandas.merge(right=df1, left=df2, how="outer")
362 1578924
>>69408 (OP)
В реальных проектах может совмещаться orm и запросы на чистом sql? Или там выбирают только что-то одно?
Типо основную crud логику на орм написать, а что-то сложнее писать самому?
363 1578925
Есть какие-то расширения для VS, чтобы консолька рядом красиво отображалась?
ньюфак
364 1578930
>>78924
Алсо, вот у меня есть 300 строк питоновских функций с sql запросами внутри, мне надо их пытаться как-то в ооп стиле организовать? Выглядит сейчас это говняно, но я не уверен, что ооп много даст
365 1578936
>>78924
Да, так делают.
366 1578955
>>78431
pyqt5
367 1578958
>>78925
ctrl+`
368 1578959
>>78930

> ооп много даст


В твоем случае как минимум инкапсуляцию.
369 1579051
Метаклассы и дескрипторы - эта шняга же обычному разработу нахрен не пригодится? Только красноглазым, разрабатывающим Питон-фреймворки?
370 1579062
>>79051
Да.
image.png8 Кб, 357x285
371 1579201
>>78875
Мне примерно сорок лет понадобилось бы что бы догадаться до такого, я пытался 2 переменных сделать но вообще не так.
372 1579203
Есть что нить бодрое полуприкладное книжное для матики ? Что бы такие штуки не ставили мозг в тупик ???
373 1579207
>>78767

Я решал такую проблему чкрез класс + справочник, типа:

test_dict ={}

class VarClass:
def __init__(self, user_id):
self.user_id = user_id
self.hui = None
self.pizda = None

test = 'маня'
test2= 'id мани'

user = VarClass (test)
test_dict[test2]= user

def func1 (x):
user.hui = 1 + x

def func2(y):
user.hui = user.hui - 15

ВАЖНО: если перезапишешь класс в справочник, то данные проебутся
374 1579208
>>78767
Сейчас бы static иметь в языке, конечно.
375 1579209
>>79201
И кст если ты игру пишешь, то может с классом тебе даже удобнее будет хранить информацию о объектк
376 1579214
>>79203
Какие такие?
377 1579220
>>78767
Осильте уже генераторы, что ли. Их же специально для этого придумали.

def step():
..x = 0
..while True:
....yield x
....x += 1

s = step()
next(s)
next(s)
378 1579249
>>79220
спс
cachedfile15779973884321.mp4735 Кб, mp4,
288x360, 0:08
379 1579254
380 1579255
>>79214
Ты читать не умеешь ?
381 1579273
Ну что, челы, уже можно пробовать искать роботу? Хотя бы за еду...
382 1579275
>>79273
Ищи практику за так, интервьюируйся у них, а потом, когда перезвонят, скажи что уже нашёл за деньги.
383 1579281
>>79255
Ясно.
384 1579287
Я просто в ахуе, какие проблемы у вас вылезают при выполнении заданий робота, они блядь на циклы, условия и функции, какие нахуй генераторы, какие классы, чего вы делаете вообще там?

>>79273
А что за сайт?
385 1579303
>>79287
hackerrank.com
386 1579317
>>79303
Похоже на упрощенную версию литкода
387 1579323
>>79275
>>79287
>>79317
Собственно, эти скрины были к тому, что я год с полного нуля учился делать некоторые штуки с пистоном и алгоритмами, а теперь думаю, что зря потратил это время. Нужно было вротендом заниматься, в моем мухоебинске хоть какие-то вакансии для этого есть.
Блин, ещё и не в тот тред похоже написал, простите.
388 1579386
>>79281
Понятно.
389 1579390
>>79287
Тут уже высшая математика в ход идет братуха, ты пойми РОБОТ ДОЛЖЕН ДОЙТИ ДО КОНЦА БЛЕАДЬ
390 1579440
Анон, помоги новичку.

https://ideone.com/oZzZ0a
391 1579457
>>79323
Вряд ли ты напрасно время потратил. Хотя лучше сам питон за год задрочил бы, чем алгоритмы.
При этом, если ты был полный ноль, то сейчас уже нет и все твои текущие знания не будет лишними при изучении жс, если уж решил на него перейти.
393 1579472
>>79440
Ты берёшь каждый элемент первого списка и к нему подставляешь каждый элемент второго. А тебе нужен один цикл, чтобы брать по элементу из двух
394 1579491
>>79458
>>79472
Понял, усвоил, спасибо!
Снимок.PNG15 Кб, 570x349
395 1579519
У меня верхняя поебота не работает как надо хотя все правильно делаю, встает в левом нижнем
а надо в правом нижнем
396 1579534
>>79519
Все сделол
397 1579574
Объясните штуку с табуляцией и пробелами. Искал инфу - наткнулся на два лагеря из тех, кто топит за одно или другое. Что, собственно использовать? Читал, что можно сделать автоматическую разбивку табуляции на пробелы. Как реализовать это в PyCharm'е?
398 1579578
>>79574

>Как реализовать это в PyCharm'е?


там всё реализовано по дефолту. И вабще, почему тебя этот вопрос волнует?
image.png8 Кб, 246x263
399 1579587
Насколько этот код говнокод?
400 1579591
>>79587
Хуже только литирали кал
401 1579593
>>79587
это просто цикл
402 1579596
>>79578
Я раньше работал с другими языками, потому и удивился, увидев такой подход к ограничению скоупа. Вспомнил клин код и у меня возник этот вопрос, ведь если кто-то другой будет использовать код, всё должно быть чисто в этом плане. Но раз в PyCharm'е с этим всё норм, то ладно. Пожалуй, изучу его получше, дабы таких вопросов не возникало. Спасибо.
403 1579601
что такое литирали кал?
404 1579610
Есть 42 совета для pycharma, какие считаете полезными?
https://www.jetbrains.com/pycharm/guide/playlists/42/
Что еще юзаете в чарме?
405 1579683
Посоветуйте каких-нибудь материалов(лучше курсов) по структурам данных и их представлению в питоновской стандартной библиотеке. Ну и вообще про стандартную библиотеку, про итертулс и всё такое.
406 1579690
>>79574
Только проблемы. Никаких табов нахуй.
407 1579696
>>73618
Так ты ж весь файл в память читаешь, просто read() где-то отсекается и всё. Тебе надо читать файл блоками и подавать на хеширование
https://askdev.ru/q/poluchit-md5-hesh-bolshih-faylov-v-python-10548/
изображение.png7 Кб, 926x238
408 1579849
>>79587
1) score1, score2 = 0 не работает. Надо score1, score2 = 0, 0 или score1 = score2 = 0. Второе предпочтительнее, на мой взгляд.
2) такой цикл через while нет смысла использовать, когда можно:
for _ in range(100): ("_" используется, когда нам значение не нужно это, как тут)
3) хз, какой лучший вариант для рандома, но точно не твой. Проще random.randint(0, 1). Плюс, если у тебя будет 1.00, то ни одна переменная не получится +1, так и задумано? Переделанный вариант - пикрил.
4) также можно, вообще рандомом сгенерировать себе score1, а затем вычесть из 100 его и это будет score2.
Либо score1 можно генератором списка, а не циклом получить, а затем уже опять же получить score2 = 100 - score1:

>>> import random


>>> score1 = sum(random.randint(0, 1) for _ in range(100))


>>> score2 = 100 - score1


>>> print(score1, score2)


51 49
409 1579862
>>79849
Лишние пробелы (6 вместо 4) в цикле поставились в отступах, ну да ладно.
410 1579915
Сап питонисты. Пишу свой ламповый манга-сайт с помощью джанго. Сейчас на сайте присутствуют следующие адреса:
1. /manga/ -> здесь отображаются все обьекты моей модели MangaList (название манги, описание)
2. manga/<slug:post>/ - детальная страница манги. Здесь указаны название манги, описание и т.д. (т.е например есть манга Naruto, следовательно она имеет адрес manga/naruto-is-cool)

Теперь непосредственно проблема:
Бд имеет две таблицы (и связь один ко многим): MangaList(здесь название манги описание и т.д), а также MangaImages(здесь есть поле mangaid = models.ForeignKey(MangaList, on_delete=models.CASCADE, related_name='manga_images') а также после с картинкой).
Вроде все работает, картинки сохраняются под айдишкой MangaList. Но у меня вообще нет идей как отображать адрес с картинкой определенной манги.
Т.е я в manga/naruto-is-kruto/ должен клацать по "прочитать" и попадать в /manga/naruto-is-kruto/watch/. Но ничего не получается, я и метод absolute_get_url прописывал для второй таблицы и {% url "manga_watch" %} в шаблоне прописывал, но все не получается.

Прошу помощи у вас. Я хз как это прописывать.
https://pastebin.com/4Yq6caW8
411 1580317
Помогите написать генератор случайных чисел отсюда https://docs.rs/GSL/0.4.26/rgsl/types/rng/algorithms/fn.cmrg.html
У меня как-то не очень выходит
def seedE(x, y,
a_1 = 0,
a_2 = 63308,
a_3 = -183326,
b_1 = 86098,
b_2 = 0,
b_3 = -539608,
m_1 = 231 - 1,
m_2 = 2145483479):
def randE():
nonlocal x, y, a_1, a_2, a_3, b_1, b_2, b_3, m_1, m_2
x = (a_1 x[i-1] + a_2 x[i-2] + a_3 x[i-3]) % m_1
y = (b_1
y[i-1] + b_2 y[i-2] + b_3 y[i-3]) % m_2
z=(x - y)%m_1
return x_n
return y_n
return z_n
return randE
По -идее там надо еще первые 3 штуки x и y задать, но массивы в функцию как-то не запихиваются.
412 1580318
>>80317
Вот с форматированием https://pastebin.com/zwnnp1Hv
0205d74ecaba34bad025ebebea1dd979.jpg44 Кб, 441x638
413 1580322
>>80317
Побуду твоей уточкой. Объясни, зачем ты разбил это на две функции именно таким образом?
414 1580325
>>80322
Был аналогичный пример с более простым генератором https://pastebin.com/B5Djw8f0
Попытался сделать нечто похожее.
415 1580326
>>80325
Хорошо, но зачем это сделано в более простом генераторе?
416 1580328
>>80326
Там хитрая closure функция. Чтоб значения из внутренней записывать во внешнюю. Я просто попытался повторить. Есть у такого подхода перспективы или сразу ясно, что тут такое не сработает? Я не до конца с closure функциями разобрался, поэтому не знаю. В простом примере там просто переменные были, а тут надо еще 3 предыдущих значения запихнуть как-то.
417 1580333
>>80328
Уточка думает, что нужно в первую очередь понять, как идёт поток выполнения программы. Что меняется, где и когда. Если хочешь, начни с более простого примера.
418 1580338
>>80333
Лучше маленькими сообщениями по 2-3 шага, чтобы уточка не потерялась.
419 1580342
>>80338
>>80333
Если бы я знал, то не спрашивал. Алгоритм сам простой, но закодить я хз как. Причем именно в виде функции.
Надо задать первые 3 значения x, y. Дальше
x = (a_1 x[i-1] + a_2 x[i-2] + a_3 x[i-3]) % m_1
y = (b_1 y[i-1] + b_2 y[i-2] + b_3 y[i-3]) % m_2
z=(x - y)%m_1
будут давать новые значения. Но вот как записать эти первые 3 значения и куда и как добавлять новые я не знаю.
420 1580348
>>80342
Уточка имела в виду поток программы здесь >>80325 описать простыми словами. Тогда можно будет двигаться в более сложную. (Если ты, конечно, хочешь именно через клозуры генератор сделать)
421 1580356
>>80348
Там lcg генерит новые seed и дает их в seed2. seed2 как бы хранит значения.

> (Если ты, конечно, хочешь именно через клозуры генератор сделать)


Какие еще варианты? Если там проще, то хорошо. Главное чтоб потом можно было массив сгенерировать длины N rand(N).
422 1580365
>>80356
Давай ещё подумаем, чем отличается тот алгоритм, что ты сейчас пишешь, от этого более простого примера. Мы начнём с того, что посмотрим, с чего начинаются они. С чего начинается простой?
423 1580369
>>80365
Задаем seed например 1, seed переписывается на (1*а+b)%m и так по кругу. Как я понимаю в сложном надо 6 сидов задать по 3 на x и y?
424 1580371
>>80369
Ладно я спатки пойду. Может позже рожу чего.
425 1580375
>>80369

>и так по кругу


И так далее. Потому что этот алгоритм движется вперёд.

А куда движется >>80317?
image.png11 Кб, 714x266
426 1580387
>>79915
Долго с джангой не работал, сидел плотно на SQL. Но я бы сделал так:
Делаешь связь много ко многим и уже с помощью этой сущности делаешь представление например: (manga_id, manga_pic_url) и от сюда хуяришь url-ки на сайт. Или можно без представление, просто через отношение много ко многим как например в пикрелейтед.
427 1580408
>>80387
https://dpaste.org/2cqf

>Долго с джангой не работал


Ну что то вроде этого. Потом с помощью запросов кидаешь все что нужно на сайт.
428 1580456
>>80371
https://pastebin.com/VdPCRduT
Ну, уточка что-то накалякала, может пригодится, когда проснёшься.
429 1580458
>>80456
рейт
430 1580472
>>80456
Или, если хочется совсем клозурами обмазаться (и получить доступ к изменению семян), то так
https://pastebin.com/rMAwGMMY
431 1580781
Тест
432 1580832
Как перебрать список через 1 элемент?
For (i=1, i<100, i+2);
433 1580837
>>80832
for i in range(1, 100, 2):
print(i)
3-е число и есть шаг
434 1580839
>>80837
Спасибо.
435 1580847
Гайз, а подскажите как создавать обьекты классов с консоли ввода, а не внутри самого кода? То есть чтобы вывести "введите имя, введите номер и т д" и это записывалось в класс.
https://pastebin.com/ciJhGrHh
436 1580915
>>80847
Через x = input("какой-то текст для инфы:"), не?
437 1580960
>>80915
это да, но я хз как этот инпут к конкретному полю класса привязать. И ещё я пока не очень понимаю как сделать так, чтобы с каждого последующего инпута создавался новый экземпляр класса: типа сначала мы вводим х1.имя, х1.номер, х1.ещечтонибудь, а потом то же самое для х2, х3 и до хn
изображение.png1 Кб, 313x43
438 1580969
Есть ли способ напрямую получать доступ к областям памяти объектов?
(вон на пикриле дефолтное repr-представление объекта)
Можно ли: также получить у рандомного у объекта во время выполнения проги область памяти, на которую он ссылается? И можно ли по полученной области памяти получить ссылку на сам объект?..
439 1580972
>>80969
По хорошему - нет.
Но ты можешь написать расширение на сишке, которое будет принимать объект и возвращать адрес, функцию для обращения к адресу и чтения/записи... И получить UB в высокоуровневом и безопасном питоне.
440 1581051
>>80960

> я хз как этот инпут к конкретному полю класса привязать


Можно разбить введенную строку на список, а затем распаковать при инициализации класса, как пример построчно:
new_contact_input = 'Alice Unknown,89001234567,01.01.1999'
new_contact_list = new_contact_input.split(",") # вернет ['Alice Unknown', '89001234567', '01.01.1999'] в new_contact_list
new_contact = FRIEND(new_contact_list) # распаковка списка, то же самое, если передать в качестве аргументов: 'Alice Unknown', '89001234567', '01.01.1999'

> И ещё я пока не очень понимаю как сделать так, чтобы с каждого последующего инпута создавался новый экземпляр класса: типа сначала мы вводим х1.имя, х1.номер, х1.ещечтонибудь


Аналогично первому варианту, только аппендить в список:
new_contact_list = []
for i in range(3):
....new_contact_list.append(input(f"Ввод поля #{i + 1}: "))
new_contact = FRIEND(
new_contact_list)

> а потом то же самое для х2, х3 и до хn


Полагаю, что тебе нужно это в список складывать (или словарь). В данном случае это нужно вложить еще в один цикл и, например, спрашивать после создания первого, нужно ли еще одного создавать. Твой код нерабочий, но если убрать numContacts (нейминг тоже неправильный, правильно типа num_contacts), то вот такой пример можешь попробовать, чтобы увидеть как оно работает:

contacts = [FRIEND('Alice Unknown', '89001234567', '01.01.1999'), FRIEND('Suika Ibuku', '8999999999', '09.09.1999')] # два экземпляра класса FRIEND (тоже неправильный нейминг, классы в CamelCase) в списке
contacts[0].displayInfo()

выдаст:
Создание нового контакта...
Создание нового контакта...

Имя: Alice Unknown,
Номер телефона: 89001234567,
Дата рождения: 01.01.1999.
440 1581051
>>80960

> я хз как этот инпут к конкретному полю класса привязать


Можно разбить введенную строку на список, а затем распаковать при инициализации класса, как пример построчно:
new_contact_input = 'Alice Unknown,89001234567,01.01.1999'
new_contact_list = new_contact_input.split(",") # вернет ['Alice Unknown', '89001234567', '01.01.1999'] в new_contact_list
new_contact = FRIEND(new_contact_list) # распаковка списка, то же самое, если передать в качестве аргументов: 'Alice Unknown', '89001234567', '01.01.1999'

> И ещё я пока не очень понимаю как сделать так, чтобы с каждого последующего инпута создавался новый экземпляр класса: типа сначала мы вводим х1.имя, х1.номер, х1.ещечтонибудь


Аналогично первому варианту, только аппендить в список:
new_contact_list = []
for i in range(3):
....new_contact_list.append(input(f"Ввод поля #{i + 1}: "))
new_contact = FRIEND(
new_contact_list)

> а потом то же самое для х2, х3 и до хn


Полагаю, что тебе нужно это в список складывать (или словарь). В данном случае это нужно вложить еще в один цикл и, например, спрашивать после создания первого, нужно ли еще одного создавать. Твой код нерабочий, но если убрать numContacts (нейминг тоже неправильный, правильно типа num_contacts), то вот такой пример можешь попробовать, чтобы увидеть как оно работает:

contacts = [FRIEND('Alice Unknown', '89001234567', '01.01.1999'), FRIEND('Suika Ibuku', '8999999999', '09.09.1999')] # два экземпляра класса FRIEND (тоже неправильный нейминг, классы в CamelCase) в списке
contacts[0].displayInfo()

выдаст:
Создание нового контакта...
Создание нового контакта...

Имя: Alice Unknown,
Номер телефона: 89001234567,
Дата рождения: 01.01.1999.
441 1581053
>>81051
Съело зведочки, в этих строках они перед new_contact_list:

new_contact = FRIEND(new_contact_list)

new_contact = FRIEND(new_contact_list)
442 1581165
>>80472
Спасибо. Даже немного сложнее чем я ожидал, но работает.
443 1581186
>>81165
Работает-то оно понятно, что работает. Ты понял почему и как?
444 1581207
>>81186
Примерно понятно. Тут точно не скажешь пока самому не придется аналог написать.
445 1581208
>>81207
Так пиши. Потом объяснишь.
446 1581215
>>69408 (OP)
Как отсортировать dictionary:
{'1': '7', '0': '13', '3': '4', '2': '1', '5': '2', '4': '3'}
чтобы было:
{'0': '13', '1': '7', '3': '4', '4': '3', '5': '2', '2': '1'}
?

python 3.2.5
448 1581222
>>81217
Ну и чё мне делать-то с ним? Хреново сортирует: https://rextester.com/KLZ89135
449 1581223
>>81222
Всё, я понял.

>t[1]


->

>int(t[1])


В dict чёт криво конвертируется, ну и ладно: https://rextester.com/HXZU89024
450 1581257
>>81215
А зачем тебе сортировать словарь? Это же словарь, он по определению не должен быть сортирован. Может тебе для твоей задачи другая структура данных нужна?
451 1581290
>>81257
Очевидно, что анон хочет не dict, а что-то подобное с ключами и значениями, но отсортированное. Например, чтобы вывести красивую упорядоченную табличку на экран.
452 1581304
>>81290
Список кортежей? Или просто достать список ключей, отсортировать и вызывать по нему.
453 1581319
>>81304
Ага, самый очевидный вариант.
454 1581386
Салют, как сделать чтобы числа выводились до сотых, даже если второе число 0.
8.2 > 8.20
5.0
10
0 > 0.00
4.50
и так далее
Считал я перцентиль, среднее, медиану, самое большое число и самое маленькое из файла с числами. Использовал NumPy
455 1581412
Самое время поработать над шапкой, пацаны.

https://dumpz.org/bqyrfCbEPA9t
Немного скорректировал то, что уже имеется. Вносите свои изменения.
456 1581419
>>81386
print("%.2f" % x)
Подойдёт такое?
1232.png11 Кб, 748x138
457 1581422
>>81419
Или я просто не понимаю как записать это правильно.
Screenshot20200123130146.png14 Кб, 426x315
458 1581432
459 1581439
>>81432
Ноль перед двоиточием необязательно, пробелы после не нужны (если в формате их получить не хочешь).
460 1581476
>>81432
>>81439
Спасибо!
461 1581559
>>81051
>>81053
Спасибо!
462 1581648
Хочу сделать сайт, который будет брать данные из эксель-файла и с ними работать: строить графики, анализировать, выводить данные за год, за месяц, за неделю. Так же хотелось бы добавить возможность самому вводить данные в некую бд, без эксель-файла.
1. Как все это организовать? Нужно ли заставлять пользователя регистрироваться чтобы добавить его в базу, а затем привязать к каждому пользователю его данные или можно без этого обойтись?
2. Что посоветуете почитать помимо тутора с документации по джанге и тутора от мазилы?
463 1581655
>>81648
Я бы сделал так, но я такой же нюфаг как и ты.
Поднял базу, в базу раз в какое то время забирал инфу из экселя через celery, если значения не совпадают - не копировал бы их.
Плюс через формы разрешил бы вбивать новые записи уже через саму джангу. Регистрацию бы пилил в случае, если сервер будет смотреть в инет, если он в локалочке, то строго поебать.
Ну и графики на фронте отрисовать просто каким нибудь жс фремворком. Хотя, вероятно, думаю, можно и чем нибудь вроде pandas, но мне бы было лень в нем разбираться.
464 1581672
>>81648
Я бы посоветовал для начала глянуть такую штуку как SuperSet.
465 1581684
>>80969
А зачем тебе питон с такими проблемами?
466 1581686
Есть две картинки, нужно наложить маску второй на первую по альфа каналу, дополнительно делаю resize до размера первой картинки. Делаю через pil, создаю пустую картинку и делаю так

>new_image = Image.composite(im, empty_image, mask)


Все открываю как RGBA. По краям остается слегка заблюренный черный контур при сохранении, когда делаю show, то мне кажется, что этого контура нет (или он просто не виден на этом фоне). Это нужно что-то дополнительно с картинкой/маской делать, что бы его не было?
467 1581691
>>81412
В полезные ссылки мб впихнуть
https://www.youtube.com/channel/UCCezIgC97PvUuR4_gbFUs5g
Хорошие туториалы по Фласку/Джанго для начинающих и еще пару полезных плейлистов по Сублиму, гиту, командной строке и т.д.
https://github.com/tuvtran/project-based-learning#python
Название говорит само за себя. Есть гайды по интересным проектам на разные темы + такие же гайды по другим языкам.
468 1581878
>>81686
Понял, что это из-за цвета пустой картинки в которой при применении метода composite почему-то игнорируется выкрученный на полную альфа канал
469 1581986
>>81290
>>81319
Не совсем, это, но примерно так.

>>81257

Моя задача, в некоем массиве:
x = [0, 1, 3, 0, 5, 0, 1, 0, 4, 1, 0, 1, 4, 0, 0, 3, 0, 2, 0, 1, 3, 0, 3, 0, 1, 4, 0, 1, 5, 0];
закодировать уникальные значения:
['0', '1', '2', '3', '4', '5'];
префиксным кодом - кодом Хаффмана:
0
10
110
1110
11110
11...1

При этом, наиболее коротким кодом,
должно кодироваться значение - с наибольшей частотой повтора.

Поэтому, в dictionary = {'1': '7', '0': '13', '3': '4', '2': '1', '5': '2', '4': '3'}
я положил количества повторов этих уникальных символов.
Следовательно, стояла задача - отсортировать этот dictionary,
и заменить количества повторов на соответствующие коды.

Но я и так разобрался.
Вот полный код, если чо: https://rextester.com/XSMSF58499
Я из треда https://2ch.hk/math/res/62709.html (М) пытаюсь сжать несжимаемые данные.
Получается пока хреново, но что-то всё-таки, вроде, получается. :3
469 1581986
>>81290
>>81319
Не совсем, это, но примерно так.

>>81257

Моя задача, в некоем массиве:
x = [0, 1, 3, 0, 5, 0, 1, 0, 4, 1, 0, 1, 4, 0, 0, 3, 0, 2, 0, 1, 3, 0, 3, 0, 1, 4, 0, 1, 5, 0];
закодировать уникальные значения:
['0', '1', '2', '3', '4', '5'];
префиксным кодом - кодом Хаффмана:
0
10
110
1110
11110
11...1

При этом, наиболее коротким кодом,
должно кодироваться значение - с наибольшей частотой повтора.

Поэтому, в dictionary = {'1': '7', '0': '13', '3': '4', '2': '1', '5': '2', '4': '3'}
я положил количества повторов этих уникальных символов.
Следовательно, стояла задача - отсортировать этот dictionary,
и заменить количества повторов на соответствующие коды.

Но я и так разобрался.
Вот полный код, если чо: https://rextester.com/XSMSF58499
Я из треда https://2ch.hk/math/res/62709.html (М) пытаюсь сжать несжимаемые данные.
Получается пока хреново, но что-то всё-таки, вроде, получается. :3
470 1581987
>>81257
И да, какие структуры данных лучше использовать в подобном случае - я так и не понял.
- - 471 1581988
-
472 1581999
>>81672
>>81655
Спасибо, анончики.
473 1582017
>>81987
Список таплов, где тапл = (символ, частота)
Сортируешь список с ключом lambda x: x[1]
Если хочешь чуть более красивый код, можешь ещё про namedtuple погуглить
474 1582050
Ой сложно мне, сложно.
Не могу найти как обратиться к значению kolichestvo в цикле.
Store={
'gvozdi':[
{'kolichestvo':27,'cena':50},
{'kolichestvo':30,'cena':50},
{'kolichestvo':40'cena':50},
],
...
...
...
}
475 1582057
>>82050
for gvozd in store["gvozdi"]:
..print(gvozd["kolichestco"]

Не извращайся с траслитом, в питоне идентификаторы можно писать кириллицей.
476 1582059
>>82050
Если тебе надо те только гвозди, то
for _, l in Store.items():
..for b in l:
....print(b['kolichestvo'])

Ну и у тебя пиздец, а не структура данных. Игла в яйце, яйцо в дятле. Хотя бы от 'kolichestvo','cena' в каждом кортеже избавься. named tuples тебе нужны.
477 1582065
>>82057
О, спасибо большое.
>>82059
Не обращай внимание, дятел с иглой в заднице - это ты хорошо меня описал.
sage 478 1582114
>>69408 (OP)

>В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать - Вот, пожалуйста, та же самая программа


Не та же самая. Собственно и название неспроста поменяли.
479 1582187
>>81986
Корябаю твою задачу потихоньку, нашёл ошибку. В def how_many_nulls(binary_data) у тебя никак не обрабатываются нули в конце binary_data. Даже если их был десяток, то счётчик про них забывает и они никуда не аппендятся.
480 1582319
Пишу скрапер для внутреннего сайта своей говноконторы. При открытии страницы с браузера html вываливается полностью, а при реквесте с пайтона все, кроме того что нужно. Сам сайт древнее говно мамонта, написанное на пхп. Для загрузки юзаю bs4 + requests. Есть идеи куда копать? Если что я ньюфаг во всем этом.
481 1582339
>>82319
Вангую что там ЖС к тебе не прилетает.
Копай в сторону Ф12 на хроме и selenium webdriver headless
482 1582347
https://hastebin.com/uhakilalod.py

Зацените,

Вот это говно раз в 5 минут качает вебмки из вебм-тредов и fap-тредов и качает себе
483 1582353
>>82339
Да хуй там, гет запрос и все. В ф12 жабаскриптом и не пахнет. Чисто вывалило html и все. Может я совсем даун, конечно, но я никаких упоминаний скриптов, или .js в хтмл не вижу.
484 1582355
>>82353

>строки генераторов в пол экрана ЛИШЬБЫНЕВЦИКЛЕ

1.PNG5 Кб, 283x228
485 1582357
Привет писюки, скажите как сделать это не таким ебаным?
Тройное if как записать проще ?
486 1582364
>>82357
словари они же хеши и проверка по ключу
487 1582370
>>82319
Может там есть проверка юзерагента и он ошибку выкидывает, когда ты без него обращаешься? Посмотри, что он тебе присылает.
488 1582372
>>82357
if x_raw % 10 in [1, 2 ,3]:
fill_cell()
489 1582378
>>82372
>>82364
Спс нямсики, пидорасики мои
490 1582401
>>82353
Мда уж.
Открой вкладку нетворк, она тебе нужна, а не ебучий ЖС в ХТМЛ коде.
image.png799 Кб, 3026x2122
491 1582406
>>82401
К примеру пикрил
492 1582481
>>81684
Потому что я байтоёб
493 1582505
Реально ли выучить питон + базовые алгоритмы за 3 дня 72 часа без сна ? Имею слабоумие и две банки рэдбула
494 1582506
>>82505
До этого почти не программировать кста
495 1582508
>>82505
Нет.
496 1582509
>>82508
Вообще без шансов? А что можно успеть?
497 1582516
>>82509
Много что можно, но это много от чего зависит. Эффективно учиться ты сможешь всё равно часа 4-5 в день и это крайний максимум.
498 1582518
>>82509
Ну, самые основы за день можно осилить и закрепить, наверное. Но это не то же самое, что выучить питон.
И если тебя интересуют самые базовые алгоритмы, то есть для чайников книга "грокаем алгоритмы", там примеры на питоне. Наверное, за три дня какой-нибудь выхлоп получишь с этого суммарно. Плюс была ещё какая-то книга, где алгоритмы на разных языках, в том числе и на питоне. В неё тоже, наверное, ты мог бы поглядеть.
Но если ты будешь проходить собеседование или что-то такое, то тебя очень быстро раскусят, что ты питон едва знаешь.

Возможно, у других анонов иное мнение будет.
499 1582529
>>82516
>>82518
Ок, спасибо сахарки
500 1582531
>>81986

>x = [0, 1, 3, 0, 5, 0, 1, 0, 4, 1, 0, 1, 4, 0, 0, 3, 0, 2, 0, 1, 3, 0, 3, 0, 1, 4, 0, 1, 5, 0];



>>81215

>Как отсортировать dictionary:


>{'1': '7', '0': '13', '3': '4', '2': '1', '5': '2', '4': '3'}


>чтобы было:


>{'0': '13', '1': '7', '3': '4', '4': '3', '5': '2', '2': '1'}



Ты можешь получить такого рода результат с помощью collections.Counter:

from collections import Counter
x = [0, 1, 3, 0, 5, 0, 1, 0, 4, 1, 0, 1, 4, 0, 0, 3, 0, 2, 0, 1, 3, 0, 3, 0, 1, 4, 0, 1, 5, 0]
c = Counter(x)
print(c)

Результат:
Counter({0: 13, 1: 7, 3: 4, 4: 3, 5: 2, 2: 1})

При этом ты можешь его сделать словарем dict(c), но все равно порядок элементов тебе питон 3.2 не гарантирует для стандартного словаря, но и не ясно до сих пор зачем тебе это надо. Если же тебе нужно цикл прогнать по его ключам-значениям, то это делается также, как и для обычного словаря и как раз оно будет в порядке убывания, как тебе и надо:
for k, v in c.items():
....print(k, v)

По ссылке https://rextester.com/XSMSF58499 у тебя какой-то треш. Откуда-то точки с запятыми, а еще условные операторы обернутые без необходимости в скоки, что требуется в других языках, но не здесь.
501 1582590
>>82516
ну вообще мне помогает подремать полчасика в процессе поглощения тяжелого материала.
968540378602570.png8 Кб, 650x408
502 1582733
Блэт кто-нибудь объяснит какого хуя строки, в конце которых символ \ не создаются? Я ж блин символ r перед строкой поставил, он означает, что любые специальные и экранирующие символы игнорятся
С фига ли не работает?
503 1582734
Как войти в айти, ребятушки?
t22.png52 Кб, 657x582
504 1582748
Я совсем запутался с циклами этими, как эти сраные точки сравнивать? Вершину, допустим, легко найти. Внутри/снаружи я что-то слышал про метод луча, но так и не смог разобраться. А со сторонами вообще не понял. Хелпаните, друзья, хоть направление дайте куда двигаться
505 1582752
>>82748
Учи геометрию за 6 класс и уравнение прямой
506 1582762
Как нахуячить FTP-сервер на Питонухе?.. FTP-клиент то без проблем пишется с помощью стандартной либы ftplib
507 1582764
>>82748
Как кстати 3 и 4 делать? Если точка снаружи то можно построить прямые до каждой вершины и измерить угол между этими вершинами и он окажется всегда меньше 180, а если точка внутри то построив прямые до вершин и измерив угол между ними то как минимум 1 будет больше 180 градусов и значит точка внутри?
мимо
508 1582766
>>82733
https://docs.python.org/3.7/reference/lexical_analysis.html

> Even in a raw literal, quotes can be escaped with a backslash, but the backslash remains in the result; for example, r"\"" is a valid string literal consisting of two characters: a backslash and a double quote; r"\" is not a valid string literal (even a raw string cannot end in an odd number of backslashes). Specifically, a raw literal cannot end in a single backslash (since the backslash would escape the following quote character). Note also that a single backslash followed by a newline is interpreted as those two characters as part of the literal, not as a line continuation.



>>82734
python -m vhod.py "Aiti"

>>82762
https://serverpilot.io/docs/how-to-run-a-simple-ftp-server/
Оно?
509 1582767
>>82764
2 и 3*
123.PNG7 Кб, 533x193
510 1582774
Что написано в верхней строке ??
Мне надо так:
Покуда нет стены справа И нет стены снизу:
ебашу код.

Но нихуя не получается
511 1582775
>>82774
Ха ха жду тебя на пятой лекции.
Там так и написано как ты хочешь, но попробуй
while wall_os_on_the_right() == False and wall_is_beneath() == False
image.png18 Кб, 728x390
512 1582777
>>82748
>>82764
Это твое тестовое задание? Если да, то у меня плохие новости к твоему работодателю
У тебя есть диапазон X и Y. Ты смотришь как точки из второго файла относятся к нему: внутри диапазона (2), совпадают с одним граничным значением (1), совпадают с двумя граничными значениями (0), не лежат в диапазоне (4).
Сложность уровня школьных задачек по паскалю или что у вас там в школьной программе было.
513 1582779
>>82017
Благодарю.
>>82187

>у тебя никак не обрабатываются нули в конце binary_data


Да, достаточно раскомментировать это после цикла в how_many_nulls:

>#array.append(count); #number of nulls in the end


>>82531
Благодарю, так проще даже, и меньше кода.

>По ссылке https://rextester.com/XSMSF58499 у тебя какой-то треш.


>Откуда-то точки с запятыми,


>а еще условные операторы обернутые без необходимости в скоки,


>что требуется в других языках, но не здесь.


Я с JavaScript'a в пистон перебрался, пишу коряво, но зато работает кот.

Если чо, пишите пожелания в треде https://2ch.hk/math/res/62709.html (М) , чтобы тут не флудить.
Там тоже есть некие наброски черновые, можете глянуть их, чисто по фану.
514 1582782
>>82777
Рисунок хуевый для пояснения нарисовал. С точкой B я хотел показать что это одна и та же точка (один и тот же случай), в которой одно из значений x1, x2, y1 или y2 совпадает с координатой точки В.
515 1582783
>>82777
Да я в принципе понимаю как это работает. Я не могу это нормально в код преобразовать
516 1582788
>>82775
Нихуя ты лектор бля, гундосик мамин
517 1582790
>>82777
Что за хуйня? И как ты по одной проверке по диапазону узнаешь находится ли точка внутри или снаружи, там же не обязательно прямоугольник параллельный оси Х будет. Кроме как через углы детектить не представляю как.
518 1582791
>>82748
Откуда задания вестимы ?
519 1582793
>>82791
Чьи?
520 1582807
>>82788
Мне просто нужен хелп с пятой лекцией)
521 1582817
>>82783
>>82790
Звиняюсь, это я дебил и решил что в остальных вариантах, как в примере будут прямоугольники. Тогда положение внутри можно находить методом трассировки луча (дохуя нагромождение на рисунке, но в интернете будет более наглядный рисунок и решение на змеюке).
Нахождение точки на линии можно проверить по формуле прямой (можешь выразить коэффициенты k и b, а потом проверять равенство игреков по формуле y=kx+b)
522 1582823
Анон, есть какая-нибудь команда, которая позволяет быстро повторить отдельно взятую строку или несколько строк кода.

То есть у меня есть например

1 бла бла бла
2 бла бла бла бла
....
....
....

Далее в коде я хочу повторить 1 и 2 строки. Я понимаю, что мне ничего не мешает просто их скопировать, но может есть что-то более элегантное типа repeatline(1), чтоб это одним словом можно было сделать.
523 1582829
>>82823
Функции.
524 1582842
>>82807
А
А чо за лекции?
525 1582843
>>82793
На картинке
526 1582847
Аноны, поясните, какие пакеты использовать для REST api в Flask? В Django понятно - это Django REST framework + swagger. А в Flask что?
527 1582850
>>82842
Тимофей Хирьянов - ютюб
528 1582866
Вопрос. С аргуметами совсем не дружу. Есть у меня скрипт он читает файлы и делает с ними подсчеты. Нужно открывать скрипт через консоль и аргументом передавать путь к папке с файлами. Как это провернуть?
529 1582870
>>82866
sys.argv
530 1582877
>>82817
Видел я про этот метод, но я нихуя не понимаю, как в коде это записать. Есть у меня два списка: список координат четырехугольника и список координат точек. Я элементарно не могу сделать цикл и прогнать, чтобы посмотреть подходят точки или нет. Решал в тетрадки такие задачи раньше, вроде все норм было. Но просто в ебаный код не могу перевести. Сорри, у меня подгорели остатки серого вещества.
532 1582949
533 1582951
>>82889
Жесть там библиотек, а я пилю свой пиздецовый велосипед на голом фласке и не знаю, как безопасную аутентификацию сделать с этими токенами
image.png8 Кб, 543x142
534 1582966
Что за пиздецома? Код запускается и работает нормально. В гайде написано именно так, как в коде. Как убрать эту желтую хуйню? Помогите нубику...
535 1582985
>>82966
Начать писать скриптики на 30 строчек в саблайме
536 1582993
>>82985
А если я уже перешагнул эту ступень и хочу совершенствоваться?
537 1583109
допустим я за полгода задрочил на задачках с литкода этот ваш пистон, парочку стандартных либ и умеренно джангу
прямо сейчас ковыряю flask и субд, хотя думаю на это забить и обойтись одним orm
как теперь вкатится на реальную роботу без опыта? можно ли устроится удаленно за небольшие профиты? интересует только бекенд и чуть-чуть датасаенс но таких вакансий крайне мало и я им точно нахуй не нужен
пробовать искать стажировку в говноконторе за еду или заняться пет-проектами (которые ещё нужно придумать)?
пока что гитхаб состоит из laba1.cpp и блога для кота
image.png32 Кб, 606x80
539 1589250
Почитываю Мэтиза ,,Изучаем Питон,, . Не понимаю следующее задание, какое нужно вписать условие завершения цикла?
age = input("enter your age: ")
age = int(age)
while:
if age <= 3 :
print("Бесплатно")
elif 3 < age < 13:
print("10 баксов")
elif 12 < age:
print("15 баксов")
540 1597462
>>89250

>


>


я понимаю, что прошло 8 дней,но если тебе надо,просто пропиши
while True:,
и после каждого ифа поставь break, но как по мне это цикл здесь нахуй не всрался
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 8 марта 2020 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски