더밝은
130
2019-01-03 09:31:44 작성 2019-01-03 09:38:41 수정됨
3
437

파이썬3 간단한 구문 에러 도와주세요



if __name__ == '__main__':
    N = int(input())
    trycount = 0
    import re

    def process_input(self):
        func = re.match('[a-zA-Z]+', self)
        func = func.group() # 문자열로 이루어진 명령어
        
        list = []

        insert = 'insert'
        append = 'append'
        remove = 'remove'
        printcode = 'print'
        if func == insert:
            valuelist = str(self[7:])
            #print(valuelist)
            value1 = int(valuelist[0])
            value2 = int(valuelist[2:])
            text = '{}({},{})'.format(func,value1,value2)
            eval('list.{}'.format(text))
            
        
        
        elif func == append or func == remove:
            value1 = str(self[7:])
            value1 = int(value1[0:])
            text = '{}({})'.format(func,value1)
            eval('list.{}'.format(text))
        
        elif func == printcode:
           print(list)
        
        else :
            text = '{}()'.format(func)
            eval('list = list.{}()'.format(text))
        
        
    
    
    while trycount < N:
       process_input(input())
       trycount = trycount + 1





처음으로 코딩을 공부하는 학생입니다

해커랭크에서 코드 문제를 풀어보고있는데요

Sample Input 0

12
insert 0 5
insert 1 10
insert 0 6
print
remove 6
append 9
append 1
sort
print
pop
reverse
print

Sample Output 0

[6, 5, 10]
[1, 5, 9, 10]
[9, 5, 1]


다음과 같은 인풋-아웃풋을 가지도록 만들어야합니다

그런데 elif func == "print":

부분에서 문맥 에러가 납니다

윗쪽 insert를 비교하는 부분에서는 잘 작동해서, 왜 구문 오류가 나는지 모르겠습니다

0
0
  • 답변 3

  • 더밝은
    130
    2019-01-03 09:35:27

    아 그리고, 질문과는 관계없이 PC에서 OKKY 알림을 받을 수 있나요?

    받을 수 있다면 방법을 알고싶어요

    0
  • ipsum141
    8
    2019-01-03 10:46:25

    들여쓰기 확인해보셨는지요?

    1
  • 더밝은
    130
    2019-01-03 11:09:05

    감사합니다 미묘하게 줄이 안맞았네요...

    다른 코드에도 문제가 있었는데 이건 잘 해결했습니다

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.