Найти - Пользователи
Полная версия: Переписать функции в блок с вложенными циклами
Начало » Центр помощи » Переписать функции в блок с вложенными циклами
1
BlackRabbit
Подскажите, пожалуйста, задача в следующем: имеется рабочий скрипт с несколькими функциями, требуется слить их в один блок, используя вложенные циклы. Начальный скрипт и свой вариант решения прикрепляю. Спасибо за помощь!
py.user.next
BlackRabbit
требуется слить их в один блок, используя вложенные циклы

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

чтобы объединить эти функции, нужно их развернуть

extractRefsFromString()
splitByColon()
makeSeveralRefs()

они в таком порядке друг друга вызывают

затем перенести код из самой нижней в функцию над ней
получится

extractRefsFromString()
splitByColon()

затем перенести код из самой нижней в функцию над ней
получится

extractRefsFromString()

потом можешь назвать её по-другому
BlackRabbit
Спасибо!
BlackRabbit
Можно еще один вопрос:
Вот перенес код из нижней функции в то место верхней, где она вызывается. А что делать с ее аргументами (someString.strip(), allRefs) ?
makeSeveralRefs(someString[:index].strip(), allRefs)
        firstDigitIndex = digitPattern.search(ref).start()
        author = ref[:firstDigitIndex]
        years  = ref[firstDigitIndex:].split(', ')
        for year in years:
            allRefs.add(author + year)
py.user.next
def splitByColon(someString, allRefs):
    """Разделяет ссылку на автора/авторов и год."""
    index = someString.find(':')
    if index > 0:
 
        ref = someString[:index].strip()
        firstDigitIndex = digitPattern.search(ref).start()
        author = ref[:firstDigitIndex]
        years  = ref[firstDigitIndex:].split(', ')
        for year in years:
            allRefs.add(author + year)
 
    else:
 
        ref = someString.strip()
        firstDigitIndex = digitPattern.search(ref).start()
        author = ref[:firstDigitIndex]
        years  = ref[firstDigitIndex:].split(', ')
        for year in years:
            allRefs.add(author + year)
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