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使用百度API上传文件到百度网盘代码分享
Nov 08 Python
python中map()函数的使用方法示例
Sep 29 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
Apr 24 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
Flask框架单例模式实现方法详解
Jul 31 Python
Win10下python 2.7与python 3.7双环境安装教程图解
Oct 12 Python
python将字符串转变成dict格式的实现
Nov 18 Python
python requests模拟登陆github的实现方法
Dec 26 Python
详解Python3中的 input() 函数
Mar 18 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
Nov 24 Python
Python实现科学占卜 让视频自动打码
Apr 09 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/05/10 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
php 检查电子邮件函数(自写)
2014/01/16 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
Javascript 类与静态类的实现
2010/04/01 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
详解webpack babel的配置
2018/01/09 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
Node登录权限验证token验证实现的方法示例
2020/05/25 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
Python 的描述符 descriptor详解
2016/02/27 Python
详解Python 装饰器执行顺序迷思
2018/08/08 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
python list格式数据excel导出方法
2018/10/31 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
非功能性需求都包括哪些方面
2013/10/29 面试题
离职感谢信怎么写
2015/01/22 职场文书
公司承诺书格式范文
2015/04/28 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL