我有以下基于Python School的代码:
编辑:修正"位置"的缩进和"返回找到",并使用" raw_input
What item do you want to check for in the bag?pencil
Traceback (most recent call last):
File "test.py", line 11, in <module>
item = input('What item do you want to check for in the bag?')
File "<string>", line 1, in <module>
NameError: name 'pencil' is not defined
当我运行该程序时,我得到以下内容:
Traceback (most recent call last):
File "test.py", line 12, in <module>
itemFound = linearSearch(item,bag)
File "test.py", line 5, in linearSearch
if my_list(position) == item:
TypeError: 'list' object is not callable
编辑:编辑后出现以下错误,但尝试将项目名称放在引号之间
int intPressure = 0;
if(int.TryParse(pressure, out intPressure))
{
// Parse success, set the value of pressure in your component.
pressureScript.pressure = intPressure;
}
else
{
// Parse fail, show an error or something
}
为什么我收到此错误?
感谢。
答案 0 :(得分:2)
my_list
是一个列表,索引它不会将其称为函数,因此它应该是:
if my_list[position] == item:
另一件事是,如果您在my_list
中查找某个特定项目,而不是在找到它后立即从linearSearch
返回,则无需继续迭代其余my_list
}:
if my_list[position] == item:
found = True
return found
答案 1 :(得分:1)
问题是,你使用的是python2,这是python3代码。所以你最好安装python3,这个代码运行正常。或者在python2中,你可以使用raw_input函数而不是输入。
答案 2 :(得分:1)
将input
替换为raw_input
以获取字符串:input
告诉Python 2 评估输入字符串。
也就是说,您的代码存在更多问题:例如,您将position
增加到错误的位置。
答案 3 :(得分:0)
我想这是某种功课,否则就不需要实现这个功能item in bag
。无论如何关于函数,都没有必要像这样跟踪索引,使用范围或xrange,或者找到变量,只需在找到时return True
并在函数末尾执行{{return False
def linearSearch(item,my_list):
for position in xrange(len(my_list)):
if my_list[position] == item:
return True
return False
1}}
def linearSearch(item,my_list):
for elem in my_list:
if elem == item:
return True
return False
您还可以使用列表可迭代的事实
var MeterInfo = new List<MeterInformation>();
using(var conn = new SqlConnection(Connections.Conns.CS))
{
using (var cmd = new SqlCommand(SqlQuery, conn))
{
conn.Open();
using (var rd = cmd.ExecuteReader())
{
while (rd.Read()) {
var mi = new MeterInformation();
mi.MeterId = rd.GetInt32(0);
mi.MeterType = rd.GetString(1);
mi.MeterName = rd.GetString(2);
mi.MeterDescription = rd.GetString(3);
mi.MeterSerial = rd.GetString(4);
mi.MeterMPAN = rd.GetString(5);
mi.MeterCreatedOn = rd.GetDateTime(6);
mi.MeterLocation = rd.GetString(7);
mi.MeterBuilding = rd.GetString(8);
mi.MeterSite = rd.GetString(9);
MeterInfo.Add(mi);
}
}
}
}
return MeterInfo;