지금까지 우리는 개발자가 쓴 코드를 통해서만 실행되는 파이썬 코드들을 살펴보았다..!
그런데! 개발자선에서 끝나지 않고, 사용자와 소통하면서 코드를 진행시킬 수 있는 방법은 없을까?!
그리고 그 내용을 파일로 저장하거나 사용자의 의견을 파일로 읽어올 수 있을까!?
오늘은 이러한 내용에 대해서 알아보자..!
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 사이의 정수를 입력하세요.')
round함수를 이용해 처리할 수도 있지만, 분기문을 사용하기 애매해서 %가 더 유용할 수 도 있다!
파일 입출력
1. 파일 읽기
**파일을 읽기 전에 파일이 워크플레이스 폴더에 있어야 한다.
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" 같은 것
1. strip 함수 이용
:> 맨 앞과 맨 뒤의 화이트 스페이스가 사라진다.
" abc def ".strip() #"abc def" " \t \n abc def \n\n\n".strip() #"abc def"
!!! strip 함수의 리턴 값은 문자열이다
2. 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 함수의 리턴 값은 리스트이다.
3. replace 함수 이용
text_str = "안녕하세요 저는 화니에요" text_str.replace(" ", "") # 안녕하세요저는화니에요
2. 파일 쓰기
파일 읽기와 다를 건 없지만, 새로운 파일 이름을 지정해주어야 한다는 것과, 모드를 쓰기모드로 바꿔주면 된다.
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
'Language > Python' 카테고리의 다른 글
11. 파이썬 컴프리헨션 (0) | 2021.09.18 |
---|---|
10. 파이썬 빠른 입출력 (0) | 2021.09.15 |
8. 파이썬 모듈 (0) | 2021.09.13 |
7. 파이썬 문자열 (0) | 2021.09.12 |
6. 파이썬 딕셔너리 (0) | 2021.09.12 |