@python_beginnersЭта группа больше не существует

Страница 159 из 1885
Andy
18.07.2016
12:56:47
пайпом ставил

Zart
18.07.2016
12:57:10
попробуй снести pip uninstall cython

и поставить кондой conda install cython

Andy
18.07.2016
13:01:46
короче

Google
Andy
18.07.2016
13:01:49
ничего не изменилось

Zart
18.07.2016
13:02:16
ок, ошибку выдает что вообще?

потому что я думал речь о проблемах инсталляции

Andy
18.07.2016
13:02:27
Ну то же самое

Zart
18.07.2016
13:02:34
так встало или нет?

(3.5) D:\>pip install cython Collecting cython Downloading Cython-0.24.1-cp35-none-win32.whl (1.7MB) 100% |################################| 1.7MB 684kB/s Installing collected packages: cython Successfully installed cython-0.24.1

я конде вашей вращенье придавал, и осью ей служил мой детородный орган (с)

Andy
18.07.2016
13:03:59
Сам сайтон ставится

Без прльлес

Zart
18.07.2016
13:04:16
так грабли в использовании чтоль?

Andy
18.07.2016
13:04:18
Он не коспилит мне код написаный на сайтоне потом

Zart
18.07.2016
13:04:46
давай тогда развернутый трейсбак и код на пасту 8\

Andy
18.07.2016
13:05:06
Ну позже тогда

Google
Zart
18.07.2016
13:05:11
ок

Andy
18.07.2016
13:05:16
Еще студию переставлю

И посмотрю че будет

Он даже подрубает его к юпитеру

Но вот в с уже не компилит и валится с ошибкой компиляции.

Petr
18.07.2016
15:43:28
обьясните про пайкутэ и кутэ дизигнер

вот я накидал гуев на форму, сохранил .ui, прогнал через pyuic5 и получил маловразумительную портянку

мне этот файл импортить в основном скрипте, или дописывать прям в этот и как-то потом при перегенерации его при изменении гуев - заново писать?

Nobue
18.07.2016
15:47:54
чувак я тебе рекомендую забить на дизайнер и писать интерфейс руками

только не бей меня сильно камнями, но это единственный нормальный способ

мне этот файл импортить в основном скрипте, или дописывать прям в этот и как-то потом при перегенерации его при изменении гуев - заново писать?
если же ответ на твой вопрос то он легко гуглится так-то: http://stackoverflow.com/questions/2398800/linking-a-qtdesigner-ui-file-to-python-pyqt

по задумке авторов ты его должен импортить, дополнять функциями и изменять потом в дизайнере если нужно

руками в ui файл по идее лазить не рекомендуется

Petr
18.07.2016
15:55:27
руками в ui файл по идее лазить не рекомендуется
да я об этом в его хедере прочитал)

очевидно ж

Nobue
18.07.2016
15:56:08
если ты хочешь что-то серьезное писать на PyQt лучше как можно скорее переходи на ручное создание интерфейсов виджетами и лэйаутами

дизайнера банально не хватит на реальные задачи и весь этот балаган с ui поддерживать и модифицировать слишком сложно

Nobue
18.07.2016
15:57:39
в Qt у тебя особо нет альтернативы

Petr
18.07.2016
15:57:46
многого я не хочу, хватит и дизигнера

Google
Nobue
18.07.2016
15:57:47
ui никогда не хватает

Petr
18.07.2016
15:57:50
ну да

Nobue
18.07.2016
15:58:07
это даже не PyQt особенность, а скорее всего фреймворка

ну если только вот что-то мелкое совсем, да

я ковырял писание юи ручками еще в перле и VwWidgets, то еще развлечение
справедливости ради скажу, что в Qt все это сделано значительно лучше и удобнее)

Petr
18.07.2016
15:59:16
ну да

как я прыгал, чтобы собрать инсталлер гуевого приложения , написанного на перле

на компе с 64битной вендой и русскими буквами в имени юзера

Sergey
18.07.2016
16:03:19
на компе с 64битной вендой и русскими буквами в имени юзера
русские буквы приводят к граблям независимости от битности =)

Petr
18.07.2016
16:04:08
т.е. две порции грабель

Nobue
18.07.2016
16:11:32
с питоном честно сказать тоже не все так просто, хотя и решаемо

Petr
18.07.2016
16:11:39
да он хоть не мертв

Nobue
18.07.2016
16:11:44
но поначалу тоже немного граблей надо обойти

Petr
18.07.2016
16:12:52
хм. sys.getcwd() же получить путь к папке, в которой запускаемый файл?

а, os

