很多朋友通過自學(xué)來學(xué)習(xí)python,只是一味的看視頻,從來不知道自己動手練習(xí)一下,實踐是檢驗自己學(xué)沒學(xué)會的唯一真理,今天小猿圈加加針對自學(xué)的朋友出一道經(jīng)典的練習(xí)題,檢驗一下學(xué)習(xí)的程度,面試的小伙伴也可以看看哦,可能在面試的過程中也會遇到,那下面咱們一起來看依稀吧。
題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數(shù)列的前20項之和。
程序分析:請抓住分子與分母的變化規(guī)律。
#!/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
#!/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
#!/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)
python3實現(xiàn):
#!/usr/bin/python3
n=int(input("Enter a number:"))
a=2
b=1
list=[]
list1=[]
for i in range(1,n+1):
? ? list.append(str(a)+'/'+str(b))
? ? list1.append(a/b)
? ? c=a
? ? a=a+b
? ? b=c
print(list)
print(sum(list1))
上述通過python2和python3解決此問題,大家看到這道題一開始什么想法呢,千萬不要一開始就看答案,按照這個思路走,一定要有自己的想法,然后卡在哪一步,可以看看答案的思路,這樣有利于你的進(jìn)步,喜歡的可以搜索小猿圈,做一下其他的練習(xí)題,希望大家可以練習(xí)多一點,真正掌握!??!