DAY 3. 아파서 하루 쉬었다 어휴

DAY 4. 프로그래밍과 데이터 in Python과 파이썬 응용하기 두 코스를 진행하였다.
▽ 다시 봐야할 문제들
문제 1. greetings 리스트의 원소들을 출력하는 프로그램 작성하기
greetings = ["안녕", "니하오", "곤니찌와", "올라", "싸와디캅", "헬로", "봉주르"]
greetings = ["안녕", "니하오", "곤니찌와", "올라", "싸와디캅", "헬로", "봉주르"]
i = 0
while i < len(greetings) :
print(greetings[i])
i += 1
출력 결과

문제 2. 화씨 온도(ºF)를 섭씨 온도(ºC)로 바꿔주는 프로그램 만들기

#화씨온도 -> 섭씨온도
def fahrenheit_to_calsius(fahrenheit):
return (fahrenheit - 32) * 5 / 9
temperature_list = [40, 15, 32, 64, -4, 11]
print("화씨 온도 리스트: " + str(temperature_list))
i = 0
while i < len(temperature_list):
temperature_list[i] = fahrenheit_to_calsius(temperature_list[i])
i += 1
print("섭씨 온도 리스트: " + str(temperature_list))
출력 결과

문제 3. 환전 서비스 프로그램 만들기 (달러 , 엔화)
* 환율은 1달러에 1,000원, 그리고 1,000엔에 8달러라고 가정
#원화에서 달러로
def krw_to_usd(krw) :
return krw / 1000
#달러에서 엔화로
def usd_to_jpy(usd) :
return usd / 8 * 1000
#원화는 얼마?
prices = [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]
print("한국 화페: " + str(prices))
#prices를 원화에서 달러로
i = 0
while i < len(prices) :
prices[i] = krw_to_usd(prices[i])
i += 1
#달러는 얼마?
print("미국 화폐: " + str(prices))
#prices를 달러에서 엔화로
i = 0
while i < len(prices) :
prices[i] = usd_to_jpy(prices[i])
i += 1
#엔화는 얼마?
print("일본 화폐: " + str(prices))
출력 결과

문제 4.
- numbers라는 빈 리스트를 만들고 리스트를 출력한다.
- append를 이용해서 numbers에 1, 7, 3, 6, 5, 2, 13, 14를 순서대로 추가한다. 그 후 리스트를 출력한다.
- numbers 리스트의 원소들 중 홀수는 모두 제거한다. 그 후 다시 리스트를 출력한다.
- numbers 리스트의 인덱스 0 자리에 20이라는 수를 삽입한 후 출력한다.
- numbers 리스트를 정렬한 후 출력한다.
numbers = []
print(numbers)
numbers.append(1)
numbers.append(7)
numbers.append(3)
numbers.append(6)
numbers.append(5)
numbers.append(2)
numbers.append(13)
numbers.append(14)
print(numbers)
i = 0
while i < len(numbers) :
if numbers[i] % 2 == 1 :
del numbers[i]
else:
i += 1
print(numbers)
numbers.insert(0, 20)
print(numbers)
numbers.sort()
print(numbers)
출력 결과

문제 5. numbers의 인덱스와 원소 출력하기(for문 range함수 사용)
numbers = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]
numbers = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]
for i in range (len(numbers)):
print(i, numbers[i])
출력 결과

문제 6. "2의 n제곱"을 출력하는 프로그램을 만들기
for i in range(0, 11) :
print("2^{} = {}".format(i, 2**i))
출력 결과

문제 7. 구구단 프로그램을 while문이 아닌 for문을 사용해서 만들기
for i in range (1, 10) :
for j in range (1, 10) :
print("{} * {} = {}".format(i, j, i*j))
출력 결과

문제 8. 라고 가정할 때, a + b + c = 1000을 만족하는 피타고라스 삼조 는 단 하나이다. 이 경우, 는 얼마인지 구하기
for a in range (0, 1000) :
for b in range (0, 1000) :
c = 1000 - a- b
if a*a + b*b == c*c and a<b<c :
print(a*b*c)
출력 결과

