PYTHON_입출력과 GUI

입력

input은 사용자가 입력한 값을 항상 문자 또는 문자열로 반환하기 때문에 숫자 또는 실수로 입력받기 위해서는 input 함수의 반환값을 형변환type casting 해 주어야 한다. 정수는 int, 실수는 float를 사용한다. 

input 함수는 항상 문자를 반환하기 때문에 반환값을 그대로 더해서 출력할 경우 접합된 문자열 33이 생성된다.

문자를 입력받아 int 함수를 이용해 정수로 자료형 변환을 먼저 하면 출력 시 6이 나온다.

 

출력

파이썬에서 모니터 화면으로 값을 출력할 때는 print문을 사용한다.

print문 안에서 end 옵션을 이용하여 출력 포맷을 지정할 수 있다. end 값은 두 출력 문장 사이에 들어갈 내용이다. end 값이 '\n'일 때는 이어지는 print문의 출력 결과가 다음 줄에 나타나는 반면, end = ' '또는 end = ''로 지정될 경우 두 문장의 출력 결과가 연결되어 화면에 나타난다. 

여러 개의 명령문을 한 줄에 작성할 경우 ';'을 사용한다. 출력문에서 ','를 사용하여 두 개의 문자열을 출력하는 경우 공백이 추가되지만 '+'를 사용하면 문자열이 접합되는 것을 알 수 있다.

 

하이-로우 게임 예제

1. 정답인 난수를 발생시키는 부분

2. 사용자로부터 예측값을 입력받는 부분

3. 정답과 예측값을 비교하여 정답 여부와 크기 비교 결과를 알려주는 부분

 

1. random 모듈의 randint 함수 이용. 최소값과 최대값 2개의 매개변수가 필요하다.

answer = random.randint(1, 100)

2. while 반복문으로 k번 예측, 정수 자료형 변환한 input 함수로 사용자의 값을 입력받는다.

num = int(input("값을 입력하세요 "))
while num != answer and times > 0:

 

문자열 string

다수의 문자로 이루어진 배열

문자열을 나타내기 위해 " " 또는 ' '를 사용할 수 있다.

여러 줄에 걸쳐 문자열을 표현하고 싶을 때 작은따옴표 3개(''')를 사용할 수 있다. 

정수 인자는 %d를, 문자/문자열은 %s를 사용한다.

 

문자열 곱하기

파이썬에서는 문자열에 정수를 곱하면 해당 문자열을 정수 횟수만큼 반복 출력할 수 있다. 

 

문자열 자르기

split 함수는 문자열을 특정 내부 문자를 기준으로 분할할 떄 사용하는 문자열 내장 함수이다.

문자열에 split(), split(" ") 또는 split(' ') 함수 중에 하나를 적용하면 된다.

쉽표 또는 '/'와 같은 문자를 기준으로 분할할 결ㅇ우 split(",")나 split('/')를 호출하면 된다. 

 

GUI

Graphic User Interface의 약자로 그래픽을 통해 사용자와 컴퓨터가 상호 작용하는 인터페이스 방식을 의미한다. 

파이썬은 콘솔창을 통한 텍스트  방식 상호작용뿐만 아니라 easygui 모듈을 이용한 대화상자 방식의 상호작용이 가능하다.

 

파일 읽기

텍스트 파일에 포함된 각 문장을 읽어 리스트에 항목으로 각각 저장한 후, 리스트의 각 항목을 출력한다.

문자열에 strip 함수를 적용하면 new-line 특수 문자 '\n'를 제거한 후 반환한다.

 

파일 쓰기

텍스트 파일을 생성하기 위해서는 파일을 쓰기모드('w')로 열면 되고 write 함수를 이용하여 각 리스트 항목을 파일에 쓴다. 'w' 대신 'a'로 파일을 열게 되면 기존 텍스트 파일에 추가하는 모드로 파일을 열 수 있다.

 

#항목을 입력받아 리스트에 저장하고 파일에 출력하는 프로그램

def write_file():
    f = open('python5.txt', 'w')
    for item in mymemo:
        msg = item + '\n'
        f.write(msg)

    f.close()
    mymemo = []
    while True:
        print("Write an item to buy. Input a blank line to exit: ")
        item = input()
        if len(item) == 0:
            break
        mymemo.append(item)

    write_file()
    print(len(mymemo), " items are written into file")

 

실행이 잘 안 된다. 검색하여 그 이유를 알아봐야겠다.(추가과제)

댓글을 작성해보세요.