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实现的防DDoS脚本
Feb 08 Python
Python获取Linux系统下的本机IP地址代码分享
Nov 07 Python
Python调用微信公众平台接口操作示例
Jul 08 Python
PyQt5 QSerialPort子线程操作的实现
Apr 21 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
Python实现的建造者模式示例
Aug 06 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
Aug 12 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
Python字符串的15个基本操作(小结)
Feb 03 Python
python上下文管理器异常问题解决方法
Feb 07 Python
python基础之//、/与%的区别详解
Jun 10 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
php浏览历史记录的方法
2015/03/10 PHP
Yii2使用swiftmailer发送邮件的方法
2016/05/03 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
2011/02/25 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
给Python入门者的一些编程建议
2015/06/15 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
python连接数据库的方法
2017/10/19 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
django自定义模板标签过程解析
2019/12/14 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
django 多数据库及分库实现方式
2020/04/01 Python
python线程里哪种模块比较适合
2020/08/02 Python
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
文明青少年标兵事迹材料
2014/01/28 职场文书
工程承诺书怎么写
2014/05/24 职场文书
增员口号大全
2014/06/18 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书