为什么我收到此错误 - 搜索

时间:2016-01-10 17:52:00

标签: python

我有以下基于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
}

为什么我收到此错误?

感谢。

4 个答案:

答案 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;