반응형
SMALL

'프로그래밍언어/PYTHON'에 해당되는 글 18건

반응형
LIST
반응형
SMALL

리스트를 이용해 온도변환 프로그램을 짜보았다. 섭씨온도를 화씨온도로 바꾸는 프로그램인데 그닥 길고 어렵진 않았지만 return 값에 대해 다시 한 번 생각해보며 만들었어야 하는 프로그램이었다. 프로그램 짠 건 다음과 같다.


# 화씨 온도에서 섭씨 온도로 바꿔주는 함수
def fahrenheit_to_celsius(fahrenheit):
return (fahrenheit - 32) * 5 / 9

# 테스트용 온도 리스트
sample_temperature_list = [40, 15, 32, 64, -4, 11]

# 화씨 온도 출력
print("화씨 온도 리스트: " + str(sample_temperature_list))

# 리스트의 값들을 화씨에서 섭씨로 변환
i = 0
while i < len(sample_temperature_list):
sample_temperature_list[i] = round(fahrenheit_to_celsius(sample_temperature_list[i]),2) # 소수 둘째짜리까지 반올림
i = i + 1
print("섭씨 온도 리스트: " + str(sample_temperature_list))

겉보기엔 복잡하게 보일수도 있지만 코드 천천히 살펴보면 그렇게 어려운 코드는 아니다. round함수는 반올림 할 때 쓰는 함수인데

나는 둘째짜리까지 반올림하고싶어서 쓴 함수였다. 결과를 실행하면 다음과 같이 나온다.



온도가 정확하게 변했다는 것을 확인할 수 있다. 파이썬으로도 이렇게 재밌는 프로그램들을 몇스텝 안되고도 잘 만들 수 있다. 이 프로그램

의 핵심은 return문과 while문이다.


반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

숫자야구게임  (0) 2017.07.23
환전 프로그램  (0) 2017.07.23
구구단 프로그램  (0) 2017.07.12
숫자맞추기 프로그램  (0) 2017.07.12
택이의 우승상금 프로그램  (0) 2017.07.11
블로그 이미지

만년필석사

,
반응형
SMALL

프로그래밍 언어 공부를 하는 사람이라면 C나 java갖다가 반복문 문법을 공부할때 가장 먼저 짜보는게 구구단일 것이다. C나 java로 구현해보면 은근 코드라인수가 길 것이다. 하지만 python은 단 몇줄만으로 구구단 1~9단까지 한번에 구현한다. 구구단 코드는 다음과 같다.

# 구구단
i = 0
while i < 9:
i = i + 1
j = 1
while j <= 9:
print("%d * %d = %d" % (i, j, i * j))
j = j + 1

무지하게 간단하다는 걸 볼 수 있다. i를 증가시키고 j를 넣어 +를 해주면서 반복을 돌리게 되면 1~9단까지 쭉 출력이

된다. 결과는 다음과 같다.


9까지 곱해지고 그 다음단으로 가게 되면 정상적으로 출력된다. 저거 말고도 하는 법은 더 여러가지가 있으니 각자 취향

에 맞게 짜길 권장한다.


반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

환전 프로그램  (0) 2017.07.23
온도변환프로그램  (0) 2017.07.23
숫자맞추기 프로그램  (0) 2017.07.12
택이의 우승상금 프로그램  (0) 2017.07.11
피보나치 수열 프로그램  (0) 2017.07.11
블로그 이미지

만년필석사

,
반응형
SMALL

파이썬은 random 모듈이라는 것이 있다. random 모듈의 정의는 두 정수 사이에 난수를 리턴시키는 함수 값이다. 되게 재밌는건 1,20을 random함수 안에 설정해 놓으면 1~20사이에 랜덤한 숫자가 print를 통해 출력이 된다. 그래서 이 함수로 여러가지 재밌는 프로그램을 만들 수 있다. 근데 어떤원리로 리턴되고 정의되는지부터 확실히 공부할 필요가 있다. 그래서 이 함수로 첫번째로 만들어본 프로그램은 숫자맞추기 프로그램이었다. 총 기회는 4회가 주어지며 이 안으로 컴퓨터가 랜덤으로 뽑은 숫자를 내가 맞춰야 하는 게임이다. 4번안으로 못맞추면 아쉽다는 메시지를 보내며 정답을 알려준다. 어찌보면 참 단순한 프로그램인데 생각외로 구현하긴 쉽진 않았다. 특히 while문쪽에서 좀 애를 먹었다. 내가 짠 소스는 다음과 같다.


from random import randint

chance = 4 # 주어지는 기회
ANSWER = randint(1,20) # 1~20까지 숫자들

while (chance != 0):
enter = int(input("기회가 %d번 남았습니다. 1-20 사이의 숫자를 맞춰보세요: " % chance))
# 사용자가 입력한 답과 컴퓨터가 생각해놓은 답을 비교해 판정한다.
if ANSWER > enter:
chance = chance - 1
print("Up")
elif ANSWER < enter:
chance = chance - 1
print("Down")
else:
print("축하합니다. %d번만에 숫자를 맞추셨습니다." % (5 - chance))
break
else:
print("아쉽습니다 정답은 %d였습니다." % (ANSWER))

코드길이는 짧은듯 하지만 쉽진않아서 택이의우승상금 풀때처럼 종이에 그림 그려가면서 코드를 짜보았다.

특히 마지막 else문은 전역변수로 빼주어야 코드가 정상적으로 작동했다. 실행결과는 아래 그림과 같다.



기회를 좀 더 주고 싶으면 chance부분을 수정하면 된다. 또 다른방법으로도 짜는 방법이 있을테니 그건 각자

생각해서 짜보는 것도 좋을 것 같다. random모듈은 많은 프로그램을 짤 수 있는 유용한 함수이다.


반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

온도변환프로그램  (0) 2017.07.23
구구단 프로그램  (0) 2017.07.12
택이의 우승상금 프로그램  (0) 2017.07.11
피보나치 수열 프로그램  (0) 2017.07.11
학점계산기 프로그램  (0) 2017.07.10
블로그 이미지

만년필석사

,
반응형
SMALL

되게 재밌는 문제기도 해서 올려본다. 택이가 우승상금으로 5천만원을 받았는데 동일이아저씨는 이걸 은행에다 넣으면 1년에 이자가 0.12%가 붙어 5600만원이 되고 6200만원이 된다고 했고 이런식으로 년마다 증가하게 되고 미란아주머니는 생돈을 왜 은행에다 넣어놓느냐고 5천만원짜리 아파트를 사라고 했다. 그럼 두가지 조건중에 택이한테는 더 이득이 될까? 2016년 기준으로 5천만원짜리 아파트는 11억이 되었다.


일단 이문제를 풀라면 이자 계산하는 방법을 알아야 한다. 이자가 0.12% 증가한댔으니 1+0.12를 해주면 쉽게 해결될 문제기도 하다. 조건문을 공부하기 위한 문제였는데 이자율 계산과 변수명 값 설정 때문에 10분정도 고민을 해봤던 것 같다. 코드는 다음과 같다.


INTER_RATE = 0.12
APARTMENT_PRICE = 1100000000
year = 1988
money = 50000000
count = 0
while year < 2016:

money = money * (1 + INTER_RATE)
year = year + 1

if APARTMENT_PRICE < money:
count = money - APARTMENT_PRICE
print("%d원 차이로 건주의 말씀이 맞습니다." % (count))
if APARTMENT_PRICE > money:
count = money - APARTMENT_PRICE
print("%d원 차이로 미란아주머니의 말씀이 맞습니다." % (count))

생각보다 몇줄 안되는 코드이다. 변수명값 설정이 좀 오래 걸려서 그렇지 while, if문 구현하는 방법은 어렵지 않다.

그냥 어떤게 이득인지 아닌지만 잘 구별하면 쉽게 풀 수 있는 문제다. 결과값은 다음과 같다.



이런식으로 나오면 결과가 잘 나온거다. 결국은 은행에다 넣어놓아야 한다고 주장한 내말이 맞은 셈이다.

저 코드 말고 이렇게 짜는 방식도 있다.


# 상수 정의
INTEREST_RATE = 12
APARTMENT_PRICE = 1100000000

# 변수 정의
year = 1988
amount = 50000000

while year < 2016:
amount = amount + INTEREST_RATE / 100 * amount
year = year + 1

if amount > APARTMENT_PRICE:
print("%d원 차이로 건주의 말씀이 맞습니다." % (amount - APARTMENT_PRICE))
elif amount < APARTMENT_PRICE:
print("%d원 차이로 미란아주머니의 말씀이 맞습니다." % (APARTMENT_PRICE - amount))
else:
print("똑같습니다.")

이것도 동일한 결과가 나오는데 elif를 사용해서 조금 더 간결하고 이쁘게 짠 정석코드이다. 프로그래밍은 한가지

방법만 있는게 아닌 여러가지로 짜는법이 있으니 많이 연습해 두면 좋을 것 같다.


반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

