python实践项目—Collatz序列

Collatz序列题意说明

  编写一个名为collatz()的函数,它有一个名为number 的参数。如果参数是偶数,那么collatz()就打印出number // 2,并返回该值。如果number 是奇数,collatz()就打印并返回3 * number + 1。
  然后编写一个程序,让用户输入一个整数,并不断对这个数调用collatz(),直到函数返回值1(令人惊奇的是,这个序列对于任何整数都有效,利用这个序列,你迟早会得到1!既使数学家也不能确定为什么。你的程序在研究所谓的“Collatz序列”,它有时候被称为“最简单的、不可能的数学问题”)。

Collatz序列具体实现代码

#-*- conding: utf8 -*-
############################################
#author:wolf_dreams
#time:2018-11-12
#blog:https://www.cnblogs.com/Wolf-Dreams/
############################################
def collatz(number):
        if number % 2 == 0:
            return number // 2
        elif number % 2 == 1:
            return 3 * number + 1
try:
    print(‘Enter number:‘)
    input_Number = int(input())
    while True:
        input_Number=collatz(input_Number)
        print(input_Number)
        if input_Number == 1:
            break
except ValueError:
    print(‘Input format is incorrect,please enter an integer.‘)

Collatz序列脚本运行结果:

Enter number:
54
27
82
41
124
62
31
94
47
142
71
214
107
322
161
484
242
121
364
182
91
274
137
412
206
103
310
155
466
233
700
350
175
526
263
790
395
1186
593
1780
890
445
1336
668
334
167
502
251
754
377
1132
566
283
850
425
1276
638
319
958
479
1438
719
2158
1079
3238
1619
4858
2429
7288
3644
1822
911
2734
1367
4102
2051
6154
3077
9232
4616
2308
1154
577
1732
866
433
1300
650
325
976
488
244
122
61
184
92
46
23
70
35
106
53
160
80
40
20
10
5
16
8
4
2
1

Collatz序列提示说明:

str()与int()转换说明:
    input()的返回值为str字符串型,需要使用int()函数将其转成一个整数,否则程序在运行的时候会报错
奇数和偶数如何判断说明:
    如果number % 2 == 0,则整数number就是偶数;如果number % 2 == 1,则整数number就是奇数

Collatz序列输入验证:

  在前面Collatz序列的项目中添加try 和except 语句,检测用户是否输入了一个非整数的字符串。正常情况下,int()函数在传入一个非整数字符串时,会产生ValueError 错误,比如int(‘puppy‘)。在except 子句中,向用户输出一条信息,告诉他们必须输入一个整数。

Collatz序列输入验证具体实现代码:

try:
    print(‘Enter number:‘)
    input_Number = int(input())
    while True:
        input_Number=collatz(input_Number)
        print(input_Number)
        if input_Number == 1:
            break
except ValueError:
    print(‘Input format is incorrect,please enter an integer.‘)

原文地址:https://www.cnblogs.com/Wolf-Dreams/p/9949541.html

时间: 2024-10-10 00:15:40

python实践项目—Collatz序列的相关文章

python实践项目一:Collatz函数

要求1:编写一个名为 collatz()的函数,它有一个名为 number 的参数.如果参数是偶数,那么 collatz()就打印出 number // 2, 并返回该值.如果 number 是奇数, collatz()就打印并返回 3 * number + 1.然后编写一个程序,让用户输入一个整数,并不断对这个数调用 collatz(), 直到函数返回值1. 要求2:输入验证:在前面的项目中添加 try 和 except 语句,检测用户是否输入了一个非整数的字符串.正常情况下, int()函数

python实践项目九:操作文件-修改文件名

描述:多个文件,文件名名包含美国风格的日期( MM-DD-YYYY),需要将它们改名为欧洲风格的日期( DD-MM-YYYY) 代码1:先创建100个文件名为美国风格日期的文件(文件路径为项目当前路径下) 1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 #先创建一百个文件名为美国风格日期的文件 4 import os,random 5 for num in range(100): 6 mm=random.randint(1,12) 7 dd=ran

