#코드잇 1. 기초 파이썬 프로그래밍

bottle_john·2020년 9월 27일
0

python 문법

목록 보기
1/2
post-thumbnail

먼저, 왜 파이썬?

python : 구글에서 제공하는 프로그래밍 언어, 구현에 대한 깊은 지식없이 추상자료형으로 대부분 정리가 되있어서 프로그래밍 입문 언어로 골랐음. 구현의 내용 대부분이 추상자료로 숨겨져있어 성능 면에서는 느릴 수 있는 가능성 여럿. 생명정보학 분야에선 주로 python 과 R로 data science에 치중된 작업들을 하기에 파이썬 먼저 공부.

조건문 if

a = 3
if a < 5: #조건부분 -  결과로 True / False를 리턴
	#수행부분- True일 때 실행
else:
	#수행부분 - False일 때 실행

elif = else + if

if ~~~:
	else:
    	`if ~~~:
            else:
            	if~~~~:
                else:

이 구문 안의 조건문의 조건들을 항목화하면;

if ~~~~:
	elif ~~~:
    	elif ~~~:
        else:

(if, elif, else) 쓸 때 규칙!
1. 처음에는 if
2. 중간 elif는 원하는 횟수만큼 사용가능
3. 마지막에는 꼭 else {default설정}

예제

성적 매기기 : 절대 평가 방식으로 총 점수가 90점 이상이면 A를, 80점 이상 90점 미만이면 B를, 70점 이상 80점 미만이면 C를, 60점 이상 70점 미만이면 D를, 60점 미만이면 F를 부과하는 수업입니다.
성적이 A일 경우 "You get an A."를, B일 경우 "You get a B."를, C일 경우 "You get a C."를, D일 경우 "You get a D."를, F일 경우 "You get an F."을 출력하는 프로그램을 작성하세요.

# 점수
midterm = 40
final = 45
total = midterm + final
if total >= 90:
    print ("You get an A.")
elif total < 60:
    print ("You get an F.")
elif total < 70:
    print ("You get a D.") 
elif total < 80:
    print ("You get a C.")
elif total < 90:
    print ("You get a B.")

이상한 수학 문제1: while문과 if문을 활용하여 100이하의 자연수 중 8의 배수이지만, 12의 배수는 아닌 것을 모두 출력하세요. 실행하면 아래의 내용이 콘솔에 출력되어야 합니다.

i = 1
while i <= 100:
    i = i + 1
    if i % 8 == 0 and if i % 12 == 0:
    	i = i + 1
        else:
            print (i)

이상한 수학 문제2 : 10보다 작은 2 또는 3의 배수는 2, 3, 4, 6, 8, 9이며, 이들의 합은 32입니다. while문과 if문을 활용하여, 1000보다 작은 자연수 중 2 또는 3의 배수의 합을 출력하는 프로그램을 써보세요.

while i < 1000:
    i = i + 1
    if i % 2 == 0:
        sum = i +  sum
    elif i % 3 == 0:
        sum = i +  sum
    if i == 999:
        print(sum)

약수 찾기 : 정수 n의 약수는 n을 나누었을 때 나누어 떨어지는 수입니다. 만약 정수 i가 정수 n의 약수라면, n을 i로 나누었을때 나머지가 0이 나와야 하는거죠.
자연수 중 120의 약수를 모두 출력하고, 총 몇개의 약수가 있는지 출력하는 프로그램을 써보세요. 아래처럼 콘솔에 출력되면 됩니다.

n = 120
i = 0
count = 0
while i < n:
    i += 1
    if 120 % i == 0:
        count += 1
        print(i)
print ("%d의 약수는 총 %d개입니다." % (n , count))

택이의 우승상금 : 1988년 쌍문동에 사는 택이는 바둑대회 우승 상금으로 5000만원을 받았습니다. 하지만 바둑 외에는 아는게 없으니, 이웃 어른들에게 이 돈으로 무엇을 해야할지 물어보기로 하였습니다.
은행에서 근무하는 동일 아저씨는, 은행에 돈을 맡겨서 매년 이자로 12%씩 받는 것을 추천하셨습니다. 1년 후인 1989년에는, 5000만원의 12% 이자인 600만원이 더해져 5600만원이 된다고 하면서요. 이 이야기를 들은 미란 아주머니는 고작 12%때문에 생돈을 은행에 넣어 놓느냐며, 얼마 전 지어진 매매가 5000만원짜리 은마아파트를 살 것을 추천하셨습니다. 2016년 현재 은마아파트의 매매가는 11억원입니다.
while문과 if문을 사용해 1988년 은행에 5000만원을 넣었을 경우 2016년에 얼마나 있을지 계산하여, 동일 아저씨나 미란 아주머니 중 누구의 말을 듣는 것이 좋을지 판단해보세요.
2016년에 은행에 저축해 둔 금액이 더 크다면,
*원 차이로 동일 아저씨의 말씀이 맞습니다. 가 출력되게 하세요. 하지만 은마 아파트의 가격이 더 크다면, 원 차이로 미란 아주머니의 말씀이 맞습니다.가 출력되게 하세요. (단 이자율은 매년 12%로 같다고 가정합니다.)

n = 28
i = 0
int = 0.12
price = 50000000
while i < n:
    i = i + 1
    price = price + price * int
if price < 1100000000:
        print ("%d원 차이로 미란 아주머니의 말씀이 맞습니다." % (1100000000 - price))
else:
        print ("%d원 차이로 동일 아저씨의 말씀이 맞습니다." % (price - 1100000000))

피보나치 수열 : 피보나치 수열이란 첫 번째 항과 두 번째 항이 1이고, 세 번째 항부터는 바로 앞의 두 항의 합으로 정의된 수열입니다.
예를 들어서 세 번째 항은 첫 번째 항(1)과 두 번째 항(1)을 더한 2이며, 네 번째 항은 두 번째 항(1)과 세 번째 항(2)을 더한 3이 될 것입니다.
이러한 방식으로 피보나치 수열의 첫 10개 항은 1, 1, 2, 3, 5, 8, 13, 21, 34, 55입니다.
피보나치 수열의 첫 20개 항을 차례대로 출력하는 프로그램을 써보세요.

i = 0
pre = 0
cur = 1
n = 20

while i < 20:
    print(cur)
    temp = pre
    pre = cur
    cur = pre + temp
    i = i + 1
    

구구단 :구구단을 만들어보세요. while문을 사용하여 콘솔에 아래 문장들이 출력되게 프로그램을 작성하세요.

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

제어문 꿀팁!

  • break문: 문제가 생길거 같을 때
    -> while문의 조건부분과 상관없이 반복문에서 나오고 싶을 때
i = 100
while True:
    # i가 23의 배수면 반복문을 끝냄
    if i % 23 == 0:
        break
    i = i + 1

print(i)
  • continue문: 이후로 더할 필요가 없을 때
    -> 진행되는 수행부분 중단, 조건 확인하고 싶으면?
i = 0
while i < 15:
    i = i + 1

    # i가 홀수면 print(i) 안하고 바로 조건부분으로 돌아감
    if i % 2 == 1:
        continue
    print(i)
profile
Bioinformatician, Data Scientist & Analysis [지망생]

0개의 댓글