본문 바로가기

IT&코딩/python

python 4주차 복습-2

728x90
반응형

 

파일입출력

f=open("test.txt","w") # ->test.txt -> 상대경로다 C 나 D로 시작하지 않으니
# 안의 -> 표시가 / 이다
f=open("abc/test.txt","w")

open(A,B)

A : 파일경로를 포함한 파일이름
B : 권한

경로의 종류!!
절대경로 : 하나뿐인 경로 (윈도우:드라이브로부터, 리눅스:/로부터)
상대경로 : 현재위치로부터의 경로!!
권한의 종류
r(ead) : 있는 파일을 읽어야 해요! (경로신경을 써주세요!)
w(rite) : 새로 쓰기, 기존의 내용이 날아간다! (파일의 원본 검사!)
a(ppend)
f=open("test.txt","w")
f.write("hello")
 

# Q. 구구단이라는 폴더 생성
# 코드 돌렸을 때
# 2단.txt~9단.txt
# 각각의 파일 안에는 구구단이 찍혀있도록
for i in range(2,10):
        f=open(f"구구단/{i}단.txt","w")
        for j in range(1,10):
                f.write(f"{i}x{j}={i*j}\n")


f=open("korea.txt","w",encoding="utf-8") # 메모장은 인코딩 안 해도 잘 나오긴 한다.
f.write("파이썬 허니잼")
쓰기 권한은 없는 파일 지정하면 생성해버린다.
파일입출력은 AMSI(cp949) 방식으로 인코딩된다!!
인코딩 : 어떤 데이터를 010101010로 바꾸는 것
디코딩 : 10101010100를 데이터로 바꾸는 것.

파일포인터 (커서의 움직임을 주목해라, 다음 코드는 커서의 위치에서 시작)
f=open("korea.txt","r",encoding="utf-8")

print(f.read()) # 파일전체 , 괄호안에 숫자 넣으면 그 글자수만큼은
print(f.readline()) # 한 줄만 출력
print(f.readlines()) # 한줄 한줄 리스트

3개를 동시에 출력하면 read 빼고 다 안 나온다
읽는 건 서로 중첩되지 않는다...파일포인터 참조.
f.seak(0) 을 이용하면 되지만 랭킹변환을 할 줄 알아햐 한다. 밤낮 새고 싶으면 공부해봐라.

korea.txt 복사하기

f=open("korea.txt","r",encoding="utf-8")
내용=f.read()
print(내용)

g=open("[복사본]korea.txt","w",encoding="utf-8")
g.write(내용)

-------------------------------------------------------------------------------------------------------------

dict 자료형 복습, in 멤버연산자 복습, while 문으로 구조적 프로그램 만들기 복습


# 나만의 단어장 (dictionary 자료형 복습)

==============================
1. 단어목록보기
2. 단어검색
3. 단어추가
4. 단어수정
5. 단어삭제
6. 프로그램 종료
==============================
메뉴입력 : 1

apple
banana


==============================
1. 단어목록보기
2. 단어검색
3. 단어추가
4. 단어수정
5. 단어삭제
6. 프로그램 종료
==============================
메뉴입력 : 3

추가할 단어를 입력하세요 : apple
단어가 이미 존재합니다.



==============================
1. 단어목록보기
2. 단어검색
3. 단어추가
4. 단어수정
5. 단어삭제
6. 프로그램 종료
==============================
메뉴입력 : 3

추가할 단어를 입력하세요 : air
air 의 뜻을 입력하세요 : 공기
air 가 추가되었습니다.




==============================
1. 단어목록보기
2. 단어검색
3. 단어추가
4. 단어수정
5. 단어삭제
6. 프로그램 종료
==============================
메뉴입력 : 2

단어를 검색해주세요 : apple
apple 의 뜻은 '사과' 입니다.




==============================
1. 단어목록보기
2. 단어검색
3. 단어추가
4. 단어수정
5. 단어삭제
6. 프로그램 종료
==============================
메뉴입력 : 2

단어를 검색해주세요 : glass
glass 는 없는 단어입니다.




==============================
1. 단어목록보기
2. 단어검색
3. 단어추가
4. 단어수정
5. 단어삭제
6. 프로그램 종료
==============================
메뉴입력 : 4

수정할 단어를 검색해주세요 : apple
apple 의 뜻을 입력해주세요 : 사아과
apple 의 뜻이 수정되었습니다.



==============================
1. 단어목록보기
2. 단어검색
3. 단어추가
4. 단어수정
5. 단어삭제
6. 프로그램 종료
==============================
메뉴입력 : 4

