斐波那契数列学习python心得体会_第1页
斐波那契数列学习python心得体会_第2页
斐波那契数列学习python心得体会_第3页
斐波那契数列学习python心得体会_第4页
斐波那契数列学习python心得体会_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

斐波那契数列学习python心得体会一、实践目的1.了解Python(1)Python的介绍Python是一种相当高级的语言,比如,完成同一个编程,C语言要写很多行代码,Java需要多行的代码,而Python可能只需要少量的代码。相比之下,python和其他编程语言有着显著的差异。同比之下,用更少量的时间,解决更多的编程问题。(2)Python的优势

通过短期的接触python,我了解到,它的广泛实用性不是其他编程语言可以相提并论的。python虽然脱胎于c语言,但是它撇弃了许多c语言的缺点,比c语言更加的简化过程。python现在的发展进程也不是其他编程语言能够相比较的。它在不断的被创新,不断的在前进,甩开其他的编程语言。(3)python的劣势虽然身披很多的光彩,但没有那个东西可以做到完美无缺。运行速度相比较c语言,还是稍有不及。同样,保密性也是它的缺点之一。同比较其他的编程语言,这个可能是一个致命的方面。现在的社会,很多东西的保密性看的都比较重要,c语言在此方面依然也是遥遥领先。由于是后起之秀,所以,虽然是高速发展,但是它的根基相比较而言不是很牢固。但是也表明了一件事,那就是此领域python对人才的吸引远超其他编程语言。2.对爬虫的初识(1)爬虫的定义网络爬虫是一种可以自动获取网页内容的编程,是一个引擎很重的组成部分。一般分为传统爬虫和聚焦爬虫。(2)爬虫的分类传统爬虫从一个或很多个初始网页的URL开始进行的,通过获得初始网页上的URL,在选择抓取网页的途中,时不时的选择抓取新的ULR放入队列中来,知道系统不再需要为止。简单来说,也就是通过分析代码来获得想要的内容。聚焦爬虫的操作难度有点高,需要根据特定的网页去分析算法,并且删除掉主题无关的链接,选择性的抓取一些有用的链接并将其放入等待抓取的URL队列。然后,它会根据一定的搜索程序从队列中选择接下来要抓取的网页URL,并不断的重复上述过程,知道系统达到某一特定的条件。同时,所有被爬虫抓取的网页将会被系统收藏并且保存,进行简单的分析、过滤,并建立索引,方便以后的查询和检索;对于聚焦爬虫来说,这一过程所得到的结果也有可能对以后的操作进行实践指导。3.关于斐波那契数列(1)关于斐波那契数列的由来斐波那契数列,又被叫做黄金分割数列。是数学家列昂纳多·斐波那契以兔子繁殖为例子才被发现得,所以也被叫做“兔子数列”。通常所指的是这样一个数列:1、1、2、3、5、8、13、21、34。(2)应用编程语言来实现斐波那契数列。二、实践内容1.Python基本代码的学习(1)应用python把网页界面调试出来.<formname="user"action="#"method="get"> <tablealign="center"> <tr> <td>姓名</td> <td> <inputtype="text"name="username"/> </td> </tr> <tr> <td>学号</td> <td> <inputtype="password"/> </td> </tr> <tr> <td>性别</td> <td> <inputtype="radio"name="name"/>男 <inputtype="radio"name="name"checked="checked"/>女 </td> </tr> <tr> <td>学院</td> <td> <select> <option>西安财经大学</option> <option>西安交通大学</option> <option>西安工业大学</option> <option>1232</option> <option>西安工</option> </select> <select> <option>数学</option> <option>统计</option> <option>会计</option> </select> </td> </tr> <tr> <td>爱好</td> <td> <inputtype="checkbox"name="sport"checked="checked"/>旷课 <inputtype="checkbox"name="basketball"/>睡觉 <inputtype="checkbox"name="volleyball"/>迟到 </td> </tr> <tr> <td>邮箱</td> <td> <inputtype="text"name="emall"/> </td> </tr> <tr> <td>成绩</td> <td> <inputtype="text"name="phone"/> </td> </tr> <tr> <td>上传头像</td> <td> <inputtype="file"name="file"/> </td> </tr> <tr> <td>个人简介</td> <td> <textarearows="15"cols="50"></textarea> </td> </tr> <tr> <td></td> <td> <inputtype="button"value="登录"/> <inputtype="submit"name="tijiao"value="提交"/> <inputtype="reset"name="quxiao"value="取消"/> </td> </tr> </table></form> 图一(2)应用python解释导入的五个库和包.图二(3)应用python写一个简单的html网页.图三(4)应用python在下列数组值li=[1,2,3,22,4]最后追加元素5,“caijing”,[1100,0011]三个元素,打印输出当前数组.li=[1,2,3,22,4]

li.append(5)

li.append("caijing")

li.append("[1100,0011]")

print(li)图四(5)应用python[11,22,33,22,44,5,'alex',[1234,2323]]计算元素22出现的次数并且打印输出.图五li=[1,2,3,22,4]

li.append(5)

li.append("caijing")

