Практический пример Python 24

Python 100例100 примеров на Python

Задача:Имеется последовательность дробей: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13... Найдите сумму первых 20 членов этой последовательности.

Анализ программы:Пожалуйста, разберитесь в закономерности изменения числителя и знаменателя.

Исходный код программы:

Способ 1:

Пример

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 2.0 b = 1.0 s = 0 for n in range(1,21): s += a / b t = a a = a + b b = t print (s)

Метод 2:

Пример

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 2.0 b = 1.0 s = 0.0 for n in range(1,21): s += a / b b,a = a , a + b print (s) s = 0.0 for n in range(1,21): s += a / b b,a = a , a + b print (s)

Метод 3:

Пример (Python 2.x)

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 2.0 b = 1.0 l = [] l.append(a / b) for n in range(1,20): b,a = a,a + b l.append(a / b) print reduce(lambda x,y: x + y,l)

Пример (Python 3.x)

#!/usr/bin/python from functools import reduce a = 2.0 b = 1.0 l = [] l.append(a / b) for n in range(1,20): b,a = a,a + b l.append(a / b) print (reduce(lambda x,y: x + y,l))

Вывод приведенного выше примера:

32.6602607986

Python 100例100 примеров на Python

Другие расширения