求解一道python编程题
斐波那契数列自第三个数开始,每个数均为之前两个数的和。
至少有两种方法来实现它。
最常见的利用迭代的方法,其核心思路是
Fib(n)=fib(n-1)+fib(n-2)
而在n<2时直接,没有n-2,因此直接返回1:
deffib(num):return1ifn<2elsefib(num-1)+fib(num-2)
这是一种很简单的实现。在阶梯数不大时,它很好用。当阶梯数很大时,因为二次手迭代,会比较慢。因此,可以在计算中保存中间值(1至n-1的阶梯数)来减少计算量:
这种方式在计算阶梯数10000时就可以保持不错的性能。如果需要多次计算该数列,则可以利用对象来保持这个中间值列表,下列代码中,Fibonaci实例只计算未曾计算的阶梯数,在重复调用时它更具优势:
classFibonaci(object):
....history=[1,1]
....defcacl(self,num):
........whilelen(self.history)<=num:
............self.history.append(self.history[-1]+self.history[-2])
........returnself.history[num]
if__name__==__main__:
....fib=Fibonaci()
....print(fib.calc(100))
....print(fib.calc(32))
....print(fib.calc(10000))
Python爬虫期末试题(编程题答案)
from seleniumimport webdriverimport timefrom selenium.webdriverimport ActionChainsdriver = webdriver.Chrome()driver.get("# 点击密码登录driver.find_element_by_class_name(account-tab-account).click()# 定位账户 # 输入内容driver.find_element_by_id(username).send_keys(2331566038)driver.find_element_by_id(password).send_keys(*********)driver.find_element_by_link_text(登录豆瓣).click()# 进入内嵌滑动验证页面iframe = driver.find_element_by_id(tcaptcha_iframe)driver.switch_to_frame(iframe)element = driver.find_element_by_xpath(//*[@id="tcaptcha_drag_thumb"])ActionChains(driver).click_and_hold(on_element=element).perform()ActionChains(driver).move_to_element_with_offset(to_element=element,xoffset=180,yoffset=0).perform()driver.save_screenshot(豆瓣.png)time.sleep(5)driver.quit()import urllib.requestimport urllib. = {"wd":"浙江大学"}word = urllib.parse.urlencode(word)new_url = url +"?" + wordheader = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"resquest = urllib.request.Request(new_url,headers = header,)response = urllib.request.urlopen(resquest)html = response.read().decode(utf-8)print(html)