li.append("[1100,0011]")

print(li)(7)应用python用户登录(三次机会重试)n=1

whilen<4:

username=input("请输入你的名字:");

password=input("请输入你的学号:");

ifusername=="赵中辉"andpassword=="1704970243":

print("登陆成功");

else:

print("请重新输入")

n=n+1图七

(8)应用python在下列数组li=[1,2,3,22,4]最后追加元素5,“caijing”,[1100,11],三个元素,打印输出当前数组.#往最后追加元素元素

li=[1,2,3,22,4]

li.append(5)

li.append("caijing")

li.append([1100,11])

print(li)图八(9)应用python[11,22,33,22,44,5,"alex",[1234,2323]]计算元素22出现的次数并且打印输出.#计算元素22出现的次数

li=[11,22,33,22,44,5,"alex",[1234,2323]]

c=li.count(22)

print(c)图九(10)应用python获取当前值88索引位置,打印输出,并且将100插入到索引为3的位置,打印输出,li=[11,22,33,22,44,99,88,1,2,5].#获取元素88的索引位置

li=[11,22,33,22,44,99,88,1,2,5]

i=li.index(88)

print(i)

#往索引为3的位置里添加元素100

li=[11,22,33,22,44,99,88,1,2,5]

li.insert(3,100)

print(li)图十(11)应用python删除列表中的指定值100,li=[11,22,33,22,44,99,88,100,1,2,5]打印输出,然后对之前未删除的当前列表进行翻转,打印输出结果.#删除指定值100

li=[11,22,33,22,44,99,88,100,1,2,5]

li.remove(100)

print(li)

#对列表进行翻转

li=[11,22,33,22,44,99,88,100,1,2,5]

li.reverse()

print(li)图十一(12)应用python实现一个整数加封计算器,如content=input(“请输入内容:”)#如用户输入:5+9或5+9或5+9然后进行分割.#整数加封计算器content=input("请输入内容:")

index=content.find("+")

a=int(content[0:index])

b=int(content[index+1:])

print(a+b)图十二以上都是对python语言的练习和应用,虽然做的有些粗糙,但是他们加深了我对python学习的兴趣,也让我了解到了更多编程语言的乐趣所在。三、实践过程1.用Pycharm软件编写程序,爬虫爬取出猫眼电影网上的排名前100的电影及相关信息。写出程序importrequests

fromrequests.exceptionsimportRequestException

importre

importjson

frommultiprocessingimportPool

headers={"Accept":"textml,application/xhtml+xml,application/xml;",

"Accept-Encoding":"gzip",

"Accept-Language":"zh-CN,zh;q=0.8",

"Referer":"/",

"User-Agent":"Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/42.0.2311.90Safari/537.36"}

defget_one_page(url):

try:

response=requests.get(url,headers=headers)

ifresponse.status_code==200:

returnresponse.text

returnNone

exceptRequestException:

returnNone

defpaser_one_page(html):

pattern=pile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a'

+'.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>'

+'.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>',re.S)

items=re.findall(pattern,html)

foriteminitems:

yield{

'index':item[0],

'image':item[1],

'title':item[2],

'actor':item[3].strip()[3:],

'time':item[4].strip()[5:],

'score':item[5]+item[6],

}

defwrite_to_file(content):

withopen('weiyongle.json','a',encoding='utf-8')asf:

f.write(json.dumps(content,ensure_ascii=False)+'\n')

f.close()

defmain(offset):

url='/board/4?offset='+str(offset)

html=get_one_page(url)

foriteminpaser_one_page(html):

print(item)

write_to_file(item)

if__name__=='__main__':

foriinrange(10):

main(i*10)2.实现斐波那契数列打开IDE,配置解释器(1)点击桌面pycharm图标打开IDE 图SEQ图\*ARABIC1(2)在打开的窗口中选择CreateNewProject选项。图SEQ图\*ARABIC2接着在弹出的下拉菜单中选择Systeam打开首选项菜单图SEQ图\*ARABIC3图SEQ图\*ARABIC4点击Create图SEQ图\*ARABIC5新建Python源代码文件(1)鼠标右键单击project工程,在菜单中选择New->PythonFile创建.py文件

图SEQ图\*ARABIC6(2)在弹出窗口的Name文本框中输入.py文件的文件名,本次实验推荐文件名为“斐波那契数列“。接着点击OK按钮完成python源文件的创建。创建成功后,会默认在右侧编辑区域打开该文件图SEQ图\*ARABIC7以上都是对斐波那契数列的简单应用,下面开始对斐波那契数列进行实际上的编码练习。编写实验代码(1)输入如下代码,定义一个函数,该函数接收一个参数n,用于计算斐波那契数列项。当n小于等于0时,返回的数列项值为0

[Code001]:

defFibonacci_Recursion_tool(n):

ifn<=0:

return0

(2)在该函数中输入如下代码,实现当n等于1时,返回的数列项值为1

[Code002]:

elifn==1:

return1

(3)在该函数中输入如下代码,实现当n非0非1时,返回的数列项值为f(n-1)+f(n-2)

[Code003]:

else:

returnFibonacci_Recursion_tool(n-1)+Fibonacci_Recursion_tool(n-2)

4.输入如下代码,定义一个函数,该函数接收一个参数n,用于计算1-n之间的斐波那契数列。该函数的实现为,遍历1-n之间的数,并依次调用Fibonacci_Recursion_tool函数计算数列项,并将计算的结果保存至一个列表中

[Code004]:

defFibonacci_Recursion(n):

result_list=[]

foriinrange(1,n+1):result_list.append(Fibonacci_Recursion_tool(i))

returnresult_list

5.输入如下代码,编写程序入口,调用Fibonacci_Recursion函数,并传入100作为实参,计算10个斐波那契数列项,并打印

[Code005]:

if__name__=='__main__':

result=Fibonacci_Recursion(10)

print(result)

完整代码如下图所示

图SEQ图\*ARABIC8执行程序(1)单击右侧编辑窗口,在菜单中选择Runpython主程序所在文件名一项执行编写好的Python程序。(2)在IDE下方控制台查看输出结果图SEQ图\*ARABIC9四、实践体会通过短期的学习,让我对这门课程有了很多的了解和掌握。python是一个非常有前景的、有未来的一门课程和技术,通过与老师的交流,我知道这个好像与人工智能息息相关。python是一门非常的富有发展潜力的高级编程语言,历经多年的不断发展,其在软件编程上已经发挥着越来越大的主导作用。在这学期中,通过选修python课上的基础知识学习,我对python也有了一定的认识在学习python的第一节课上,其对我的最初的印象就是,相较于我学习过的c语言编程,它更加的简洁。所有的定义变量都不那么需要也就像一般c语言系统编程那样都只需要自己提前几年去进行定义,这样也就给了每个编程者很大的自由度和空间与方便。如果有x=,即可同时自动完成两个变量的类型定义与变量赋值。对于不断简化应用程序的运行代码,起到了许多的促进作用。而且,在每个字符串上的符号处理,python相对于其他c编程语言也是给予了程序员极大的便利。在很多c语言中,只能用一个字符串之类的数组对一个字符串数组进行一些相应的创建操作,步骤也可能是有些相对于比较繁琐的,而在cppython中,当我们发现需要重新创建一个数组字符串的那个时候,只要是需要在我们创建这个字符串的那个时候再使用"s="就已经可以了。而ccpython不仅如此,它的软件库也很多,正因为它强大的软件库,让整个编程工作变得不再艰难。我们只不过需要直接调用数据库文件中的一些函数,而对于这些函数的具体操作实现,也基本没有特殊的操作需求。但是,我认为python虽然在许多方面相对于c语言比较方便,但也有其相对于弱一点的方面,比如说for循环等方面。不过也依然永远不会让人影响感受到软件python的强大,而随着软件近几年来的快速发展,python的广泛受欢迎度也越来越高,而它的广泛运用的专业领域也是越来越多,比如说在人工智能和工业大数据等诸多领域,python都已经是在其中不断扮演者重要的一个角色。虽然一学期下来,我对python的学习也仅仅只是它的基础方面,但python的强大,也是足足地吸引着我,希望自己能够在不断地学习中,将python学习的更加好。Python是一门比较容易学习的语言,因为它是非常高级的语言,比C和C++这样的语言,还要高级几个层次,即使是一个小学刚毕业的学生都可以学会。Python在很多领域都是免费使用,这告诉我们它可以无任何的花销就可以进行简单的学习,并且使用它。Python拥有很多的且发展完整的数据库可以供我们选择使用。比如列表、字典、字符串这样高级的功能python的学习让我认识到了更广的网络世界,同样,也在我心中埋下了一颗种子。通过这次短时间与python的接触,我感触颇多。虽然有很多的困惑与不解,但是也收获不少。我的专业是数学,这门课程与我们的专业有着很大的联系,通过它也了解到了不少专业未来的前景,让我对本来兴趣不大的数学有了很大的兴趣。也通过不少渠道了解到这个课程的难易程度和许多的小问题。虽然学习的热度很高,但是竞争也越来越大,学习这门课程的压力也是越来越重。面对日益严峻的竞争形势,是我对着门课程投入了大量的时间和精力。虽然以后不一定能成为这门课程方面的大家,但只求自己心安,必进人生有过拼搏,可以求个心里安慰。Python与很多编程语言一样,有很多的相同,又有很多的不同。他们既相互独立有相互排斥。他们既是兄弟,又是敌人。很多python的小问题可以用C语言等编程语言解决。在许多低级问题上,python可能稍有不急其他语言,但在高端问题上,却可以遥遥领先其他语言。Python和java更面向与未来。他们与人工智能有很密切的联系。以前对这门课程不是很了解,让以前的我学习可能不是很能引起兴趣。虽然了解很多变成语言,但是都没有深入了解过,都是小有了解。想深层次的了解,不能只停留在课本上,还是要通过大量的练习来完成积累。现在的社会进步很快,每个人每件事都没有以前的那么扎实。现实就是如此,有时候这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论