파이썬 상호작용 #10

반영환·2023년 4월 29일

파이썬

목록 보기
10/17
post-thumbnail

파이썬 상호작용

INPUT()

파이썬은 콘솔창에서 input() 함수를 이용해서 값을 받아서 문자열로 리턴해준다.

input("이름을 입력하세요:")

#>>> 이름을 입력하세요:

콘솔창에서 사용자가 어떤 값을 입력할지 알려주기 위해 input() 함수는 파라미터로 문자열을 받는다.

리턴 값은 str이므로 꼭 데이터 연산시 int() 든 float() 이든 랩핑함수를 사용해주어야 한다.

int(input(~~)) 시 주의사항

input에 실수형 문자열을 전달시 int로 형 변환이 되지 않는다.
이를 모듈러 % 를 이용해서 해결할 수 있다.

number_try = float(input(f'실수형 문자열을 넣지 마세용.'))

number = number_try // 1
float_check = number_try % 1

if float_check != 0:
	    print('올바르지 않은 값입니다.1-20 사이의 정수를 입력하세요.')

파일 입출력

파일 읽기

파일을 읽기 전에 파일이 워크플레이스 폴더에 있어야 한다.

with open('fileName', 'r') as f:

파일 객체를 변수 f에 대입해서 사용할 수 있다.

이때 파일 객체는 유사 리스트 타입이다. 따라서 iterable하기 때문에 for문을 통해 글을 가져올 수 있다.

with open('chicken.txt' , 'r') as f: 
    #같은 폴더 경로에 잇을 때

	print(type(f)) 
    # <class '_io.TextIOWrapper'> 유사 리스트임. 파일의 한 줄이 리스트 하나의 요소에 대응됨
	for line in f:
	     print(line)
         
         
with open('data/chicken.txt', 'r') as f: 
    #다른 경로에 있을 때
	
    print(type(f)) 
    # <class '_io.TextIOWrapper'> 유사 리스트임. 파일의 한 줄이 리스트 하나의 요소에 대응됨
	for line in f:
	     print(line)
 

UnicodeDecodeError 발생시
인코딩문제! 인코딩 방법을 바꾸어 주면됨
with open('chicken.txt' , 'r', encoding = 'UTF-8') as f:​

파일 출력시 라인간 공백이 생기는 이유!

txt >>>
1 : 300
2 : 302
3 : 304 ...

python>>>
1 : 300\n
2 : 302\n
3 : 304\n ...

이런 식으로 파이썬은 txt파일을 받아들인다.

  1. 기본적으로 \n 때문에 줄 바뀜 발생
  2. print() 함수가 다음으로 줄바꿈

공백 제거

화이트 스페이스 : " " , "\t", "\n" 같은 것

strip 함수 이용

:> 맨 앞과 맨 뒤의 화이트 스페이스가 사라진다.

" abc      def    ".strip()
#"abc     def"

"    \t   \n    abc    def  \n\n\n".strip()
#"abc     def"​

strip 함수의 리턴 값은 문자열이다

split 함수 이용

my_string = "1. 2. 3. 4."

my_string.split(".")

# 문자열을 . 을 기준으로 리스트로 만듬.
['1', ' 2' , ' 3', ' 4']

# 화이트스페이스로 구분하고 싶을 시, 파라미터를 안넘겨주면 됨

my_string = "1 2 3 4"
my_string.split()['1', '2', '3', '4']

split 함수의 리턴 값은 리스트이다.

replace 함수 이용

text_str = "안녕하세요 저는 화니에요"
text_str.replace(" ", "")

# 안녕하세요저는화니에요​

파일 쓰기

파일 읽기와 다를 건 없지만, 새로운 파일 이름을 지정해주어야 한다는 것과, 모드를 쓰기모드로 바꿔주면 된다.

with open("filename.txt", 'w') as f:
	f.write("쓸 내용!")
	f.write("쓸 내용2!")
	f.write("쓸 내용3!")
    
    
# 여기서는 줄바꿈이 자동으로 이루어지지 않음.


with open("filename.txt", 'w') as f:
	f.write("쓸 내용!\n")
	f.write("쓸 내용2!\n")
	f.write("쓸 내용3!")

파일 쓰기 모드

  • w : 같은 파일이름을 가진 채 여러번 실행시, overwrite함.
  • a : 같은 파일이름을 가진 채 여러번 실행시, append함. 같은 파일 이름이 없으면 새로이 만듬

2021-09-13

profile
최고의 오늘을 꿈꾸는 개발자

0개의 댓글