LINUX.ORG.RU

Функции в Python


0

0

Люди!!! Плиз, помогите с написанием небольшой задачки. Я написала это: 
def get_lines(stroka):
    lst = []
    while True:
        s = raw_input(stroka)
        if not s: 
            break
        lst.append(s)
    return (lst)

def main ():
    stroka = "First  >>>"
    get_lines(stroka)
    get_lines("Second  >>>")
main()

def dup_reverse(lst): 
    i = 0
    dlinna = len(lst)
    while i < dlinna/2:
        elem = lst[i]
        lst[i] = lst[(dlinna-1)-i]
        lst[(dlinna-1)-i]= elem
        i = i+1
        
def print_list(lst):
    i=0
    dlinna = len(lst)
    while i < dlinna: 
        i = i+1

Мне Препод сделал вот какие замечания: 

1. Убирите из программы main, то как она добавлена делает программу совершенно бессмысленной. 2. Функция print_list печатает целые числа, а надо чтобы она печатала строки из списка. 3. Напишите фукцию main которая: - с помощью get_lines вводит список строк с терминала - с помощью dup_reverse меняет порядок строк в списке - с помощью print_list печатает список строк 

4. В конце программы вызовите main 

Пожалуйста, подскажите, как все это поправить, ведь моя задача практически верно написана. 

1. То, что делает твой dup_reverse, делается методом reverse у списка.
Судя же по названию, нужно создавать копию:

def dup_reverse( lst ) :
  ret = list( lst )
  ret.reverse()
  return ret

2. print_list в приведенном виде не печатает вообще ничего: ни числа, ни строки.

def print_list( lst ) :
  print "\n".join( lst )

3. Теперь склеиваем это всё вместе:

print_list( dup_reverse( get_lines( ">>>" ) ) )

4. Про main не понял.

watashiwa_daredeska ★★★★
()

Про main может он хочет это if __name__ == "__main__": stroka = "First >>>" get_lines(stroka) get_lines("Second >>>")

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.