如果我的理解是正确的,5%5应该等于0.但是当我运行此代码时:
endless = 0
while endless == 0:
n = int(input("Provide a number here: "))
count = 0
sum = 0
while count < n:
if 1+count % 3 == 0 | 1+count % 5 == 0:
sum += 1 + count
count += 1
if count >= n:
print(sum)
它总是返回0,这意味着1 +计数%3或1 +计数%5永远不等于0.我错过了什么?
编辑: 我似乎也错过了基础数学。
答案 0 :(得分:3)
不要使用按位OR,并使用paranthesis(operator precedence)!
尝试:
(1+count) % 3 == 0 or (1+count) % 5 == 0:
^ ^ ^^ ^ ^
答案 1 :(得分:1)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DataTable dt = new DataTable();
DataColumn prodName = new DataColumn("Products");
dt.Columns.Add(prodName);
dt.Rows.Add("a");
dt.Rows.Add("b");
dt.Rows.Add("c");
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "Products";
comboBox1.ValueMember = "Products";
}
}
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
的运营商优先级与%
相同且高于/
,这意味着:
+
,它永远不会是1+count % 3 == 1 + (count % 3)
,因为modulo返回0到2之间的值。