구구단 프로그램  (0) 2017.07.12
숫자맞추기 프로그램  (0) 2017.07.12
피보나치 수열 프로그램  (0) 2017.07.11
학점계산기 프로그램  (0) 2017.07.10
짝수,홀수 구분하기 프로그램  (0) 2017.07.10
블로그 이미지

만년필석사

,
반응형
SMALL

피보나치 수열은 워낙 유명한 수열이라 C나 JAVA를 공부한 사람들은 다 한번씩 접해 봤을 수열일 것이다. 이번엔 파이썬으로 짜본거였는데 스텝수도 몇개 안될만큼 무지하게 간단하다. C로 짜려고 하면 스텝수 이거에 2배는 나올 수 있다.(물론 짜는사람마다 다르겠지만)


파이썬으로 피보나치 수열을 짜본 결과는 다음과 같다.


# 변수
previous = 0
current = 1
temp = 0
i = 0

while i <= 20:
print(current)

previous = current
current = temp
temp = previous


current = previous + current // 저장된 값에 더하기
i= i + 1 // 루프증가

1 1 2 3 5 이런식으로 가정되있으면 1+1 = 2, 1+2 = 3 이런식으로 해서 원하는 항의 수를 설정하면 그 항까지만 더하고 멈춘다. 이 방법말고도 조금 더 간결하게 짜는 방법이 있는데 그건 독자들이 한번 고민해보고 짜봤으면 하는 바램이다.

반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

숫자맞추기 프로그램  (0) 2017.07.12
택이의 우승상금 프로그램  (0) 2017.07.11
학점계산기 프로그램  (0) 2017.07.10
짝수,홀수 구분하기 프로그램  (0) 2017.07.10
거스름돈 계산 프로그램  (0) 2017.07.09
블로그 이미지

만년필석사

,
반응형
SMALL

학점계산기 프로그램은 대표적으로 if, else, elif를 공부할때 만들어보기 참 좋은 프로그램이다. 기본적으로 C언어도 if, else elseif가 다있지만 간단한 프로그램은 괜찮은데 복잡한 프로그램을 만들시에 코드는 엄청나게 지저분해진다. if else안에 또 if를 쓰고 else를 쓰고 이러다보면 코드는 어느새 심하게 말하면 난장판이 된다. 하지만 파이썬은 elif라는 함수가 있어 if와 else를 합쳐줘서 코드를 간결하고 이쁘게 만들어준다. 그래서 복잡한 프로그램을 만들때 매우 유용하게 쓰일 수 있다. 이런점이 사람들이 파이썬에 열광하는 이유가 아닐까 싶다. 


학점계산기를 만들때 필자는 90이상이면 A 80~89점은 B 70~79점은 C 60~69은 D 그 이하는 F를 주는 전제로 프로그램을 만들었다. 코드는 다음과 같다.

def print_grade(midterm, final):
total = midterm + final
if total >= 90:
print("You get an A")
elif total >= 80:
print("You get an B")
elif total >= 70:
print("You get an C")
elif total >= 60:
print("You get an D")
else:
print('You fail')
# 테스트
print_grade(40, 45)
print_grade(20, 35)
print_grade(30, 32)
print_grade(50, 45)



의외로 몇줄 안될 정도로 간단하다. C언어로 저거 짜보면 코드길이 저거에 2~3배 길어진다는건

짜본 사람은 알 것이다. 그정도로 파이썬은 간결하고 이쁘게 짤 수 있다. elif를 사용한 이유는

80~89점의 값을 계산할때 if else를 써야 값이 나오는데 elif를 쓸때 코드길이가 간결해지면서

if else를 하나로 합쳐준다. 위 코드를 실행시키면 다음과 같은 결과가 나온다.



정확히 결과가 나온게 보인다. 85점은 B학점 55점은 F 이런식으로 나온다. 이렇듯 파이썬으론

몇줄 안되는 코드로 학점계산기도 간단하게 만들 수 있다.


반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

택이의 우승상금 프로그램  (0) 2017.07.11
피보나치 수열 프로그램  (0) 2017.07.11
짝수,홀수 구분하기 프로그램  (0) 2017.07.10
거스름돈 계산 프로그램  (0) 2017.07.09
파이썬의 기초  (0) 2017.07.09
블로그 이미지

만년필석사

,
반응형
SMALL

짝수, 홀수 구분하기 프로그램은 사실 몇줄 안될정도로 엄청 쉬운건데 처음 파이썬을 공부할때 return문이 엄청 헷갈릴 수 있다. local변수라던지 global변수라던지 이런거 구분하고 어떻게 받는건지 처음에 할때는 헷갈릴 수 있다. 물론 C언어를 어느정도 해봤으면 쉽게 이해할 수 있을 것이다. 내가 짠 코드는 다음과 같다.


