python - 用 Python 自动化无聊的东西 - Collatz 序列
问题描述
我对任何类型的编码都很陌生,目前使用 python 3.3。我已经成功地在 python 中准确地运行了 Collatz 序列,如下所示:
while True: # The main game loop.
number = int(input('Enter number:\n'))
def collatz(number):
while number !=1:
if number % 2==0: #even numbers
number=number//2
print(number)
elif number % 2!=0: #odd numbers
number=number*3+1
print(number)
collatz(number)
但是,我不确定如何以及在何处添加 ValueError strong,因为当用户输入非整数时,如下所示:
except ValueError:
print('Only integers accepted.')
我对python很陌生,所以如果有任何答案可以有一点解释,我会非常感激。谢谢
解决方案
我假设您指的是异常处理,验证部分必须在开始时完成。
while True: # The main game loop.
try:
number = int(input('Enter number:\n'))
except ValueError:
print("Only integers accepted! Please try again ...")
else:
collatz(number)
#output:
#
#Enter number:
#abc
#Only integers accepted! Please try again ...
#Enter number:
#5
#16
#8
#4
#2
#1
#Enter number:
但是程序会继续循环,需要终止条件。
推荐阅读
- python - Python:使用 requests.get('http.weatherdataexample.com/example.json') 直接请求
- swift - 具有关联类型的协议作为类型解决方法
- python-3.x - 提取括号之间的数据并将结果值放在另一列中
- php - PHP 查找相似的 ID(EAN 代码)并显示是否存在
- android - Koin 2.2.1:我不能在 Activity 中使用“by viewModel”
- java - Equals 方法不适用于两个相同的对象
- mysql - 在 mysql 中使用 IN 运算符收到 1292 截断不正确的 DOUBLE 值的警告
- sql-server - 如何使用 FireDAC 和 SQL Server 避免不需要的事务和锁定
- visual-studio - Visual Studio Intellisense 建议箭头快捷方式
- vba - 如何根据主题将收到的邮件移动到特定文件夹?