2016-09-16 4 views
-1

안녕하세요, 저는 파이썬에 익숙하지 않습니다. 그리고 파이썬에서 선형 검색을 작성하여 배우려고합니다. 코드는 여기에 있으며 지금까지 작성한 코드입니다.선형 검색 파이썬을 사용하여

a = [100] 

n = int(raw_input("Enter the no. of elements: ")) 

print "Enter the elements: " 
for i in range(0,n): 
    print i 

item = int(raw_input("Enter the item to be searched: ")) 

for i in range(0,10): 

    if a[i] == item: 
     print "Item ", item, "found at location", i+1 
     break; 

if i == n: 
    print "Item", item, "not found" 

목록 색인이 범위를 벗어났습니다. 오류가 발생합니까?

+2

에게) 당신을, a.append(i) 첫 번째 무료 슬롯

  • 를 사용하여 부울 값
  • 도심 파이썬 기능의 목록에 요소를 삽입 하나의 요소, 즉'a [0] == 100'을 가진리스트를 가진다. 왜 더 많은 것을 기대합니까? – timgeb

  • +0

    일반적으로 목록을 검색하려면 'len (a)'까지 반복합니다. 무엇을 나타내는가 10 무엇입니까? –

    +0

    a = [100] # 하나의 요소를 가진리스트로 a를 정의 - 100 – Aviad

    답변

    1

    목록에 하나의 요소가 있습니다. 두 번째 모양은 범위를 벗어나는 요소 1에서 9까지 액세스하려고 시도합니다.

    그때,

    을 요소 목록을 생성하기 위해 당신이 원하는 경우 입력 번호로 반복 가능한

    for i, x in enumerate(a): 
        if x == item: 
         # found item at position i 
    

    의 길이까지 (인덱스, 요소)의 쌍을 반환 enumerate을 사용하는 것이 좋습니다 것 당신이 숫자의 선형 범위를하지 않으려면

    n = int(raw_input("Enter the no. of elements: ")) 
    # build your list of n elements here 
    for i in range(0,n): 
        print i 
    
    예를 들어

    , a = range(0, n) 또는 random 모듈을 가져

    0

    THER 전자는 코드에서 몇 가지 오류, 나는 그것을 재 배열 시도됩니다

    1. 사용 목록이 아닌 배열 : a = []
    2. 사용 목록 작업 :

      a = [] 
      
      n = int(raw_input("Enter the no. of elements: ")) 
      
      print "Enter the elements: " 
      for i in range(0,n): 
          a.append(i) 
          print (i) 
      
      item = int(raw_input("Enter the item to be searched: ")) 
      
      found = False 
      for i in range(0,len(a)): 
          if a[i] == item: 
           found = True 
           print "Item ", item, "found at location", i+1 
           break; 
      
      if (not found): 
          print "Item", item, "not found" 
      

      다음 사항을 유의하시기 바랍니다 예를

    +0

    고마워요. :) 위의 하나는 부울 값을 추가하는 것을 고려하지 않았습니다. –

    +0

    당신은 오신 것을 환영합니다! 대답이 도움이 되었다면 위쪽 화살표를 누르십시오;) – acornagl

    +0

    10 인까지 위쪽 화살표를 눌러서 대답 할 수 있습니다. 또한, 왜'append'를 사용해야할까요? 'a = range (0, n)'이 작동합니다. –

    0

    약간 다른 (정렬 알고리즘)

    a = [] 
    
    n = int(input("enter number of elements: ")) 
    
    print("appending elements: ") 
    
    for i in range(0, n): 
        a.append(i) 
        print(i) 
    
    item = int(input("enter the item to be searched: ")) 
    # for python2.x please use raw_input 
    
    for i in range(len(a)): 
        print("searching...") 
        if a[i] == item: 
         print("found! at: %s" % i) 
         break 
        else: 
         print("pretty bad day, nothing found!")