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-ALLAUTH社交用户系统的安装配置
Nov 18 Python
利用python发送和接收邮件
Sep 27 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 Python
安装python时MySQLdb报错的问题描述及解决方法
Mar 20 Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 Python
实例讲解python中的协程
Oct 08 Python
pyqt5使用按钮进行界面的跳转方法
Jun 19 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
python利用JMeter测试Tornado的多线程
Jan 12 Python
python实现拼图小游戏
Feb 22 Python
解决pip安装的第三方包在PyCharm无法导入的问题
Oct 15 Python
Python 视频画质增强
Apr 28 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 面向对象之成员方法详解
2013/05/04 PHP
解析如何在PHP下载文件名中解决乱码的问题
2013/06/20 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
javascript call方法使用说明
2010/01/11 Javascript
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Python创建或生成列表的操作方法
2019/06/19 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
Python 硬币兑换问题
2019/07/29 Python
pytorch加载自己的图像数据集实例
2020/07/07 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
财务管理专业自荐信范文
2013/12/24 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
出生公证委托书
2014/04/03 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
2021/11/11 Python