211016 알고리즘

이은택·2021년 10월 16일
0

알고리즘

목록 보기
8/15
post-thumbnail

코드잇 파이썬 기초문제


단어장 만들기

1차 시도 35분

문제점 - 출력 값을 잘못보고 출력 형식에 맞춰서 문제를 풀려고함. 다음부터는 입력값과 출력값 잘 확인하자

2차 시도 - 7분

while True:
    vocabs = open("vocabulary.txt", "a") 📌📌
    english = input("영어 단어를 입력하세요: ")
    if english == "q":
        break
    korean = input("한국어 뜻을 입력하세요: ")
    if korean == "q":
        break
    vocab = english + ": " + korean + "\n" 📌
    vocabs.write(vocab) 📌

✔개선할점

📌 while 루프 돌릴때마다 파일 오픈 ㄴㄴ 밖에서 열어두기

📌 encoding = "utf-8" 을 추가해서 한글 입력이 정상적으로 저장되게 할 것

📌 변수 지정할때도 format() 사용가능할듯? 체크해보기

📌 vocab 변수와 vocabs.write(vocab) 합치기

vocabs = open("vocabulary.txt", "a", encoding="utf-8") 📌📌
while True:
    english = input("영어 단어를 입력하세요: ")
    if english == "q":
        break
    korean = input("한국어 뜻을 입력하세요: ")
    if korean == "q":
        break
    vocabs.write("{}: {}\n".format(english, korean)) 📌📌

단어 퀴즈

1차시도 11분

vocabs = open("vocabulary.txt", "r", encoding = "utf-8")
for vocab in vocabs:
    english_korean = vocab.strip().split(": ")
    print(english_korean)
    english = english_korean[0] 📌
    korean = english_korean[1] 📌
    guess = input("{}: ".format(korean))
    if english == guess:
        print("맞았습니다!")
    else:
        print("아쉽습니다. 정답은 {}입니다.".format(english))📌

✔개선할점

📌📌 englishkorean 변수를 두줄에서 한줄로 할당하기

📌 f"string" 사용해보기

vocabs = open("vocabulary.txt", "r", encoding = "utf-8")
for vocab in vocabs:
    english_korean = vocab.strip().split(": ")
    english, korean = english_korean[0], english_korean[1] 📌📌
    guess = input("{}: ".format(korean))
    if english == guess:
        print("맞았습니다!")
    else:
        print(f"아쉽습니다. 정답은 {english}입니다.") 📌

고급 단어장

1차 시도 25분

vocab_dict = {}
vocab_list = []
with open("vocabulary.txt", "r", encoding="utf-8") as vocabs:
    for vocab in vocabs:
        vocab = vocab.strip().split(": ")
        english, korean = vocab[0], vocab[1]
        vocab_dict[korean] = english
        vocab_list.append(korean)📌

import random
num_of_vocabs = len(vocab_list)
guess = ''
while guess != "q":
    random_vocab = vocab_list[random.randint(0, num_of_vocabs - 1)]
    guess = input(f"{random_vocab}: ")
    answer = vocab_dict[random_vocab]
    if guess == answer:
        print("맞았습니다!")
    else:
        print(f"틀렸습니다. 정답은 {answer}입니다.")

✔개선할점

📌 append 대신에 keys = list(vocab.keys()) 사용해보기

vocab_dict = {}
vocab_list = []
with open("vocabulary.txt", "r", encoding="utf-8") as vocabs:
    for vocab in vocabs:
        vocab = vocab.strip().split(": ")
        english, korean = vocab[0], vocab[1]
        vocab_dict[korean] = english
    vocab_list = list(vocab_dict.keys()) 📌

import random
num_of_vocabs = len(vocab_list)
guess = ''
while guess != "q":
    random_vocab = vocab_list[random.randint(0, num_of_vocabs - 1)]
    guess = input(f"{random_vocab}: ")
    answer = vocab_dict[random_vocab]
    if guess == answer:
        print("맞았습니다!")
    elif guess != "q":
        print(f"틀렸습니다. 정답은 {answer}입니다.")
profile
도전!

0개의 댓글