
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
чувак я тебе рекомендую забить на дизайнер и писать интерфейс руками
только не бей меня сильно камнями, но это единственный нормальный способ
по задумке авторов ты его должен импортить, дополнять функциями и изменять потом в дизайнере если нужно
руками в ui файл по идее лазить не рекомендуется

Petr
18.07.2016
15:55:27
очевидно ж

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

Petr
18.07.2016
15:57:21

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 особенность, а скорее всего фреймворка
ну если только вот что-то мелкое совсем, да

Petr
18.07.2016
15:59:16
ну да
как я прыгал, чтобы собрать инсталлер гуевого приложения , написанного на перле
на компе с 64битной вендой и русскими буквами в имени юзера

Sergey
18.07.2016
16:03:19

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

Nobue
18.07.2016
16:11:05

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:
по аналогии
`

Темный
18.07.2016
18:59:30

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

Темный
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

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

Темный
18.07.2016
19:50:13

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\
Эта группа больше не существует