문제 9. numbers라는 리스트가 주어졌을 때, for문을 사용하여 리스트를 거꾸로 뒤집어 보기
numbers = [2, 3, 5, 7, 11, 13, 17, 19]
numbers = [2, 3, 5, 7, 11, 13, 17, 19]
for left in range (len(numbers) // 2) :
right = len(numbers) - left - 1
numbers[right], numbers[left] = numbers[left], numbers[right]
print("뒤집어진 리스트: " + str(numbers))
출력 결과

문제 10. 영어 단어장 만들기 + 단어 추가
- sanitizer: 살균제
- ambition: 야망
- conscience: 양심
- civilization: 문명
추가->
- privilege: 특권
- principle: 원칙
vocab = { 'sanitizer': '살균제',
'ambition': '야망',
'conscience': '양심',
'civilization': '문명'}
print(vocab)
vocab['privilege'] = '특권'
vocab['principle'] = '원칙'
print(vocab)
출력 결과

문제 11. 사전 뒤집기
def reverse_dict(dict) :
new_dict = {}
for key, value in dict.items():
new_dict[value] = key
return new_dict
vocab = {
'sanitizer': '살균제',
'ambition': '야망',
'conscience': '양심',
'civilization': '문명',
'privilege': '특권',
'principles': '원칙'
}
# 기존 단어장 출력
print("영-한 단어장\n{}\n".format(vocab))
# 변환된 단어장 출력
reversed_vocab = reverse_dict(vocab)
print("한-영 단어장\n{}".format(reversed_vocab))
출력 결과

문제 12. votes의 정보를 토대로, 사전 vote_counter에 후보별 득표수를 정리하기
votes = ['김영자', '강승기', '최만수', '김영자', '강승기', '강승기', '최만수', '김영자', \ '최만수', '김영자', '최만수', '김영자', '김영자', '최만수', '최만수', '최만수', '강승기', \ '강승기', '김영자', '김영자', '최만수', '김영자', '김영자', '강승기', '김영자']
votes = ['김영자', '강승기', '최만수', '김영자', '강승기', '강승기', '최만수', '김영자', \
'최만수', '김영자', '최만수', '김영자', '김영자', '최만수', '최만수', '최만수', '강승기', \
'강승기', '김영자', '김영자', '최만수', '김영자', '김영자', '강승기', '김영자']
votes_counter = {}
for name in votes :
if name in votes_counter :
votes_counter[name] += 1
else :
votes_counter[name] = 1
print(votes_counter)
출력 결과

문제 13. 1에서 1000까지의 자릿수 합을 구하기
def digit_sum(num) :
total = 0
str_num = str(num)
for digit in str_num :
total += int(digit)
return total
digit_total = 0
for i in range (1, 1001) :
digit_total += digit_sum(i)
print(digit_total)
출력 결과

문제 14. "토마토"나 "기러기"처럼 거꾸로 읽어도 똑같은 단어를 '팰린드롬(palindrome)'이라고 부른다
팰린드롬 여부를 확인하는 함수 is_palindrome을 작성하기
def is_palindrome(word) :
for left in range (len(word) // 2) :
right = len(word) - left - 1
if word[left] != word[right] :
return False
return True
print(is_palindrome("racecar"))
print(is_palindrome("stars"))
print(is_palindrome("토마토"))
print(is_palindrome("kayak"))
print(is_palindrome("hello"))
출력 결과

문제 15. random 모듈과 input 함수를 활용하여 1과 20 사이의 숫자를 맞히는 게임 프로그램 만들기
import random
answer = random.randint(1, 20)
num_tries = 4
guess = -1
tries = 0
while guess != answer and tries < num_tries :
guess = int(input("기회가 {}번 남았습니다. 1~20 사이의 숫자를 맞혀보세요.: ".format(num_tries - tries)))
tries += 1
if answer > guess :
print("up")
elif answer < guess :
print("dowm")
if guess == answer :
print("축하합니다. {}번 만에 숫자를 맟히셨습니다.".format(tries))
else :
print("아쉽습니다. 정답은 {}입니다.".format(answer))
출력 결과

문제 16. data 폴더의 chicken.txt 파일을 읽어 들이고, strip과 split을 써서 12월 코빠닭의 하루 평균 매출을 출력하기
with open('data/chicken.txt', 'r') as f :
total_revenue = 0
total_day = 0
for line in f:
data = line.strip().split(": ")
revenue = int(data[1])
total_revenue += revenue
total_day += 1
print(total_revenue / total_day)
'coding study' 카테고리의 다른 글
코드잇 코딩캠프 7기(6/23 ~ ) - 18일 차 공부기록 (웹 퍼블리싱 1. HTML/CSS 시작하기 - 여행사이트) (0) | 2021.07.11 |
---|---|
코드잇 코딩캠프 7기 (6/23 ~ ) - 16일 차 공부기록 (웹 퍼블리싱 1.HTML/CSS 시작하기 - 텍스트 꾸미기 연습, 듀엣 가요제, 노래 브리지 ) (0) | 2021.07.08 |
코드잇 코딩캠프 7기 (6/23 ~ ) - 15일 차 공부기록(웹 퍼블리싱 1. HTML) (0) | 2021.07.07 |
코드잇 코딩캠프 7기 ( 6/23 ~ ) - 7일 차 (0) | 2021.06.29 |
코드잇 대학생 코딩캠프 7기 (6/23~) - 2일 차 (0) | 2021.06.24 |