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 相关文章推荐
Python 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
Sep 11 Python
Django rest framework工具包简单用法示例
Jul 20 Python
python数据批量写入ScrolledText的优化方法
Oct 11 Python
对pandas数据判断是否为NaN值的方法详解
Nov 06 Python
利用python如何在前程无忧高效投递简历
May 07 Python
简单了解python中的与或非运算
Sep 18 Python
树莓派安装OpenCV3完整过程的实现
Oct 10 Python
Python完全识别验证码自动登录实例详解
Nov 24 Python
Python3 main函数使用sys.argv传入多个参数的实现
Dec 25 Python
Python进行统计建模
Aug 10 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 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
php编写一个简单的路由类
2011/04/13 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
PHP时间处理类操作示例
2018/09/05 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
2019/09/29 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
fastclick插件导致日期(input[type="date"])控件无法被触发该如何解决
2015/11/09 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
PyQt5响应回车事件的方法
2019/06/25 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
.NET程序员的数据库面试题
2012/10/10 面试题
软件测试工程师面试问题精选
2016/10/28 面试题
十一个高级MySql面试题
2014/10/06 面试题
学校读书活动总结
2014/06/30 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
教师节校长致辞
2015/07/31 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server