print는 화면에만 쓰는 함수가 아니야
print는 여러 값을 구분자와 끝문자를 정해 출력하고, 필요하면 다른 파일 객체로 보낼 수 있어. flush는 버퍼를 바로 비워야 하는 진행 표시나 파이프에서 쓰여.
input은 언제나 문자열을 돌려줘
input은 한 줄을 읽어 줄바꿈을 뺀 문자열로 반환해. 숫자가 필요하면 int나 float로 바꿔야 하고, 변환 실패를 어떻게 처리할지도 프로그램이 정해야 해.
명령행 인자와 실행 진입점
sys.argv에는 스크립트 이름과 뒤따른 인자가 문자열로 담겨. 파일이 직접 실행됐을 때만 동작해야 하는 코드는 if __name__ == '__main__': 아래에 둬. 그러면 같은 파일을 가져와 함수만 재사용할 수도 있어.
세 개의 표준 통로
stdin은 입력, stdout은 정상 결과, stderr는 진단과 오류를 맡아. 결과와 오류를 나누면 한 프로그램의 stdout을 다음 프로그램의 stdin으로 연결하면서도 문제 메시지는 화면에서 볼 수 있어. 이것이 작은 도구들이 파이프로 합쳐지는 기본 계약이야.
원칙: 다른 도구가 소비할 결과는 stdout으로, 사람이 고칠 문제는 stderr로 보내.