Найти - Пользователи
Полная версия: помогите гуманитарию на экзамене!
Начало » Центр помощи » помогите гуманитарию на экзамене!
1 2 3 4
avdeevama1995@lv
написать программу, которая по заданному n выводит строчку “ababbabbbabbbbabbbbba…..a”, в которой встречается ровно n букв a

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

в файле дана матрица смежности ориентированного графа. вывести список ребер этого графа
py.user.next
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
>>>
ajib6ept
написать программу, которая по заданному 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: сократил немного
Shaman
'%sa' % 'a'.join('b'*i for i in range(n))
Shaman
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
>>> 
Budulianin
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
Shaman
Лучше перенести акцент с “как сделать” на “что сделать”, благо язык позволяет. Так же предпочтительнее квантовать код по зонам ответственности.
Budulianin
Shaman
Лучше перенести акцент с “как сделать” на “что сделать”, благо язык позволяет.

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

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

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

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


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


enumerate я тоже осознанно не использовал и
 result.append([i, j])
я считаю что лучше писать, а не
result.append((i, j))
, читается лучше.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB