分享

温文默克的学习笔记—Python篇(1)

 我的人生宝库 2020-01-02

【人生苦短,我学Python】是众多和计算机接触过的朋友耳熟能详的段子,Python作为最近几年非常火的编程语言,因为其简洁和开源的特点,受到许许多多人的喜爱。著名房地产商潘石屹先生也在学习Python,足以可见Python的实用性和其强大的“魅力”。

温文默克的学习笔记—Python篇(1)

笔者自身对于Python也是十分喜爱,希望能有越来越多的朋友接触这门语言。关于Python的学习,除了看一些课程视频和专业书籍外,笔者认为最重要的就是练习,无论是大的项目还是小的例子,只有在练习中不断进行尝试才能找到自己的“盲区”。

接下来,笔者开始今天的学习笔记分享——Collatz 序列

温文默克的学习笔记—Python篇(1)

Collatz 序列(奇偶归一猜想)又称为3n+1猜想、冰雹猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,反复进行上述循环,最终结果都能够得到1。为了实现上述功能,首先要定义一个函数(笔者将其命名为collatz()),它有一个名为 number 的参数。如果参数是偶数,那么 collatz()就打印出 number // 2,并返回该值。如果 number 是奇数,collatz()就打印并返回 3 * number + 1。

def collatz(num): if num % 2==0: return num // 2 else: return 3 * num + 1

然后编写一个程序,让用户输入一个整数,并不断对这个数调用 collatz(),直到函数返回值1。而要实现这一功能要注意两点,一是要记得用 int()函数将输入的值转成一个整数,否则它会是一个字符串,调用collatz()会失败。二是要不断调用collatz(),这时就需要用到“递归”了。

温文默克的学习笔记—Python篇(1)

那什么是“递归”呢?简单来说就是不断地调用自己,举个笔者小时候听过的例子:从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚讲故事,说从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚讲故事,从前有座山... 还有从两面相对的镜子中看到的画面,其实都是抽象出来的递归现象。

温文默克的学习笔记—Python篇(1)

不过这严格上来说并不能算是递归,因为会一直重复下去,没有终止条件,那就称为死循环了。递归需要终止条件的。利用递归的思想,可以实现很多功能,比如九九乘法表,斐波拉契数列……

回到本来的Collatz 序列这个例子,笔者定义了一个名为func()的函数,参数值为输入的正整数。在这个函数里调用collatz(),如果得出的值不是1,证明还没到最后,将其打印出来,再使用递归的思想,调用自己,参数值为目前使用collatz()得出的值,反复进行,直到最后得出的值为1。

def func(i):    if collatz(i) != 1:        print(collatz(i))        i = collatz(i)        func(i)    else:        print(collatz(i))

到了这一步基本的功能已经实现了,不过我们还可以在输入操作上进行一些完善,在用户输入数值类型错误时,给予提示。这里使用try…except语句来解决输入错误问题。

while True: print('Enter number:') try: i = int(input()) func(i) break except ValueError: print('请输入整数!!!')

本次的分享就到这里,今天刚好是1月1日,祝大家新的一年能够万事顺利~

pip uninstall 2019

pip install 2020

import money

from money import beauty

from money import *

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多