with open(파일 경로, 모드) as 파일 객체:
with [expression] as [변수명]
예제를 풀이하기 전, 이전에 학습한 것을 복습하자!
→ https://velog.io/@jaam_mini/Day.08-Python-Midtext함수-cr9qy9e9
문제 1번을 들어가기에 앞서, 사용되는 딕셔너리 = {키:값}
을 다시 짚고 넘어가자!
🏷️딕셔너리 생성
d = {'a': 123123}
🏷️ 값 추가
d[999] = 10 # 숫자 키, 숫자 값
d['99'] = 111 # 문자 키, 숫자 값
d['BlockDMask'] = "blog" # 문자 키, 문자 값
🏷️값 접근
print("3. 딕셔너리 값 접근")
print(f'd["a"] = {d["a"]}')
print(f'd[999] = {d[999]}')
print(f'd["BlockDMask"] = {d["BlockDMask"]}')
🏷️값 변경
print()print("4. 딕셔너리 값 변경")
print(f'before : d["BlockDMask"] = {d["BlockDMask"]}')
d["BlockDMask"] = 'boy' ⭐
print(f'after : d["BlockDMask"] = {d["BlockDMask"]}')
딕셔너리 .keys()
함수를 통해서 딕셔너리의 키(key)들을 한번에 볼 수 있다.
d = {'a': 123123, 'kim': 'blockdmask', 'b': "blog", 'c': 3333, 123: 'name'}
# key 출력
print(d.keys())
# key 하나씩 받기
for k in d.keys():
print(f'key : {k}')
딕셔너리 .values()
함수를 통해서 딕셔너리의 값(value)들을 한번에 볼 수 있음
# 딕셔너리d = {'a': 123123, 'kim': 'blockdmask', 'b': "blog", 'c': 3333, 123: 'name'}
# values 출력
print(d.values())
# value 하나씩 받기
for v in d.values():
print(f'value : {v}')
딕셔너리 .items()
함수를 통해서 딕셔너리의 키,값 쌍을 한번에 볼 수 있음
# 딕셔너리
d = {'a': 123123, 'kim': 'blockdmask', 'b': "blog", 'c': 3333, 123: 'name'}
# items 출력
print(d.items())
# items 하나씩 출력
for m in d.items():
print(f'한쌍씩 : {m}')
print(f'Key : {m[0]}')
print(f'Value : {m[1]}')
print()
(1) 처음에는 문제의 핵심 요소(기능)에 맞춰 기본 구조를 먼저 짜 놓는다.
(2) 쓰기(def writeDiary) 구현
(3) 읽기 구현
(4) ex.py로 넘어와 uri
불르기
members = {}
uri = 'C:/pythonTxt/'
def printMembers():
for m in members.keys():
print(f'ID: {m} \t PW: {members[m]}')
while True:
selectNum = int(input('1.회원가입,\t 2.한줄일기쓰기,\t 3.한줄일기보기,\t 4.종료 '))
if(selectNum == 1):
mId = input('input ID: ')
mPw = input('input PW: ')
members[mId] = mPw
▲ 입력받은 id, pw를 members에 저장 printMembers()
(5) 로그인
members[mId] == mPw:
밸류가 비밀번호와 동일하다면 로그인 완료
※ 잔액관리를 위한 text file을 2개 만들어야함
Q> 수입과 지출을 기록하는 가계부
(1) 기본 골조
(2) 'r'읽기 모드로 가고 싶으니까, 'bank' 파일을 생성
('w'면 알아서 생성하지만, r로 하고 싶음)
(3) 'bank' 파일 > 'money' test file(B. 잔액) 생성 > ⭐숫자 0을 입력 후 저장 ( = 잔고 0원 의미)
(4) 'A. 수입과 지출의 이력' 파일을 '파이썬 실행 구문'으로 생성해줌
(5) 앞단 + 1번(입금) 선택 시 구문
(6) 2번(출금) 선택 시
기존 금액에서 입력한 (출금)금액을 뺴고, f.write
로 다시 입력시킴
덮어 씌우기 위해 'w' 선택
with open('C:/pythonTxt/bank/money.txt', 'w') as f:
f.write(str(int(m) - money))
Q. 약수/소수 파악 후 text에 기록
리스트
range() -> 사용자가 입력한 값보다 1개 크게 (+1) 설정
나눴을때 나머지가 0이면 약수임
약수가 맞다면 append
로 리시트에 추가
⭐ if len(divisor) > 0:
0보다 큰 길이(?)
=>> text에 뭐라도 데이터가 있다면. 이라는 뜻
⭐파일 이릉은 divisor
로 정하고 'a'
로 파이썬 내부에서 text를 생성 시킴
⭐하나라도 0이 있으면 안됨.
n으로 나누는 나머지가 0이다. = 소수가 아니다 = false = 반복 도는 이유가 사라짐 = break
⭐파일 이릉은 prime
로 정하고 'a'
로 파이썬 내부에서 text를 생성 시킴
(1) 공약수 공식 + text file
if num1 % i == 0 and num2 % i == 0:
(2) 덮어 씌우기 위해서 'a'로 !
(3) 예외가 발생하면 '알아야 하니까' except
생성
2개 간의, 공약수 & 최대공약수
2개 간의, 최소 공배수
minDay = (ship1 * ship2) // maxDay
배3개에 대한 최소공배수