问题描述
这是一个简单的 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())