我正在做一个练习,要求有人输入数字列表,然后当他们输入“确定”时,程序将添加他们输入的数字列表。现在,无论添加多少个数字,我的程序都将返回0。我怀疑问题出在最后三行代码,但无法弄清楚我在做什么错。 对不起,代码效率低下。这只是我的第三天学习,因此我正在尝试以一种对我来说有意义的方式对其进行格式化,尽管我知道这样做的效率更高。
def daterange(start_date, end_date):
for n in range(int ((end_date - start_date).days)):
yield start_date + timedelta(n)
答案 0 :(得分:5)
您的问题在这里:
const item = [
{ $value: "John", $key: "fname" },
{ $value: "McEnroe", $key: "lname" }
];
const user = Object.assign(...item.map(o => ({[o.$key]: o.$value})));
console.log(user);
您正在创建一个名为bool IsNumber = Int32.TryParse(text, out ignoreMe);
if (isNumber)
{
// rest of code omitted
的新变量以捕获IsNumber
的返回值,但是您正在检查{{1}中的原始变量int.TryParse
的值}条件。相反,您应该将结果分配给原始变量:
isNumber
请注意,由于只使用了一次,您实际上根本不需要声明变量即可捕获该结果。您可以将if
调用放在isNumber = Int32.TryParse(text, out ignoreMe);
if (isNumber)
{
// rest of code omitted
条件内:
TryParse
答案 1 :(得分:1)
问题是您将值解析为ignoreMe。然后,将numberNum添加到列表中。 numberNum的初始值为0,并且从未更改过。 该代码应该对您有用:
static void Main(string[] args)
{
bool isOk = new bool();
var listOfNumbers = new List<string>();
string text;
int numberNum;
var listOfNumbersNum = new List<int>();
while (!isOk)
{
Console.WriteLine("Enter a number, or ok to finish");
text = Console.ReadLine();
bool isNumber = Int32.TryParse(text, out numberNum);
if (isNumber)
{
listOfNumbersNum.Add(numberNum);
}
else
{
if (text.Equals("ok", StringComparison.OrdinalIgnoreCase))
{
int sumOfNumbers = listOfNumbersNum.Sum();
Console.WriteLine(sumOfNumbers);
isOk = true;
}
}
}
}
答案 2 :(得分:1)
首先犯错
bool IsNumber = Int32.TryParse(text, out ignoreMe);
if (isNumber)
IsNumber和isNumber不是同一回事
相同的代码稍有变化
static void Main(string[] args)
{
var isOk = false;
var listOfNumbersNum = new List<int>();
while (!isOk)
{
Console.WriteLine("Enter a number, or ok to finish");
var text = Console.ReadLine();
var isNumber = int.TryParse(text, out var numberNum);
if (isNumber)
{
listOfNumbersNum.Add(numberNum);
}
else
{
if (text != null && text.Equals("ok", StringComparison.OrdinalIgnoreCase))
{
var sumOfNumbers = listOfNumbersNum.Sum();
Console.WriteLine("Result of sum: " + sumOfNumbers);
isOk = true;
}
}
}
Console.WriteLine("Press any key to exit");
Console.ReadLine();
}