python 实践项目

项目一:让用户输入圆的半径,告诉用户圆的面积 思路: 1.首先需要让用户输入一个字符串,即圆的半径 2.判断用户输入的字符串是否为数字  isalpha 3.求圆的面积需要调用到math模块,所以要导入该模块 原文地址:https://www.cnblogs.com/liangzhenghong/p/10704655.html

python实践项目八:生成随机试卷文件

描述:匹配美国50个州的首府. 下面是程序需要完成的任务: • 创建35 份不同的测验试卷. • 为每份试卷创建50 个多重选择题,次序随机. • 为每个问题提供一个正确答案和3 个随机的错误答案,次序随机. • 将测验试卷写到35 个文本文件中. • 将答案写到35 个文本文件中. 这意味着代码需要做下面的事: • 将州和它们的首府保存在一个字典中. • 针对测验文本文件和答案文本文件,调用open(). write()和close(). • 利用random.shuffle()随机调整问题和

Python实践:猜数字小程序Collatz序列

猜数字 代码 ''' 猜数字小游戏,不断输入你所猜的数(1-100),程序会根据你的输入提醒你进行 适当调整所猜数的大小,直到最后猜出这个随机数 ''' guessNumber = random.randint(1,100) print("I'm thinking a number between 1 and 100.") while True: print('Take a guess.') guess = int(input()) if guess > guessNumber:

Python Collatz 序列和输入验证

Python编程快速上手实践项目题目,欢迎指证与优化! Collatz 序列题目:编写一个名为 collatz()的函数,它有一个名为 number 的参数.如果参数是偶数,那么 collatz()就打印出 number // 2, 并返回该值.如果 number 是奇数, collatz()就打印并返回 3 * number + 1.然后编写一个程序, 让用户输入一个整数, 并不断对这个数调用 collatz(), 直到函数返回值1(令人惊奇的是, 这个序列对于任何整数都有效, 利用这个序列,

python编程快速上手之第10章实践项目参考答案

  本章主要讲了python程序的调试,当程序有BUG或异常的时候,我们如何调试代码找出问题点.其实在本章之前的章节我们做练习的时候都会遇到各种各样的错语和异常,最初当不知道程序哪里出错的情况下不可否认的都使用了print语句进行输出并调试代码.没错print也是调试代码的一种工具,直观简单,便也有缺点,就是调试好后要进行删除,也是件麻烦事,于是就有了本章介绍的assert(断言),logging(日志)以及各种调试工具的出现. 首先来回顾一下python的异常. 一.python常见的异常类型

python计算机视觉项目实践 答案

有问题的找我哈,转载标明出处http://blog.csdn.net/ikerpeng/article/details/25027567 里面具体的图没有贴了,原理还是比较好理解的.需要的找我! 基于朴素贝叶斯的图片分类 摘要 图片分类问题是计算机视觉中比较常见的问题.图片分类在日常的生活中,以及图片搜索中等方面都有很多很实际的用途.如何准确快速有效的进行图片分类,提高图片分类的准确率和召回率是现在主要要解决的问题.因此一个好的分类学习的算法以及一个好的特征提取的方式是非常重要的.本文所采取的学

《Python编程快速上手+让繁琐工作自动化》第三章实践项目

1 Collatz 序列 编写一个名为 collatz()的函数,它有一个名为 number 的参数.如果参数是偶数,那么 collatz()就打印出 number // 2,并返回该值.如果 number 是奇数,collatz()就打印并返回 3 * number + 1. 然后编写一个程序,让用户输入一个整数,并不断对这个数调用 collatz(),直到函数返回值1(令人惊奇的是,这个序列对于任何整数都有效,利用这个序列,你迟早会得到 1!既使数学家也不能确定为什么.你的程序在研究所谓的"