
Doomsday
19.01.2017
16:40:01
Вопрос: ЧЯДНТ и как мне получить TypeError. Спасибо.

Johnnie
19.01.2017
16:41:03

Pavel
19.01.2017
16:42:42
\bчлен\b

Johnnie
19.01.2017
16:43:03
\bчлен\b
я тоже про это нагуглил, но оно тоже не работает. флаги нужны особые?

Google

rfg
19.01.2017
16:43:19
как получить ключ json?

Ilya
19.01.2017
16:43:54

Johnnie
19.01.2017
16:44:00
\bdick матчит два дика в bigdick dick hui хуй dick
\bхуй ниче не матчит

Doomsday
19.01.2017
16:46:30

Pavel
19.01.2017
16:46:35
>>> def is_dick(s):
... return bool(re.match(r'.*\bчлен\b.*', s))
...
>>> is_dick('член')
True
>>> is_dick('ты член')
True
>>> is_dick('ты членистоногое')
False
>>> is_dick('многочлен')
False
>>>

Johnnie
19.01.2017
16:47:34

Timofey
19.01.2017
16:47:40

Johnnie
19.01.2017
16:48:12
> члеН Ноет
:(

Скрудж
19.01.2017
16:50:01

Ilya
19.01.2017
16:50:23

Google

Johnnie
19.01.2017
16:51:25

Pavel
19.01.2017
16:52:01
"Член" "член" "ты член" "члеН Ноет" "!член?": true
"членодевка" "многочлен не имеет корней": false
>>> def is_dick(s):
... return bool(re.match(r'.*\bчлен\b.*', s, re.I))
...
>>> [is_dick(s) for s in ("Член","член","ты член","члеН Ноет","!член?")]
[True, True, True, True, True]
>>> [is_dick(s) for s in ("членодевка","многочлен не имеет корней")]
[False, False]

Скрудж
19.01.2017
16:53:14
is_dick LOL

Pavel
19.01.2017
16:54:06
я долго выбирал между is_dick и is_member.

Alex
19.01.2017
16:54:43
is_richard

Johnnie
19.01.2017
16:54:55
is_retard

Timofey
19.01.2017
16:56:03
>>> def is_dick(s):
... return bool(re.match(r'.*\bчлен\b.*', s, re.I))
...
>>> [is_dick(s) for s in ("Член","член","ты член","члеН Ноет","!член?")]
[True, True, True, True, True]
>>> [is_dick(s) for s in ("членодевка","многочлен не имеет корней")]
[False, False]
print(re.search("\bчлен\b", "ты член", re.I))
None
почему не работает без обрамления, но с серчем?

Johnnie
19.01.2017
16:57:04
r'regexp'

Pavel
19.01.2017
16:57:29
угу.
>>> print(re.search(r"\bчлен\b", "ты член", re.I))
<_sre.SRE_Match object; span=(3, 7), match='член'>

Timofey
19.01.2017
16:58:22
А, май фоулт, я r перед строкой, в которой искать, ставил
Спасибо!

Pavel
19.01.2017
17:00:00
is_richard
интересно, англоязычных тоже забавляет, что dick is short for richard?

53r63rn4r
19.01.2017
17:00:12

I
19.01.2017
17:04:56
я многим бесплатно помогаю

Pavel
19.01.2017
17:04:59

I
19.01.2017
17:05:00
новичкам
если это не для работы
если по работе уже серьезно - то по ставке моей

53r63rn4r
19.01.2017
17:05:22
Не парит помогать, как обижает то, что не говорят спасибо

Google

53r63rn4r
19.01.2017
17:05:59
Я вот всегда говорю, когда вы мне помогаете, также, Паш? Я тебе хоть раз забывал сказать спасибо?
Вроде нет

Leather
19.01.2017
17:06:15
кто програмист
есть инструкция к скрипту и сам скрипт, не понимаю как запустить его

Johnnie
19.01.2017
17:06:41
замечание от чувака на devman'e:
worksheet.append(list(course.values())) этот код работает не так как ты думаешь. Проверь результируйщий xlsx файл. В словаре ключи и их значения хранятся в произвольном порядке и он не совпадает с порядком при записи в словарь. Я бы посоветовал использовать OrderedDict, но в таком случае результат работы get_workbook будет зависеть от порядка записи внутри функции get_course_info. Что, мягко говоря, не очевидно. Лучше так не делать.
ты делаешь так, но это неправильно. можно сделать вот так, но лучше не надо.
как надо-то блять? ?

Leather
19.01.2017
17:07:24
https://www.reddit.com/r/ClickerHeroesBot/comments/5lckfs/fish_clicker_script/
я создал файл, вставил тот текст и поменял разрешение на ahk
а как запускать

Johnnie
19.01.2017
17:08:38
как вы пишете красиво заголовки и инфу в .csv? какими структурами пользуетесь?
я понял о чем он. я тестил на 3.6 и тут все збс. у него походу 3.5 и вывод кривой получается

Pavel
19.01.2017
17:09:21
или в конструкторе DictWriter его можно показать? не помню точно, но где-то нужно там список колонок показывать


Johnnie
19.01.2017
17:14:07
тьфу, я попутал
тут не csv, а openpyxl. запутался уже
def get_workbook(courses_info_list):
workbook = Workbook()
worksheet = workbook.active
worksheet.append(get_workbook_headers())
for course in courses_info_list:
worksheet.append(list(course.values()))
return workbook
def get_workbook_headers():
return ['Title', 'Language', 'Nearest start date', 'Duration, weeks', 'Average rating', 'URL']
вот так ща
def get_course_info(course_url):
content = requests.get(course_url).content
parsed_course_page = get_parsed_course_page(content)
return {'title': get_course_title(parsed_course_page),
'language': get_course_language(parsed_course_page),
'nearest_start_date': get_nearest_start_date(parsed_course_page),
'duration_in_weeks': get_course_duration(parsed_course_page),
'avg_rating': get_average_rating(parsed_course_page),
'url': course_url
}

Google

Johnnie
19.01.2017
17:17:16
вот так возврат инфы по курсу
я сначала в get_course_info делал сразу заголовки
мне сделали атата
не мэппинг же делать, ну. типа 'avg_rating' - 'Average rating'
а как иначе пока не соображу

Leather
19.01.2017
17:24:44

Maxim
19.01.2017
17:26:14
я так делал
`for course in all_courses_info:
wsheet.append(course)`

Johnnie
19.01.2017
17:26:19
def get_workbook(courses_info_list):
workbook = Workbook()
worksheet = workbook.active
headers = ['Title', 'Language', 'Nearest start date', 'Duration, weeks', 'Average rating', 'URL']
worksheet.append(headers)
for course in courses_info_list:
worksheet.append([course['title'],
course['language'],
course['nearest_start_date'],
course['duration_in_weeks'],
course['avg_rating'],
course['url']
])
return workbook

Admin
ERROR: S client not available

Maxim
19.01.2017
17:26:31
у меня лист листов
а если ты делаешь лист из значений словаря, он у тебя каждый раз в разном порядке

Johnnie
19.01.2017
17:27:20
если не 3.6, то да

Maxim
19.01.2017
17:27:55
ну у них же написано, что используемая версия питона 3.5

Doomsday
19.01.2017
17:33:27
На первый вопрос мне не ответили, ну да хер с ним, походу там в условии задачи ошибка. Еще вопрос. Вот что есть:
`print("Easy addition. Enter summands or enter 'q' for exit.")
while True:
sum_a = input("First summand: ")
if sum_a == 'q': break
try:
sum_a = int(sum_a)
except ValueError:
print("\nSummand can be only number.\n")
else:
sum_b = input("Second summand: ")
if sum_b == 'q': break
try:
sum_b = int(sum_b)
except ValueError:
print("\nSummand can be only number.\n")
else:
summ = sum_a + sum_b
print("Sum: " + str(summ))`

Maxim
19.01.2017
17:34:23
в три обратные кавычки оборачивай, а не в одну)

