2013-09-16 2 views
-3
def search_linear(x,y): 
    n = len(x) 
    for i in range(n): 

    if theValue[i] == y: 
     return True 

    return false 

def main(): 
    mainValues =int(input("enter the nos first")) 
    mV = mainValues.list() 

    trgt =int(input('enter a single number to be found in the list')) 
    def search_linear(mainValues, trgt) 

Это простая программа линейного поиска, которую я написал. При запуске он говорит invalid syntax по строке 17, которая указывает на trgt = .... Я не понимаю, где я ошибаюсь.Линейный Искать в python

Я записываю функцию поиска, а в основной функции назначают значения. Такая простая программа

+0

В дополнение к тому, чтобы не использовать def, убедитесь, что ваши пробелы синтаксически правильны. Значение 'return false' должно быть отступом до начала цикла for. (Я не могу сказать, было ли это ошибкой при копировании здесь или в вашей реальной программе) – Ross

+0

Это была ошибка проводки, иначе она бы сказала: «СинтаксисError: 'return' external function –

+0

false должен быть записан как False. Var theValue неизвестен в функции search_linear. mainValues.list() 'int' объект не имеет атрибута 'list' ... Удалить def из последнего def search_linear (mainValues, trgt). tbh выглядит как копировать и вставлять, не понимая, что происходит! –

ответ

3

При вызове функции вам не нужно def. Просто используйте search_linear(mainValues, trgt).

def необходимо только при указании определения функции.

-1
def LinearSearch(array, targetNumber): 
    for i in range (0,5): 
     array[i] == targetNumber: 
      print("The number %d does exist in the list." %(targetNumber)) 
     array[i] != targetNumber: 
      print("The number %d does not exist in the list." %(targetNumber)) 

import random 
random_number = [] 
for l in range (0,5): 
    random_number.append(random.randint(1,100)) 

# Algorithm Sort 
for i in range(0, 5): 
     for j in range (5-1, -1, -1): 
      if random_number[j] < random_number[j-1]: 
       new_value = random_number[j-1] 
       random_number[j-1] = random_number[j] 
       random_number[j] = new_value 
      if j == 1: 
       break 
0
#Tried my hand at a code by using simple keywords, no functions etc. Ideal for beginners. 
ls=[] 
n=input("Enter the number of elements in the list:") 
k=n-1 
for i in range(0,n,1): 
    b=raw_input("Enter the elements:") 
    ls.append(b) 
print ls 
element_to_be_searched=raw_input("Enter the element to be searched:") 
for j in range(0,k,1): 
    if ls[j]==element_to_be_searched: 
     if j+1==1: 
      print "Search is successful and requested element is the 1st element" 
      break 
     elif j+1==2: 
      print "Search is successful and requested element is the 2nd element" 
      break 
     elif j+1==3: 
      print "Search is successful and requested element is the 3rd element" 
      break 
     elif j+1>3: 
      print "Search is successful and requested element is the ",j+1,"th element" 
      break 
else: 
    print "Sorry,could not find the item you are looking for!" 

Надеется, что это помогает !!!

Смежные вопросы