Python Collatz序列实现过程解析

yipeiwu_com6年前Python基础

编写一个名为 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框架教程之正则表达式URL误区详解

Django框架教程之正则表达式URL误区详解

前言 利用Django开发网站,可以设计出非常优美的url规则,如果url的匹配规则(包含正则表达式)组织得比较好,view的结构就会比较清晰,比较容易维护。但这其中可能会有一些误区,下...

Python实现的简单dns查询功能示例

本文实例讲述了Python实现的简单dns查询功能。分享给大家供大家参考,具体如下: #!/usr/bin/python import sys,socket def print_ar...

python 解决flask 图片在线浏览或者直接下载的问题

目前是把图片存在mongodb数据库,实现一个方法,比如 访问 /get_pic/ID 能实现图片在浏览器打开,添加了一个状态,比如?filename=1.png,实现图片直接下载, 需...

Flask框架的学习指南之用户登录管理

继续flask的学习之旅。今天介绍flask的登陆管理模块,还记得上一篇中的blog小项目么,登录是咱们自己写的验证代码,大概有以下几个步骤: 1、在登录框中输入用户名和密码 2、fla...

python 示例分享---逻辑推理编程解决八皇后

可以和Haskell , Prolog 一样做到模式匹配, 建立逻辑推到规则,描述问题,得出答案。 from pyDatalog import pyDatalog pyDatalo...