Темный
18.07.2016
18:37:00
долго не могу решить задачку, может подскажете чуть. Напишите программу, которая принимает на стандартный вход список игр футбольных команд с результатом матча и выводит на стандартный вывод сводную таблицу результатов всех матчей. За победу команде начисляется 3 очка, за поражение — 0, за ничью — 1. Формат ввода следующий: В первой строке указано целое число nn — количество завершенных игр. После этого идет nn строк, в которых записаны результаты игры в следующем формате: Первая_команда;Забито_первой_командой;Вторая_команда;Забито_второй_командой Вывод программы необходимо оформить следующим образом: Команда:Всего_игр Побед Ничьих Поражений Всего_очков Конкретный пример ввода-вывода приведён ниже. Порядок вывода команд произвольный. Sample Input: 3 Зенит;3;Спартак;1 Спартак;1;ЦСКА;1 ЦСКА;0;Зенит;2 Sample Output: Зенит:2 2 0 0 6 ЦСКА:2 0 1 1 1 Спартак:2 0 1 1 1

написал пока так n = int(input()) d = {} in_data = [] for i in range(n): a = input().split(';') in_data.append(a) for x in range(len(in_data)): comand = in_data[x][0] comand2 = in_data[x][2] if comand not in d: d[comand] = 0 else: d[comand2] = 0

не могу понять на каком моменте и как обрабатывать все числа

Google
Темный
18.07.2016
18:39:45
желательно без либов

Pavel
18.07.2016
18:47:34
тебе нужно или три словаря из чисел (в одном количетство выигрышей, в другом ничьи, в третьем поражения) или словари списков.

потом в цикле проходи по всем играм, опредляй, какая команда выиграла/проиграла или ничья и плюсуй значения в словарях для каждой команды в игре.

ну и потом вывод результатов - ещё один цикл по командам.

Темный
18.07.2016
18:49:05
ну и потом вывод результатов - ещё один цикл по командам.
вывод не проблема, проблема сбор только

