2015-08-26 2 views
-4

Я нашел этот код на странице простых программ python.Как работает следующая программа Python?

parents, babies = (1, 1) 
while babies < 100: 

    print 'This generation has {0} babies'.format(babies) 
    parents, babies = (babies, parents + babies) 

Выход:

This generation has 1 babies 
This generation has 2 babies 
This generation has 3 babies 
This generation has 5 babies 
This generation has 8 babies 
This generation has 13 babies 
This generation has 21 babies 
This generation has 34 babies 
This generation has 55 babies 
This generation has 89 babies 
+3

Так какая часть кода вам не понятна? что вы поняли из этого кода сами? – Kasramvd

ответ

0

Добро пожаловать в python. Начнем с первой строки.

parents, babies = (1, 1) 

В этой строке кортеж распаковывается для переменных родителей и младенцев. Таким образом, у обоих будет значение 1. Чтобы узнать, что означает последовательность распаковки, вы можете видеть What is sequence unpacking?

Я ожидаю, что вы знаете, что делает цикл while, поэтому давайте посмотрим на третью строку.

print 'This generation has {0} babies'.format(babies) 

Если и хотите знать, как print.format() работает, вы можете увидеть эту ссылку How print.format() work in python. Короче говоря, метод внутреннего формата вы можете передать несколько параметров и использовать их в команде печати с массивом типа index ({0}, {1}, {2}, ...). Как и в этом коде, формат содержит один параметр babies, мы можем получить к нему доступ с {0} в инструкции печати.

Следующая строка,

parents, babies = (babies, parents + babies) 

делая почти такой же, как в первой строке. Он создает последовательность и распаковывает сразу две переменные. Вы можете сделать их так, как хорошо:

temp = parents 
    parents = babies 
    babies = temp + babies 

Итак, теперь рассмотрим программу и угадать, что это делает. Если вы все понимаете, у вас уже есть ответ. Программа печатает числа Фибоначчи до 100. Не стесняйтесь спрашивать, есть ли у вас еще вопрос.

+0

Привет, Ahsanul, большое спасибо за объяснение этого мне. – Srivamsi

0
parents, babies = (1, 1) #This line simply creates the parents and the babies (There are one of each). 

while babies < 100: #while there are less than 100 babies 

    print 'This generation has {0} babies'.format(babies) #his will print the string {0} tells it that the first paramter supplied to the format method should go there. 
    parents, babies = (babies, parents + babies) #parent = babies, babies = parents + babies. 

Так первый пробег у вас есть один из каждого. Второй запуск у вас есть 1 родитель, но 2 ребенка (родители + дети). Затем вы получаете 3 младенца (2 + 1) и так далее.

Это на самом деле просто простая реализация последовательности фибоначчи.

+0

Большое спасибо за ваше объяснение. Теперь я совершенно ясно понимаю это. – Srivamsi

1
parents, babies = (1, 1) 

Это заявление о назначении. Значение «1» будет присвоено parents и babies.

В то время цикла, значение babies будет присвоен parents и сумма babies и parents будет назначен babies. Цикл закончится, когда значение babies выходит за пределы 100.

+0

Большое спасибо, Mohan – Srivamsi

Смежные вопросы