Johnnie
19.01.2017
17:35:29
почему sum_a, если это просто a?

Doomsday
19.01.2017
17:36:43
почему, если во второе слагаемое вводится символ, при обрабоке исключения возвращает к первому input а не ко второму? то-есть цикл стартует заново, хотя, как я понимаю, должен возвращатся к точке sum_b = input("Second summand: ")

Google

Johnnie
19.01.2017
17:37:34
желательно

Maxim
19.01.2017
17:37:55
ну вводишь в заблуждение того, кто смотрит на код)

Doomsday
19.01.2017
17:38:48

Maxim
19.01.2017
17:39:32
лучше бы прост а написал))

Doomsday
19.01.2017
17:40:49
лучше бы прост а написал))
В книжке, по которой я ботаю через абзац талдычат, что имена должны быть содержательными. Я сходил на компромисс с ленью?

Johnnie
19.01.2017
17:41:26
тогда уж first_summand & second_demand

Maxim
19.01.2017
17:41:28
а не ко второму? то-есть цикл стартует заново, хотя, как я понимаю, должен возвращатся к точке
потому что у тебя один проход цикла штатно завершается
и он начинается снова

Johnnie
19.01.2017
17:42:06
а дальше у тебя итерация цикла заканчивается и начинается новая

Maxim
19.01.2017
17:42:28
а я что написал)

Doomsday
19.01.2017
17:42:47

Johnnie
19.01.2017
17:43:02

Maxim
19.01.2017
17:43:11
:D

Johnnie
19.01.2017
17:44:28
Структура кода стала лучше в плане удобства тестирования и повторного использования. Если уменьшишь количество функции - будет совсем здорово
у меня иногда горит от их комментов
сначала "одна функция должна делать что-то одно", потом "что-то их много тут"
Эта группа больше не существует