수정할 단어를 검색해주세요 : dynamite
등록되어있지 않은 단어입니다.



==============================
1. 단어목록보기
2. 단어검색
3. 단어추가
4. 단어수정
5. 단어삭제
6. 프로그램 종료
==============================
메뉴입력 : 5

삭제할 단어를 검색해주세요 : dynamite
등록되어있지 않은 단어입니다.




==============================
1. 단어목록보기
2. 단어검색
3. 단어추가
4. 단어수정
5. 단어삭제
6. 프로그램 종료
==============================
메뉴입력 : 5

삭제할 단어를 검색해주세요 : air
air 가 삭제됩니다.





==============================
1. 단어목록보기
2. 단어검색
3. 단어추가
4. 단어수정
5. 단어삭제
6. 프로그램 종료
==============================
메뉴입력 : 1

apple
banana



==============================
1. 단어목록보기
2. 단어검색
3. 단어추가
4. 단어수정
5. 단어삭제
6. 프로그램 종료
==============================
메뉴입력 : 6

너 좀 서운해 :(

-------------------------------------------------------------------------------------------------------------

T 풀이

 

import os

d = {}

if os.path.isfile("word.txt"): # os.path.isfile("word.txt") >>>>> 파일이 존재하는지 안 하는지 확인 가능
    f = open("word.txt", "r", encoding="utf-8")
    for i in f.read().split():
        w = i.split(",") # ["apple", "사과"]
        d[w[0]] = w[1]


while True:
    print("="*30)
    print("1. 단어 목록보기")
    print("2. 단어 검색")
    print("3. 단어 추가")
    print("4. 단어 수정")
    print("5. 단어 삭제")
    print("6. 종료")
    print("="*30)

    menu = input("메뉴 입력 : ")

    if menu == "1":
        if d:
            for i in d:
                print(i)
        else:
            print("사전이 비어있습니다!")

    elif menu == "2":
        word = input("단어 검색 : ")
        if word in d:
            print(f"{word} 의 뜻은 '{d[word]}' 입니다!")
        else:
            print("사전에 등록되지 않은 단어입니다")


    elif menu == "3":
        word = input("추가할 단어를 입력해주세요 : ")
        if word in d:
            print("이미 사전에 등록되어있습니다.")
        else:
            mean = input(f"{word} 의 뜻을 입력해주세요 : ")
            d[word] = mean
            print(f"{word} 가 등록됩니다!!")


    elif menu == "4":
        word = input("수정할 단어를 입력해주세요 : ")
        if word in d:
            mean = input(f"{word} 의 뜻을 입력해주세요 : ")
            if mean == d[word]:
                print("이미 설정되어있는 값입니다 :( !!")
            else:
                d[word] = mean
                print(f"{word} 의 뜻이 '{mean}' 으로 변경됩니다!!")
        else:
            print("사전에 등록되지 않은 단어입니다")
           

    elif menu == "5":
        word = input("삭제할 단어를 입력해주세요 : ")
        if word in d:
            del d[word]
            print(f"{word} 가 삭제됨!!")
        else:
            print("사전에 등록되지 않은 단어입니다")

    elif menu == "6":
        print("너 좀 서운해 :(")

        g = open("word.txt", "w", encoding="utf-8")
        for i in d:
            g.write(f"{i},{d[i]}\n")
        break

    else:
        print("입력이상!!")

-------------------------------------------------------------------------------------------------------------

# csv 과제
 
90 점이상 100만원
80 점이상 50만원
70 점이상 30만원

국어, 수학, 과학 파일에서 데이터 추출하고 평균내서 총장학금 구하기
 
 
su=0
f=open("score.csv","r",encoding="utf-8")
f.readline() # 문자열 넘기기
for i in f:
    a=f.readline()
    print(a)
    b=a.split(",")
    print(b)
    li=[]
    for j in b:
        c=int(j)
        li.append(c)
    print(li)
    d=sum(li)/len(li)
    if d>=90:
        su+=100
    elif d>=80:
        su+=50
    elif d>=700:
        su+=30
    else:
        pass
print(su)

 

728x90
반응형

'IT&코딩 > python' 카테고리의 다른 글

python 4주차 복습-3  (0) 2022.07.31
python 4주차 복습-3  (0) 2022.07.29
python 4주차 복습-1  (0) 2022.07.27
python 3주차 복습-4  (0) 2022.07.23
python 3주차 복습-3  (0) 2022.07.23