про три словаря не понял(

Pavel
18.07.2016
18:58:19
лучше хранить массивы из трёх элементов: stat = {} stat[команда] = [количество выигрышей, количество ничей, количество поражений] и там что-то типа если ничья: stat[команда1][1] += 1 stat[команда2][1] += 1 если победила команда 1: stat[команда1][0] += 1 stat[команда2][2] += 1 если победила команда 2: по аналогии `

Admin
ERROR: S client not available

Темный
18.07.2016
19:35:30
лучше хранить массивы из трёх элементов: stat = {} stat[команда] = [количество выигрышей, количество ничей, количество поражений] и там что-то типа если ничья: stat[команда1][1] += 1 stat[команда2][1] += 1 если победила команда 1: stat[команда1][0] += 1 stat[команда2][2] += 1 если победила команда 2: по аналогии `
n = int(input()) d = {} in_data = [] all_game, wins, draw, fails, all_score = 0, 0, 0, 0, 0 for i in range(n): #получение и запись в список [[]...[]] a = input().split(';') in_data.append(a) for x in range(len(in_data)): #формирование команд comand = in_data[x][0] comand2 = in_data[x][2] if comand not in d: d[comand] = [0, 0, 0, 0, 0] else: d[comand2] = [0, 0, 0, 0, 0] if in_data[x][1] > in_data[x][-1]: #если победила d[comand][0] += 1 #кол-во игр d[comand][1] += 1 #кол-во побед d[comand2][3] += 1 #кол-во проигрышей другой ком. d[comand][4] += 3 #всего: +3 балла за победу elif in_data[x][1] < in_data[x][-1]: #если проиграла d[comand2][0] += 1 d[comand2][1] += 1 d[comand1][3] += 1 d[comand2][4] += 3 else: #если ничья d[comand][0] += 1 d[comand][2] += 1 d[comand][4] += 1 d[comand2][0] += 1 d[comand2][2] += 1 d[comand2][4] += 1

собрал такую хрень, но ругается на d[comand2][3] += 1 #кол-во проигрышей другой ком. KeyError: 'Спартак'

Pavel
18.07.2016
19:36:37
Omni
18.07.2016
19:37:10
n = int(input()) d = {} in_data = [] all_game, wins, draw, fails, all_score = 0, 0, 0, 0, 0 for i in range(n): #получение и запись в список [[]...[]] a = input().split(';') in_data.append(a) for x in range(len(in_data)): #формирование команд comand = in_data[x][0] comand2 = in_data[x][2] if comand not in d: d[comand] = [0, 0, 0, 0, 0] else: d[comand2] = [0, 0, 0, 0, 0] if in_data[x][1] > in_data[x][-1]: #если победила d[comand][0] += 1 #кол-во игр d[comand][1] += 1 #кол-во побед d[comand2][3] += 1 #кол-во проигрышей другой ком. d[comand][4] += 3 #всего: +3 балла за победу elif in_data[x][1] < in_data[x][-1]: #если проиграла d[comand2][0] += 1 d[comand2][1] += 1 d[comand1][3] += 1 d[comand2][4] += 3 else: #если ничья d[comand][0] += 1 d[comand][2] += 1 d[comand][4] += 1 d[comand2][0] += 1 d[comand2][2] += 1 d[comand2][4] += 1
INPUT = """3 Зенит;3;Спартак;1 Спартак;1;ЦСКА;1 ЦСКА;0;Зенит;2""" def process_score(scores): parse1 = scores.split("\n")[1:] results = dict() init_team = {"TotalGames":0, "Won":0, "Ties": 0, "Lost": 0, "Score":0} for game in parse1: data = game.split(";") team1_name = data[0] team2_name = data[2] team1_score = data[1] team2_score = data[3] if team1_score > team2_score: results.setdefault(team1_name, init_team.copy())["Won"] += 1 results[team1_name]["TotalGames"] += 1 results[team1_name]["Score"] += 3 results.setdefault(team2_name, init_team.copy())["Lost"] += 1 results[team2_name]["TotalGames"] += 1 # results(team2_name)["Score"] += 0 elif team1_score < team2_score: results.setdefault(team2_name, init_team.copy())["Won"] += 1 results[team2_name]["TotalGames"] += 1 results[team2_name]["Score"] += 3 results.setdefault(team1_name, init_team.copy())["Lost"] += 1 results[team1_name]["TotalGames"] += 1 # results(team1_name)["Score"] += 0 elif team1_score == team2_score: results.setdefault(team2_name, init_team.copy())["Ties"] += 1 results[team2_name]["TotalGames"] += 1 results[team2_name]["Score"] += 1 results.setdefault(team1_name, init_team.copy())["Ties"] += 1 results[team1_name]["TotalGames"] += 1 results[team1_name]["Score"] += 1 for i in results: r = results[i] print(i, r["TotalGames"], r["Won"], r["Ties"], r["Lost"], r["Score"]) process_score(INPUT) топорный вариант, лень думать над чем-то более изящным

Pavel
18.07.2016
19:37:37
собрал такую хрень, но ругается на d[comand2][3] += 1 #кол-во проигрышей другой ком. KeyError: 'Спартак'
а ещё количество игр и очков можно потом посчитать при выводе а не хранить их.

Темный
18.07.2016
19:37:55
Omni
18.07.2016
19:38:21
INPUT = """3 Зенит;3;Спартак;1 Спартак;1;ЦСКА;1 ЦСКА;0;Зенит;2""" def process_score(scores): parse1 = scores.split("\n")[1:] results = dict() init_team = {"TotalGames":0, "Won":0, "Ties": 0, "Lost": 0, "Score":0} for game in parse1: data = game.split(";") team1_name = data[0] team2_name = data[2] team1_score = data[1] team2_score = data[3] if team1_score > team2_score: results.setdefault(team1_name, init_team.copy())["Won"] += 1 results[team1_name]["TotalGames"] += 1 results[team1_name]["Score"] += 3 results.setdefault(team2_name, init_team.copy())["Lost"] += 1 results[team2_name]["TotalGames"] += 1 # results(team2_name)["Score"] += 0 elif team1_score < team2_score: results.setdefault(team2_name, init_team.copy())["Won"] += 1 results[team2_name]["TotalGames"] += 1 results[team2_name]["Score"] += 3 results.setdefault(team1_name, init_team.copy())["Lost"] += 1 results[team1_name]["TotalGames"] += 1 # results(team1_name)["Score"] += 0 elif team1_score == team2_score: results.setdefault(team2_name, init_team.copy())["Ties"] += 1 results[team2_name]["TotalGames"] += 1 results[team2_name]["Score"] += 1 results.setdefault(team1_name, init_team.copy())["Ties"] += 1 results[team1_name]["TotalGames"] += 1 results[team1_name]["Score"] += 1 for i in results: r = results[i] print(i, r["TotalGames"], r["Won"], r["Ties"], r["Lost"], r["Score"]) process_score(INPUT) топорный вариант, лень думать над чем-то более изящным
но результат выдаёт тот. Не проверял на других вариантах ввода

Темный
18.07.2016
19:38:22
INPUT = """3 Зенит;3;Спартак;1 Спартак;1;ЦСКА;1 ЦСКА;0;Зенит;2""" def process_score(scores): parse1 = scores.split("\n")[1:] results = dict() init_team = {"TotalGames":0, "Won":0, "Ties": 0, "Lost": 0, "Score":0} for game in parse1: data = game.split(";") team1_name = data[0] team2_name = data[2] team1_score = data[1] team2_score = data[3] if team1_score > team2_score: results.setdefault(team1_name, init_team.copy())["Won"] += 1 results[team1_name]["TotalGames"] += 1 results[team1_name]["Score"] += 3 results.setdefault(team2_name, init_team.copy())["Lost"] += 1 results[team2_name]["TotalGames"] += 1 # results(team2_name)["Score"] += 0 elif team1_score < team2_score: results.setdefault(team2_name, init_team.copy())["Won"] += 1 results[team2_name]["TotalGames"] += 1 results[team2_name]["Score"] += 3 results.setdefault(team1_name, init_team.copy())["Lost"] += 1 results[team1_name]["TotalGames"] += 1 # results(team1_name)["Score"] += 0 elif team1_score == team2_score: results.setdefault(team2_name, init_team.copy())["Ties"] += 1 results[team2_name]["TotalGames"] += 1 results[team2_name]["Score"] += 1 results.setdefault(team1_name, init_team.copy())["Ties"] += 1 results[team1_name]["TotalGames"] += 1 results[team1_name]["Score"] += 1 for i in results: r = results[i] print(i, r["TotalGames"], r["Won"], r["Ties"], r["Lost"], r["Score"]) process_score(INPUT) топорный вариант, лень думать над чем-то более изящным
жесть.

Omni
18.07.2016
19:38:50
жесть.
Вовсе нет. Наоборот, банально

Pavel
18.07.2016
19:39:02
INPUT = """3 Зенит;3;Спартак;1 Спартак;1;ЦСКА;1 ЦСКА;0;Зенит;2""" def process_score(scores): parse1 = scores.split("\n")[1:] results = dict() init_team = {"TotalGames":0, "Won":0, "Ties": 0, "Lost": 0, "Score":0} for game in parse1: data = game.split(";") team1_name = data[0] team2_name = data[2] team1_score = data[1] team2_score = data[3] if team1_score > team2_score: results.setdefault(team1_name, init_team.copy())["Won"] += 1 results[team1_name]["TotalGames"] += 1 results[team1_name]["Score"] += 3 results.setdefault(team2_name, init_team.copy())["Lost"] += 1 results[team2_name]["TotalGames"] += 1 # results(team2_name)["Score"] += 0 elif team1_score < team2_score: results.setdefault(team2_name, init_team.copy())["Won"] += 1 results[team2_name]["TotalGames"] += 1 results[team2_name]["Score"] += 3 results.setdefault(team1_name, init_team.copy())["Lost"] += 1 results[team1_name]["TotalGames"] += 1 # results(team1_name)["Score"] += 0 elif team1_score == team2_score: results.setdefault(team2_name, init_team.copy())["Ties"] += 1 results[team2_name]["TotalGames"] += 1 results[team2_name]["Score"] += 1 results.setdefault(team1_name, init_team.copy())["Ties"] += 1 results[team1_name]["TotalGames"] += 1 results[team1_name]["Score"] += 1 for i in results: r = results[i] print(i, r["TotalGames"], r["Won"], r["Ties"], r["Lost"], r["Score"]) process_score(INPUT) топорный вариант, лень думать над чем-то более изящным
тогда уж defaultdict, а не setdefault

Темный
18.07.2016
19:39:30
Google
Zart
18.07.2016
19:39:43
setdefault же лучше дефолтдикта

Omni
18.07.2016
19:39:43
Denis
18.07.2016
19:40:09
get лучше setdefault

Zart
18.07.2016
19:40:28
сетдефолт работает как гет

Темный
18.07.2016
19:41:19
отлично, осталось вывод

d = {key: [,,,,], ...} for j in d: print(j + ":" + *d[j]) ругается на синтаксис, думал что на список это работает

Denis
18.07.2016
19:46:42
+ *d[j] нельзя

Omni
18.07.2016
19:47:28
>>> a = [1,4,6,7] >>> print("t" + ":", *a) t: 1 4 6 7

Темный
18.07.2016
19:47:44
+ *d[j] нельзя
вроде со строкой работало

Omni
18.07.2016
19:48:01
вроде со строкой работало
было бы странно, если бы работало

это ж типа распаковка листа в параметры функции. А если плюсовать, получается непонятно что

это ж типа распаковка листа в параметры функции. А если плюсовать, получается непонятно что
вроде как один параметр, а вроде пытаешься сделать несколько.

Темный
18.07.2016
19:50:13
>>> a = [1,4,6,7] >>> print("t" + ":", *a) t: 1 4 6 7
да, точно, запятая. ее, прошло проверку, спасибо всем!

Omni
18.07.2016
19:52:30
?

Zart
18.07.2016
19:52:31
страшненько

Темный
18.07.2016
19:52:59
страшненько
я быдло?(

Omni
18.07.2016
19:59:15
Zart
18.07.2016
20:10:39
мгм... зачем они выпилили cmp из тройки 8\

Страница 159 из 1885

Эта группа больше не существует Эта группа больше не существует