Q1
# 1. 간단한 메모장을 만들어보시오.
# input으로 입력받은 내용을 파일에 기록하고
# 입력을 종료하면 파일을 저장한다.
# 내용 불러오기 메뉴를 선택하면 기존에 작성했던 메모를 화면에 보여준다.
while True:
choice = int(input("메뉴를 선택하세요 1. 입력 , 2. 불러오기"))
if choice == 1:
while True:
file = open('memo.txt','a')
msg = input("남길 메모 : ")
print(msg, file = file)
if not msg : # msg == ' ' (msg가 False)
file.close
break
if choice == 2:
file2 = open('memo.txt','r')
print(file2.read())
file.close
메뉴를 선택하세요 1. 입력 , 2. 불러오기1
남길 메모 : 1234
남길 메모 : 2324
남길 메모 : 4554
남길 메모 : 2
남길 메모 :
메뉴를 선택하세요 1. 입력 , 2. 불러오기2
1234
2324
4554
2
변수의 값이 True, False인 경우
숫자 : 0만 False 나머진 True
문자 : ' '만 False 나머진 True
불 : True False
리스트 : [ ] False
딕셔너리 : { } Fasle
셋: set() False
[[]] True
Q2
#2. 로또 번호 생성기를 만들고
# 생성된 번호를 텍스트 파일에 저장하시오
# 번호 불러오기 메뉴를 선택하면 기존에 저장된 번호를 화면에 보여준다.
# 번호를 불러 올 때 각 번호 별로 리스트에 저장하고 나서 화면에 출력하시오.
1. 로또 번호 생성하기
numbers = list(range(1,46))
import random as rnd
for _ in range(5):
lotto = sorted(rnd.sample(numbers,6))
print(lotto)
2. 파일에 저장하기
lotto_file = open("lotto.txt", "a")
print(lotto, file=lotto_file)
lotto_file.close()
3. 파일에 있는 번호 불러와서 리스트로 저장하기
lotto_file = open("lotto.txt", "r")
for data in lotto_file.readlines():
data = data[1:-1]
lotto = data.split(', ')
4. 화면에 출력하기
print(lotto)
lotto_file.close()
[9, 15, 18, 20, 23, 24]
[4, 5, 7, 12, 19, 20]
[4, 10, 14, 16, 19, 22]
[2, 10, 13, 16, 17, 18]
[3, 7, 8, 11, 13, 16]
['3', '7', '8', '11', '13', '16']
test = "[1, 3, 5, 12, 17, 19]"
test = test.split(', ')
['[1', '3', '5', '12', '17', '19]']
test[0][0]
'['
# 문자열에도 인덱싱이 가능하다!
test[0] = test[0][1:]
test[-1] = test[-1][:-1]
test
['1', '3', '5', '12', '17', '19']
test = "[1, 3, 5, 12, 17, 19]"
test[1:-1]
>>> '1, 3, 5, 12, 17, 19'
정규 표현식
# 1. re 모듈을 임포트 한다.
# 2. 정규표현식 패턴을 작성한다.
# 3. 패턴을 컴파일한다.
# 4. 컴파일된 패턴을 이용해 맞는 문자열을 찾는다.
| 메타 문자 | |
| \ : 뒤에 있는 글자의 특수 기능을 발동시킨다 | [a-zA-Z0-9] |
| . : 엔터를 제외한 모든 문자 중 하나 | \W : 일반 문자가 아닌거 |
| \d : 숫자 하나! | \s : 공백문자 |
| [0-9] | \S : 공백문자가 아닌거 |
| \D : 숫자가 아닌거 | ? : 글자가 0번 혹은 1번 |
| [^0-9] | * : 글자가 0번 이상 반복 |
| [a-z] : 소문자 | + : 글자가 1번 이상 반복 |
| [A-Z] : 대문자 | {n} : n개의 글자 |
| [a-zA-Z] : 알파벳만 | {n,m} : n~m개의 글자 |
| \w : 일반 문자(숫자, 글자) | [?] : 문자들의 그룹, 집합 |
# 패턴 작성하는 법
# 1. 그냥 글자는 글자 취급
# 2. 메타 문자는 특수 취급
# 주민번호 매칭
pattern = "(\d{6}-\d{7})"
p = re.compile(pattern)
p.search("asdfasdf790423-1405991asdasdf010-5555-6666")
result.group()
'790423-1405991'
# 찾아낸 글자의 시작 끝 위치 쌍
result.span()
>>> (8, 22)
# 찾아낸 글자의 시작 위치
result.start()
>>> 8
# 찾아낸 글자의 끝 위치
result.end()
>>> 22
# 전화번호 매칭
pattern = "\d{3}-\d{3,4}-\d{4}"
p = re.compile(pattern)
p.search("ㄴㅁㅇ010-555-6666sadfslkjrlkj")
<re.Match object; span=(3, 15), match='010-555-6666'>
클래스
# 입력 저장 처리 출력
# 순차 분기 반복
# 함수 - 반복되는 코드를 재 사용하기 위해서 하나의 명령어로 만드는 것
# 클래스 - 반복되는 명령과 로직의 집합을 재사용하기 위해 하나의 설계도로 만들어 두는 것
# 클래스는 건물의 설계도와 같다.
# 건물에 있는 기능을 사용하려면, 설계도를 가지고 건물을 지어야 한다.
명령어() <--- 단독으로 사용할 때 함수
클래스.명령어() <----- xxx.명령어인 경우 보통 클래스이다.
class 클래스이름:
def 함수이름(매개변수...):
내용
LabelEncoder 라는 건물의 설계도를 불러왔다.
from sklearn.preprocessing import LabelEncoder
건물을 건설하겠다.
LabelEncoder()
encoder = LabelEncoder() <---- 명령어처럼 한번 실행
# LabelEncoder클래스의 인스턴스
인스턴스를 하나 만드세요 -> 클래스를 가지고 변수를 하나 만들어라
'Python > Python Programming' 카테고리의 다른 글
| Python_Basic_04 (0) | 2022.07.14 |
|---|---|
| Chapter.01 파이썬 프로그래밍-15. Class (실습) (0) | 2022.07.12 |
| Part03. Chapter.01 파이썬 프로그래밍-14. Class (0) | 2022.07.12 |
| 파이썬 기초 재 복습 (자료형, for, while, if, list comprehension, 함수) (0) | 2022.07.12 |
| Part03 Chapter.01 파이썬 프로그래밍-13. OOP(이론) (0) | 2022.07.11 |