def is_evenly_divisible(number):
return False if number % 2

else True


print(is_evenly_divisible(3))
print(is_evenly_divisible(7))
print(is_evenly_divisible(8))

만약에 출력되는 숫자가 짝수이면 True, 홀수이면 False를 출력하게 나타내는 프로그램이다. 나는 처음에 짤 때 저렇게도 한번 짜봤는데 모범답안과 똑같이 이렇게 나온다. 




그리고 또 다른 코드는 다음과 같다.


def is_evenly_divisible(number):

return number % 2 == 0;

print(is_evenly_divisible(3))
print(is_evenly_divisible(7))
print(is_evenly_divisible(8))

위 코드를 출력해봐도 결과는 위에 사진과 같이 나오게 된다. 어차피 Return문과 전역변수, 지역변수의 특성을 알기위해 엄청나게 간단한 프로그램을 만들어본 것이니 그냥 참고만 하면 된다. 컴퓨터 프로그램 공부하는 사람들은 저거 말고도 또 다른 방법들이 있을 것이니 한번 찾아보는 것도 좋을거 같다.

반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

피보나치 수열 프로그램  (0) 2017.07.11
학점계산기 프로그램  (0) 2017.07.10
거스름돈 계산 프로그램  (0) 2017.07.09
파이썬의 기초  (0) 2017.07.09
파이썬 프로그램의 설치  (0) 2017.07.09
블로그 이미지

만년필석사

,
반응형
SMALL

파이썬의 기초가 끝나면 어느정도 조금 감이 잡혔다 싶으면 한번 해보면 좋은 미니과제이다. 어려운건 아닌데 살짝 생각을 해봐야 한다.


거스름돈을 계산해주는 프로그램인데 내가 30000원짜리 이어폰을 샀다고 가정했을 때 5만원짜리 지폐를 냈다고 하면 50000, 10000, 5000, 1000원짜리 지폐들이 있을 것인데 거슬러 줄때 각각 지폐들이 몇개가 필요한지에 대해 계산하는 프로그램이다.  내가 파이썬으로 짠 프로그램은 다음과 같다.


fifty_thousand_count = 50000
ten_thousand_count = 10000
five_thousand_count = 5000
one_thousand_count = 1000


def calculate_change(payment, cost):
# 총 거스롬돈 계산 후, 50000원 짜리 몇 장이 필요한지 계산.
change = payment - cost
fifty_thousand_count = int(change / 50000)

# 50000원 짜리 지폐로 거슬러준 후 남은 거스롬돈 계산, 10000원 짜리 몇 장이 필요한지 계산.
change = change % 50000
ten_thousand_count = int(change / 10000)

# 10000원 짜리 지폐로 거슬러준 후 남은 거스롬돈 계산, 5000원 짜리 몇 장이 필요한지 계산.
change = change % 10000
five_thousand_count = int(change / 5000)

# 5000원 짜리 지폐로 거슬러준 후 남은 거스롬돈 계산, 1000원 짜리 몇 장이 필요한지 계산.
change = change % 5000
one_thousand_count = int(change / 1000)

print("50000원 지폐 : %s장" %(fifty_thousand_count))
print("10000원 지폐 : %s장" %(ten_thousand_count))
print("5000원 지폐 : %s장" %(five_thousand_count))
print("1000원 지폐 : %s장" %(one_thousand_count))

# 테스트
calculate_change(100000, 45000)

print()
calculate_change(500000, 352000)




45000원짜리 물건을 샀을때 내가 10만원 수표를 냈을시에 거스름돈이 55000원이 생기는데 이 거스름돈을 어떻게 해서

거슬러 줄 것인지에 대한 거스름돈 프로그램이었다. 겉보기엔 조금 복잡해 보일 수도 있는데 알고나면 재미있을것이다.

저 위에꺼 실행시키면 다음과 같이 나오게 된다.



이런식으로 해서 거스름돈 거슬러줄때 각각 지폐가 몇장이 필요한지에 대해 참 상세하게 알려주는 고마운

프로그램이다. 필자는 저렇게 만들어봤으니 다른분들도 조금 더 간결하고 이쁘게 코딩을 해보길 권장한다.




반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

피보나치 수열 프로그램  (0) 2017.07.11
학점계산기 프로그램  (0) 2017.07.10
짝수,홀수 구분하기 프로그램  (0) 2017.07.10
파이썬의 기초  (0) 2017.07.09
파이썬 프로그램의 설치  (0) 2017.07.09
블로그 이미지

만년필석사

,