2013-02-21 2 views
0

는 다음 코드와 아무 잘못 볼 수 없습니다 :왜 ELIF 구문이 잘못 되었습니까?

elif choice == "2": 
    while True: 
     PhoneSearch = raw_input("What is their telephone number? : ") 
     conn = sqlite3.connect('SADS.db') 
     cur = conn.cursor() 
     cur.execute("SELECT * FROM customers WHERE Telephone = (?)",(PhoneSearch,)) 
     row = cur.fetchone() 
     if row: 
      CustID = row[0] 
      print "|------------------------------------------|" 
      print "|Customer ID : " , row[0] 
      print "|Forename : " , row[1] 
      print "|Surname : " , row[2] 
      print "|Address Line 1 : " , row[3] 
      print "|Address Line 2 : " , row[4] 
      print "|City : " , row[5] 
      print "|Postcode : " , row[6] 
      print "|Telephone number : " , row[7] 
      print "|E-Mail : " , row[8] 
      while True: 
       print '|Do you want to see what seats', row[1] 
       choice = raw_input("|Choice Y/N:") 
       if choice == 'Y': 
        cur.execute("SELECT * FROM seats WHERE CustID = (?)", (CustID,)) 
        rowseat = cur.fetchone() 
        if rowseat: # or if rowseat is not None, etc. 
         print "|Seats booked:" , rowseat[0] 
         print "|------------------------------------------|" 
         break 
        else: 
         print("database doesn't have correct info") 
      else: 
       print("Na") 

을하지만 내가 맨 위에하기 Elif 문에 구문 오류가 발생합니다. 왜 이런 일이 발생했는지 또는 오류가 발생한 곳을 말해주십시오.

+4

코드가 실제로 들여 쓰여졌습니까? ('elif'는'while ')? 그렇다면 그것은 문제입니다. 또한, 전에'if'가 있고'elif'로 시작하는 것이 아닙니다, 맞습니까? – Dougal

답변

3

파이썬은 if, while 또는 else 문에 대해 동일하여 elif 문 후 들여 쓰기 블록을 기대하고있다. 귀하의 예에서는 elif 이후의 모든 부분이 들여 쓰기되어야합니다.

+0

모든 것이 줄 지어 있습니다. 사실 위에있는 if 문은 == "1"이이 문장의 정확한 사본이지만 아직 유효하지 않은 구문을 제공합니다. – OcelotcR

+0

오류가 발생하지 않았습니까? (예 : 함수 호출 후 닫힌 괄호 안)? –

0

elif가 올바른 경우 수행 할 작업에 모든 것을 들여 쓰십시오. 그것이 의미하는 순간 : 그래서 그것은 정확하고 어쨌든 동안 할 것입니다 경우 아무 발견되지

elif choice == "2": 
    pass # nothing here 
while True: 
    PhoneSearch = raw_input("What is their telephone number? : ") 
    # etc 

. 이것이 당신이하고 싶은 것이라면, ##의 자리에 "pass"(""빼기)를 넣을 수 있습니다

관련 문제