Python Collatz序列实现过程解析


Posted in Python onOctober 12, 2019

编写一个名为 collatz()的函数,它有一个名为 number 的参数。如果参数是偶数,那么 collatz()就打印出 number // 2, 并返回该值。如果 number 是奇数, collatz()就打印并返回 3 * number + 1。然后编写一个程序, 让用户输入一个整数, 并不断对这个数调用 collatz(), 直到函数返回值1(令人惊奇的是, 这个序列对于任何整数都有效, 利用这个序列,你迟早会得到 1! 既使数学家也不能确定为什么。 你的程序在研究所谓的“Collatz序列”,它有时候被称为“最简单的、 不可能的数学问题”)。

在项目中添加 try 和 except 语句,检测用户是否输入了一个非整数的字符串。正常情况下, int()函数在传入一个非整数字符串时,会产生 ValueError 错误,比如 int('puppy')。在 except 子句中,向用户输出一条信息,告诉他们必须输入一个整数。

示例代码:

def collatz(number):
 a = number % 2
 if a == 0:
  number = number//2
  return number
 elif a == 1:
  number = number*3+1
  return number
try:
 number = int(input("请输入一个整数:"))
 while number != 1:
  number = collatz(number)
  print(number)
except ValueError:
 print('必须输入整数')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django中对数据查询结果进行排序的方法
Jul 17 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
Python字符串的全排列算法实例详解
Jan 07 Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
Python列表的切片实例讲解
Aug 20 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
Python BeautifulReport可视化报告代码实例
Apr 13 Python
Python多线程实现支付模拟请求过程解析
Apr 21 Python
python如何使用腾讯云发送短信
Sep 17 Python
Python本地及虚拟解释器配置过程解析
Oct 13 Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 Python
python logging日志模块原理及操作解析
Oct 12 #Python
Python爬虫之urllib基础用法教程
Oct 12 #Python
python 生成器和迭代器的原理解析
Oct 12 #Python
python 表格打印代码实例解析
Oct 12 #Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 #Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 #Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 #Python
You might like
用Flash图形化数据(二)
2006/10/09 PHP
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
如何使用Strace调试工具
2013/06/03 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
js精度溢出解决方案
2012/12/02 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
VSCode使用之Vue工程配置eslint
2019/04/30 Javascript
简单分析js中的this的原理
2019/08/31 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python 用户登录验证的小例子
2013/03/06 Python
Python 文件处理注意事项总结
2017/04/10 Python
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
Python内置函数delattr的具体用法
2017/11/23 Python
python实现拓扑排序的基本教程
2018/03/11 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
办公室文秘岗位职责
2013/11/15 职场文书
《音乐之都维也纳》教学反思
2014/04/16 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
质量整改通知单
2015/04/21 职场文书
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB