"사과"라는 주제로 글짓기를 한다면
10명이면 10명 모두,
글의 내용이 다르다.
이번엔 수학 문제를 생각해보자.
문제: 10개의 사과가 있었는데, 이 중에서 7개를 먹고, 2개는 썪어서 버렸으며
근처 과일가게에 가서 3개 묶음 짜리 사과 2개를 더 사왔다면,
총 사과의 개수는 몇 개일까?
이 문제를 구하는 방식은
좀 전의 글짓기와는 달리,
10명이라면 7~8명 정도는 같은 방식으로 풀었을 확률이 높다.
그렇다고 모두가 똑같은 방식으로 풀지도 않는다.
결국
글짓기도, 수학도
문제에 대한 해결방법이 하나만 있지 않다.
대신, 좀 더 효율적인 방법이 있을 뿐이다.
필자는 코딩이 언어와 수학의 복합체라고 생각한다.
그래서
해결 방법이 하나만 있는 것은 아니지만,
수학문제처럼 일반적인 풀이는 존재할 수 있다고 생각한다.
초보일 수록, 경험이 적을 수록
코딩 과정이 어설플 수도 있고,
더 복잡하게 적어낼 수도 있다.
하지만 경험이 쌓이고 쌓일 수록 문장은 더 효율적이고 간결해질 것이다.
그러니, 우리가 할 일은
매일 코딩을 연습하는 것!
그렇다면 어떻게, 어떤 순서로, 어떤 방법으로 코딩할까?
내가 배운 것을 소개하겠다.
필자가 코딩하는 과정은 다음과 같다.
1. 알고리즘 구상하기
2. 순서도 만들기
3. 세분화하기: 엄청나게 복잡한 문제라도 작게 세분하여 문제에 접근한다.
4. 코드 작성하기: 쉬운 것부터 어려운 것 순으로 접근한다.
5. 코드 실행하기
6. 코드 수정하기
7. 코드 합치기
예시와 함께 나열해보겠다.
1. 알고리즘 구상하기
2. 순서도 만들기
3. 세분화하기: 엄청나게 복잡한 문제라도 작게 세분하여 문제에 접근한다.
#대상자 선택하기
# 정보 말해주기
# 정답 선택하기
4. 코드 작성하기: 쉬운 것부터 어려운 것 순으로 접근한다.
5. 코드 실행하기
6. 코드 수정하기
7. 코드 합치기
data = [
{
'name': 'Instagram',
'follower_count': 346,
'description': 'Social media platform',
'country': 'United States'
},
{
'name': 'Cristiano Ronaldo',
'follower_count': 215,
'description': 'Footballer',
'country': 'Portugal'
},
{
'name': 'Ariana Grande',
'follower_count': 183,
'description': 'Musician and actress',
'country': 'United States'
},
{
'name': 'Dwayne Johnson',
'follower_count': 181,
'description': 'Actor and professional wrestler',
'country': 'United States'
},]
#최종 완성본
print("""
,adPPYb,d8 ,adPPYYba, 88,dPYba,,adPYba, ,adPPYba, ,adPPYba,
a8" `Y88 "" `Y8 88P' "88" "8a a8P_____88 I8[ ""
8b 88 ,adPPPPP88 88 88 88 8PP""""""" `"Y8ba,
"8a, ,d88 88, ,88 88 88 88 "8b, ,aa aa ]8I
`"YbbdP"Y8 `"8bbdP"Y8 88 88 88 `"Ybbd8"' `"YbbdP"'
aa, ,88
"Y8bbdP"
""")
#대상자 선택하기
import random
compare_list =[]
def first_compare_list(data):
new = random.choice(data)
#data.remove(new) #중복되어 뽑지 않도록 지울 수도 있다.
#print(new)
compare_list.append(new)
return compare_list[0]
def second_compare_list(data):
new = random.choice(data)
#data.remove(new)
#print(new)
compare_list.append(new)
return compare_list[-1]
a = first_compare_list(data)
b = second_compare_list(data)
# print(compare_list)
# print(a)
# print(b)
# 정보 말해주기
def inform(a):
information = []
for key in a:
information.append(a[key])
return f"{information[0]}, {information[2]}, {information[3]} 입니다."
# 정답 선택하기
def decision(a, b):
score = 0
while True:
print("대상자 a의 정보는", inform(a))
print("VS")
print("대상자 b의 정보는", inform(b))
answer = input("누가 인스타팔로워가 더 많을까요? a 또는 b를 입력하세요.")
if answer == "a":
if a['follower_count'] > b['follower_count']:
score += 1
print(f"정답입니다. 현재 점수는 {score}입니다")
a = b
b = second_compare_list(data)
#print(compare_list)
elif a['follower_count'] == b['follower_count']:
print("똑같네요! 다음으로 넘어가겠습니다")
a = b
b = second_compare_list(data)
else:
print(f"틀렸습니다. 최종 점수는 {score}점입니다")
return
else:
if b['follower_count'] > a['follower_count']:
score += 1
print(f"정답입니다. 현재 점수는 {score}입니다")
a = b
b = second_compare_list(data)
print(compare_list)
elif a['follower_count'] == b['follower_count']:
print("똑같네요! 다음으로 넘어가겠습니다")
a = b
b = second_compare_list(data)
else:
print(f"틀렸습니다. 최종 점수는 {score}점입니다")
return
decision(a,b)
# 실제 정답 I>C>A>D
최종 결과물입니다.
아래의 재생버튼 ▶을 눌러서 최종 결과를 실행해보세요
'파이썬 > 파이썬(python) 초급' 카테고리의 다른 글
time, time.sleep, time.time, time.ctime (0) | 2022.11.02 |
---|---|
공백 제거하기, replace, strip() (0) | 2022.10.23 |
[13-2 파이썬] 나만의 아스키 아트 만들기(TAAG) (0) | 2022.08.21 |
[13-1 파이썬] 디버깅, 디버거, 디버깅 잘하는 법 (0) | 2022.08.21 |
[12-3 파이썬] 숫자 맞추기 게임 만들기(순서도, 코드, global 전역변수 실습하기, 전역변수 수정하기) (0) | 2022.08.21 |