python

이동근·2020년 12월 19일
0

python

목록 보기
4/18

while문 연습문제

while문을 사용해서 100이상의 자연수 중 가장 작은 23의 배수를출력하시오

코드

i = 100                   - > 100이상의 자연수 이므로 시작하는 변수를 i로 지정
while i % 23 != 0:        - > 23의 배수를 구해야 하기때문에 i를 23을 나눗셈 했을때  0이 아닌 경우 
    i += 1                - > i를 1씩 더해간다.
print(i)                  - > 아닌 경우 i 출력
    
    정답 = 115
    

파보나치의 수열을 코드로 구현하고 50번째 항까지 구하세요!

파보나치 수열이란 첫 항과 두번째항은 1로 고정입니다. 그리고 3번 항부터는 앞 두 항의 합으로 계산합니다.

코드

i = 1                          -> 항의 순서를 돌리기 위한 변수
current = 1                    -> 두 번째 항 
previous = 1                   -> 첫 번째 항

while i < 50:                  -> 50번째 항이 되기 전까지 반복 
    temp = previous            -> 이전의 항을 현재 항으로 지정해줘야 하기 때문에 임시항에 미리 저장 
    previous = current         -> 현재항을 이전항에 저장 
    current = temp + previous  -> 현재항은 임시항 temp와 previous의 합
    i += 1                     -> 조건이 만족할때 까지 i는 1씩 더해져감

리스트의 원소 중 홀수를 제거

numbers = [1, 7, 3, 6, 5, 2, 13, 14]

i = 0                           -> 리스트의 첫항은 '0'으로 시작하기 때문에 시작하는 변수를 0으로 지정
while i < len(numbers):         -> i가 리스트 안의 항의 수보다 작을 경우
    if numbers[i] % 2 != 0:     -> 만약 numbers의 항이 2로 나누 었을때 0이 아닌 경우
        del numbers[i]          -> numbers의 그 항을 삭제 한다.
    else:                       -> 그 외의 경우에는
        i += 1                  -> i를 하나씩 더해 간다.
        

리스트의 원소 뒤집기

numbers = [2,3,5,7,11,13,17,19,23,29,31]

#변수설명
left = numbers의 왼쪽 항 번호
right = numbers의 오른쪽 항 번호

for left in range(len(numbers) // 2):   -> left가 numbers의 항의 수보다 절반 만큼 그 수 안에 있을 경우  
    right = len(numbers) - left - 1     -> right는 총 항의 갯수에서 left를 빼고 1을 더 뺀 값이다.
    
    1. 첫 번째 방법
    temp = numbers[left]                 -> left의 값을 임시항인 temp에 저장한다
    numbers[left] = numbers[right]       -> right의 항번호를 left에 지정한다.
    numbers[right] = temp                 -> 임시항 temp의 번호를 right에 지정한다.
    
    2. 두번째 방법 - 튜플을 사용
    numbers[left], numbers[right] = numbers[right], numbers[left]
    
 print(numbers)
 -> for 조건문에서 2로 나눠주는 이유는 나눠주지 않게 되면 2번 순환하기 때문에 원상태로 돌아오게 된다.
 
profile
하루하루 1cm 자라는 개발자

0개의 댓글