python Syntax Error 및 원하지않는 출력이 생기는 질문입니다.

조회수 681회

안녕하세요 현재 익명 사이트문제의 코드들을 notepad에 적고 powershell에서 실행하며 문제를 풀고있는데 잘 모르는 부분이 몇가지 있어서 쓰게 되었습니다...

질문 1

  1. n_list=[a,b,c]
  2. m_list=[a,c,f,g]
from sys import stdin
n,m=map(int,stdin.readline().split())
n_list=set([stdin.readline() for i in range(n)])
m_list=set([stdin.readline() for i in range(m)])

result=sorted(list(n_list & m_list))

print(len(result))

for i in result:
    print(i)

이에 대한 저가 원하는 출력값은 세 줄을 사용하여 첫번째 줄은 result의 총 갯수
그 뒤로 줄마다 중복되는 값을 출력하는것입니다.
2 a c가 출력이 되어야하는데 ac 사이의 줄 공백이 생기는 것을 어떻게 고쳐야할지 입니다.

질문2

from sys import stdin
string=list(str(stdin.readline()))
print(string)

제가 넣은 값은 ABCDE인데
출력되는 값은['A', 'B', 'C', 'D', 'E', '\n']으로 나옵니다. \n을 넣지 않았음에도 불구하고 자동으로 출력이 되어버립니다.

질문3

제가 기존 test.py라는 파일을 사용하는데 질문2와 똑같은 코드를 작성했을시

** File "test.py", line 4
    print(string);
    SyntaxError: invalid syntax**

이라는 에러가 나와 계속 안되서 test1.py를 만들고 실행을 하였을때 질문2와같은 문제점이 나오는거말고는 정상 출력이 되었었습니다.
분명 똑같이 작성을했을때 test.py에서는 SyntaxError가 test1.py에서는 정상 출력이 되는 이유를 알고 싶습니다.

  • 일단 질문3번은.. print(string); 에서 세미콜론을 지워 보세요. 엽토군 2020.8.10 09:02
  • 아...너무 제가 너무 성급하게 확인도 못하고 질문을 했군요... 김준호 2020.8.10 22:04

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    답1.

    a = [1,2,3,4,5]
    for i in a:
        print(i, end='')
    #result : 12345
    #https://careerkarma.com/blog/python-print-without-new-line/
    

    답2. stdin을 마치려면 어쩔 수 없이 엔터를 치는데 그 엔터가 \n입니다.

    from sys import stdin
    string=list(str(stdin.readline()).rstrip('\n'))
    print(string)
    

    요런식으로 str단계에서 list 넘어가기전에 없애버리는게 어떨까요

    답3. python에서 ; 쓰는 방법은 a=3; a*a같이 라인스크립트 쓸때 쓰긴하는데.. 해당 라인으로 에러가 나는 요소는 없어보이는데 다른 코드 오류가 있는지 살펴보시는게 어떨까요 괄호가 안닫혔다던지... 이런것들요..

    • 감사합니다... 3번 질문은 너무 급하게 질문을 했었던거같습니다 김준호 2020.8.10 22:05

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)