if문을 익히기 위해서 예제 문제를 풀어보았다.
문제 출처: 문제에 기재 / 대학교 시절 c언어로 풀어봤던 예제
대학교 시절에 c언어 공부를 통해서 if문을 접해보았지만
파이썬을 통해서는 코드를 짜본 적이 없어서 다시 기초부터 정리해본다.
if 조건문:
수행할 문장 1-1
수행할 문장 1-2
...
elif 조건문 N:
수행할 문장 N-1
수행할 문장 N-2
...
else:
수행할 문장 a-1
수행할 문장 a-2
...
연도를 입력하였을 때 윤년이면 '윤년입니다'를, 윤년이 아니면 '윤년이 아닙니다'를 출력하는 프로그램을 작성하시오.
* 윤년
은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
코드
no = int(input("연도를 입력하세요:"))
no >= 1 and no <= 400
if no % 4 == 0 and no% 100 != 0 or no % 400 == 0:
print("윤년입니다")
else:
print("윤년이 아닙니다")
정수로 값을 입력받았을 때, 그 값(항) 이하까지의 피보나치 수열을 출력하는 함수를 작성해보시오.
* 피보나치 수열
의 기본 규칙은 처음 두 항은 1이고, 세 번째 항부터는 바로 앞의 두 항의 합이 된다.
코드
n = int(input("값을 입력하세요:"))
def fib(n):
if n <= 1:
return n
else:
return fib(n-1) + fib(n-2)
for i in range(n):
print(fib(i+1),end=' ')
이 코드에서는 함수와 for문의 개념도 함께 사용해야한다.
return fib(n-1) + fib(n-2)
는 n이 2이상일 때 n 이전의 값인 fib(n-1)과 그 전의 값인 fib(n-2)을 더한 값을 출력하도록 해준다. 매개변수 end
를 사용해 끝 문자를 지정하였다. 문제 출처 : https://codingdojang.com/scode/529?answer_mode=hide
코드
numbers = list(map(int,input()))
answers = [str(numbers[0])]
for i in range(len(numbers)-1):
if numbers[i] %2 ==0 and numbers[i+1] %2 == 0:
answers.append('*')
elif numbers[i] % 2 ==1 and numbers[i+1]%2 ==1:
answers.append('-')
answers.append(str(numbers[i+1]))
print("".join(answers))
map(function, iterables)
int
를 사용해서 문자열을 숫자리스트로 바꿔주었다."구분자".join(list or tuple)
"".join(answers))
를 사용했다.✔️ 그렇다면 구분자로 구분된 하나의 문자열을 구분자를 기준으로 나누어 list 형태로 바꾸어줄 때 쓰이는 것은?
문자열.split("구분자")
즉, 자료형이 string에서 list로 바뀌어 반환된다.
예제
x = "a,b,c,d"
y = x.split(",")
print(y)
결과
['a', 'b', 'c', 'd']
또한 따로 따로 저장도 가능하다.
예제
text = "x,y,z"
a,b,c = text.split(",")
print(a)
print(b)
print(c)
결과
x
y
z