给定一个三位数,求其数字之和 Python

问题描述

这是一个简单的 python 练习,代码已经可以运行,但我想知道,如果余数 optionsClicked = () => { this.setState({ isActive3: !this.state.isActive3 }) }; <div className="updateInfo"> <div className="timenoptions"> <div className="time">{moment(content.dateCreated).calendar()}</div> <div className= {this.state.isActive3 ? "optionsContainer active" : "optionsContainer"} onClick={this.optionsClicked} > <div className="options"> ...</div> <div className="optionsDropdown"> <ul className="optionsList"> <div className="edit"> Edit</div> <div className= "delete" onClick={this.removeItem}>Delete</div> </ul> </div> </div> </div> <p>{content.content}</p> </div> 为零,我如何将给定的数字除以零并从中得到一些错误而不是错误?这可能是微不足道的,但我无法意识到发生了什么。

10 % 10

解决方法

好吧,在该示例中的任何地方都没有真正除以零。如果您指的是行 b = number // 10 % 10,那么实际发生的情况是该数字除以 10,并将结果输入模数,即“除以 10 后的余数”。我认为您理解该行上的操作顺序错误,这使您相信可能会发生除以 0 的情况。不能。

,

在使用混合运算符时使用括号很重要,因为运算符优先级可能会导致意外结果。在 Python 中,% 和 // 具有相同的优先级,因此表达式是从左到右计算的。有关特定于语言的优先级的更多详细信息,请参阅 6.17 in the Python Documentation

在你上面的代码中,由于它是从左到右计算的,所以地板除法总是在模运算之前发生,所以不会发生 ZeroDivsionError。但是要回答您的问题,您始终可以使用 try 和 catch 块来捕获 ZeroDivisionError 并自行处理。

number = int(input())
try:
  a = number // 100
  b = number // (10 % 10)
  c = number % 10
  print(a + b + c)
except ZeroDivisionError:
    print("Please enter another number that's not a multiple of 10.")
    number = int(input())