Python编程求助:实现两数整除校验、零输入报错及余数返回功能
整除挑战(Divisible challenge)
编写一个程序,向用户请求输入两个数字。程序需要输出两个数字是否可以互相整除,如果不能整除则返回余数,如果用户输入0,程序需要给出错误提示。
原代码问题排查
- 执行顺序错误:未先判断是否输入0,就直接执行了除法运算,只要输入包含0,会直接触发Python除零报错,根本走不到后面的错误提示分支。
- 整除判断语法错误:
answer1(int)属于非法语法,Python没有这种调用写法,判断整除应该使用取模运算符%,当a % b == 0时就说明a可以被b整除。 - 逻辑判断错误:原判断条件
or的逻辑不符合「互相整除」的要求,互相整除需要两个方向都满足整除条件,应该用and。 - 功能缺失:需求要求不能整除时返回余数,原代码没有实现余数输出的逻辑。
修正后代码
num1 = int(input("Enter a number: ")) num2 = int(input("Enter a number: ")) # 优先判断0输入,避免除零错误 if num1 == 0 or num2 == 0: print("Error: you cannot divide by 0") else: # 两个方向都能整除才符合互相整除要求 if num1 % num2 == 0 and num2 % num1 == 0: print("Exactly divisible") else: # 输出两个方向的余数 remainder1 = num1 % num2 remainder2 = num2 % num1 print(f"Not Exactly divisible, num1 divided by num2 remainder: {remainder1}, num2 divided by num1 remainder: {remainder2}")
内容的提问来源于stack exchange,提问作者Programmer-ess
相关产品推荐
相关产品推荐

