Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 24, 2014 09:11:57

avdeevama1995@lv
Зарегистрирован: 2014-06-24
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

написать программу, которая по заданному n выводит строчку “ababbabbbabbbbabbbbba…..a”, в которой встречается ровно n букв a

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

в файле дана матрица смежности ориентированного графа. вывести список ребер этого графа

Отредактировано avdeevama1995@lv (Июнь 24, 2014 09:14:21)

Офлайн

#2 Июнь 24, 2014 10:25:37

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9885
Репутация: +  853  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

avdeevama1995@lv
написать регулярное выражение, которое проверяет, сколько раз в данной строке встречаются три строчные буквы, слева от которых стоят три заглавные, а справа четыре цифры
>>> import re
>>> 
>>> pat = r'[A-Z]{3}[a-z]{3}\d{4}'
>>> 
>>> s = 'aaaABCDabc12345aaaABCDabc12345aaa'
>>> 
>>> n = len(re.findall(pat, s))
>>> print(n)
2
>>>



Отредактировано py.user.next (Июнь 24, 2014 10:28:28)

Офлайн

#3 Июнь 24, 2014 11:38:47

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

написать программу, которая по заданному n выводит строчку “ababbabbbabbbbabbbbba…..a”, в которой встречается ровно n букв a

# -*- coding: UTF-8 -*-
n = 7
def main(): 
    out = ['a%s' % ('b'*k) for k in xrange(1, n)]
    out.append('a')
    print ''.join(out)
if __name__ == '__main__':
    main()

UPD: сократил немного



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Отредактировано ajib6ept (Июнь 24, 2014 11:51:48)

Офлайн

#4 Июнь 24, 2014 14:35:54

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

'%sa' % 'a'.join('b'*i for i in range(n))

Офлайн

#5 Июнь 24, 2014 15:20:20

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

avdeevama1995@lv
в файле дана матрица смежности ориентированного графа. вывести список ребер этого графа
Данные (файл graph.dat):
110010
101010
010100
001011
110100
000100
Код:
with open('graph.dat') as f:
    data = [l.strip() for l in f]
def edges(data):
    for r, rd in enumerate(data, 1):
        for c, cd in enumerate(rd, 1):
            if int(cd):
                yield r, c
for r, c in edges(data):
    print r, c
Вывод:
>>> 
1 1
1 2
1 5
2 1
2 3
2 5
3 2
3 4
4 3
4 5
4 6
5 1
5 2
5 4
6 4
>>> 

Отредактировано Shaman (Июнь 25, 2014 07:16:00)

Офлайн

#6 Июнь 25, 2014 00:31:24

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

avdeevama1995@lv
в файле дана матрица смежности ориентированного графа. вывести список ребер этого графа

i = 1
result = []
with open('test.txt') as fin:
    for line in fin:
        j = 1
        for char in line.rstrip():
            if char == '1':
                result.append([i, j])
            j += 1
        i += 1



Офлайн

#7 Июнь 25, 2014 07:50:53

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

Лучше перенести акцент с “как сделать” на “что сделать”, благо язык позволяет. Так же предпочтительнее квантовать код по зонам ответственности.

Офлайн

#8 Июнь 25, 2014 11:11:28

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

Shaman
Лучше перенести акцент с “как сделать” на “что сделать”, благо язык позволяет.

Ты это кому?



Офлайн

#9 Июнь 25, 2014 11:22:52

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

Budulianin
Ты это кому?
Скорее всего тебе. Если причиной такого твоего подхода не является забота о простоте защиты работы ТС-ом, тогда точно тебе.

Офлайн

#10 Июнь 25, 2014 11:37:15

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

Shaman
Скорее всего тебе. Если причиной такого твоего подхода не является забота о простоте защиты работы ТС-ом, тогда точно тебе.

Не, я скорее тебе написал, мне на таких ТС вообще пофиг.

Просто я посмотрел на твой нерациональный подход и решил написать свой вариант.

Ты бессмысленно перебираешь массив 2 раза, когда задача решается в один проход, причём строки хранишь в списке(в памяти).


+ используешь strip, хотя достаточно rstrip
ну и названия переменных какие-то хреновые: r, rd, c, cd (i, j привычнее для матриц)


enumerate я тоже осознанно не использовал и
 result.append([i, j])
я считаю что лучше писать, а не
result.append((i, j))
, читается лучше.



Отредактировано Budulianin (Июнь 25, 2014 11:46:19)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version