연랩

[Microsoft AI School 6기] 12/20(5일차) 정리 - 반복문, list 본문

MS AI school 6기

[Microsoft AI School 6기] 12/20(5일차) 정리 - 반복문, list

parkjiyon7 2024. 12. 20. 18:01

파이썬 기본 문법

 

문자열 거꾸로 출력하기

 

문자열 거꾸로 출력하기

 

파이썬의 경우, 문자열을 거꾸로 출력하고 싶으면, 문자열[::-1]로 하면 된다

 

참고)

- 마크다운에 이미지 넣기

![이미지 이름](링크-경로)순서로 넣으면 된다

 

- 여러 줄을 주석처리하고 싶으면 영역을 잡고

ctrl+/하면 된다

 

조건문 유의점

 

조건문 유의점

 

위에서 보면 jumin[7]이 2이므로 '여자입니다'가 출력되어야 하는데, 남성입니다가 출력되었음을 알 수 있다

여기서 유의할 점은, or는 수식을 연결한다.

'3'은 True가 되어서 남성입니다가 출력되는 것이다

따라서 이 경우, jumin[7] == '1' or jumin[7] == '3'

이 되어야 하는 것이다

 

 

반복문

 

반복문의 필요성

- 반복(iteration)은 동일한 문장을 여러 번 반복하는 구조

- loop statement이라고 함

 

반복문의 종류

  • while: 조건 반복 - 조건의 충족 ex) 지칠때까지 반복
  • for: 횟수 반복 - 반복 횟수 ex) 10번 반복
  • while True: 무한 반복 - 무한 실행

while문

- 조건에 따른 반복

조건식의 값이 True인 경우 문장(또는 불록)을 반복

조건식의 값이 False이면 반복을 종료하여 빠져나감

 

조건문 양식

 

여기서 느낀건데 C 하던 나로써는 print 자동 줄바꿈이 조금....거슬린다....ㅠ

 

ex)

1부터 입력 받은 end 까지의 합, 곱, 짝수합, 홀수합을 구해보자

 

while 예시 코드

 

 

for문

- 지정된 횟수만큼 횟수 제어 반복

 

for문

 

- 이터러블(Iterable): 반복 가능한 객체

 

for문의 두가지 형식

 

for문 형식

 

1) 문자열

파이썬에서는 문자열도 이터러블에 해당한다

 

문자열 이터러블

 

위에서 보는 것과 같이 hello의 경우 5글자로 구성된 문자열이기 때문에

반복문이 5번 실행되어 'Hello'가 5번 출력되었음을 알 수 있다

또한 i의 값을 출력해보면 다음과 같다

 

문자열 이터러블

 

2) range() 함수

 

range(시작값, 끝값, 증가 값(step))

'시작값'에서 시작하여 '종료값-증가값'까지 '증가값' 간격으로 정수들 생성

'시작값'을 생략하면 0, '증가값'을 생략하면 1로 간주

 

range 함수

 

range 함수 예시

ex)

range 함수
range 함수

 

끝값 미만까지 출력됨을 볼 수 있다(감소도 마찬가지)

앞에서 while문으로 수행했던 1부터 입력 받은 end 값 까지의 합, 곱, 짝수합을 for문으로 구현하면 다음과 같다

1부터 입력 받은 end 값 까지의 합, 곱, 짝수합

 

- 참고로 i++은 안된다..

 

같은 구문을 for문과 while으로 하여 같이 비교하면 다음과 같다

 

for문으로 구현

 

while문으로 구현

 

- 참고로 아래와 같이 하면 오른쪽 정렬할 수 있다

 

오른쪽 정렬

 

- 왼쪽 정렬은 다음과 같이 한다

 

왼쪽 정렬

 

- break

 

실행을 중간하고 반복문을 빠져나옴

for, while에서 둘 다 사용 가능

 

ex)

break 예시

 

break는 하나의 블록을 탈출한다. 즉, 이중 반복문의 경우, 한 블록씩 탈출한다(가장 가까운 for 문)

 

break

 

continue

 

continue의 경우, 해당 조건을 만족하면 그 다음 블록을 실행하지 않고 다시 반복문으로 돌아간다

 

ex)

 

continue

 

continue를 만난 순가 반복문을 찾아서 가장 가까운 반복문으로 올라간다

즉, 위의 예시를 보면 짝수인 경우 더하지 않고(continue 밑 구문은 실행하지 않고)

반복문으로 가기 때문에 홀수 합이 되었음을 알 수 있다.

 

한 가지 더 예를 살펴보자

20 보다 작은 정수 중 3의 배수와 5의 배수를 제외하고 출력한다고 가정하면

continue

 

위와 같이 코드를 작성할 수 있다. continue의 경우, 그 뒤의 구문을 건너뛰게 된다.

이때, if문을 continue 뒤에 작성하면 if( i  == 20)의 경우 20이 5의 배수이기 때문에 if문이 수행되지 않아 무한 루프를 돌게 되니 유의하자

 

random 함수는 내장되어 있어서 import random으로 불러올 수 있다

이를 이용하여 숫자 맞추기 게임을 구현하면 다음과 같다

 

숫자 맞추기 게임

 

 

복잡자료형

 

= 컬렉션 자료형:

여러 개의 요소를 하나로 묶어 사용하는 자료형

  • 리스트(list)
  • 튜플(tuple)
  • 딕셔너리(dictionary)
  • 세트(set)

 

컬렉션 자료형

 

list

리스트명 = [값1, 값2...]

 

- 여러 개의 데이터를 하나의 이름으로 저장하는 형태

- 인덱스로 접근 가능

 

 

ex)

list

 

list

 

파이썬의 list안에는 다양한 자료형이 한꺼번에 들어갈 수 있으며, list안에 list가 존재할 수 있다

 

몇 가지의 예시를 더 살펴보면 아래와 같다

 

list

 

list

 

이 둘의 출력 형식이 다른 것을 알 수 있는데, 아래 사진의 경우, 리스트의 일부를 슬라이싱 해서 가져와서 리스트로 보여져서 형식이 다르다는 사실을 알 수 있다

 

list 대입

 

splicing을 통한 대입이 가능하다

여기서 유의해야할 점은

 

list splicing

 

지정하는 집합이 모자라는 경우, 인수가 사라지는 것을 확인할 수 있다

다만,

list

 

list

 

{}인 형태가 아니라 그냥 값을 대입하는 경우하는 Type error가 뜬다

 

아래와 같이 list를 채울 경우 에러가 나타나게 된다

 

list

 

일반적으로 C언어에서 입력하는 방법대로 하면 에러가 나타난다

 

리스트 조작 함수

 

리스트 조작 함수

 

- 리스트 조작 함수는 print 함수 안에 쓸 수 없다

예를 들어, fruit.reverse는 값을 반환하는 함수가 아니라 리스트 내부의 값에 변경사항을 적용하는 함수이기 때문에 리턴값이 없어 None이라고 출력된다

 

- append()

마지막에 요소 추가

 

- insert(위치, 값)

해당 인덱스에 값 추가

 

- pop()

pop(): 제일 뒤의 항목 빼냄

pop(위치): 인덱스에 있는 항목 빼냄

 

- remove(삭제할 값)

실질적인 값으로 삭제

 

- sort()

디폴트는 오름차순 정렬

내림차순 정렬: sort(reverse = True)

 

 

리스트 적용 내장 함수

 

리스트 적용 내장 함수

 

여기에서 평균을 계산하고 싶으면 sum/len하면 된다

 

평균 구하기

 

리스트에 있는 항목을 출력하고 싶으면

 

list

 

이것도 가능하다(파이썬 대단쓰,,,)

 

이를 이용하여 끝말 있기 게임을 만들면 다음과 같다

 

끝말잇기 게임

 

 

오늘의 간단한 후기

 

C에서는 하려면 고생 해야 하는 사항들이 함수로 정리되어 있는 되데가 기본 내장되어 있어서 훨씬 편리하다는 생각이 들었다. 그럼에도 사실 VS code 버그(한글 두번 씩 쳐지는 거...., print문 딜레이...) 때문에 생각보다 사소한 문제점들이 있었다. 그래도 이전 보다 편리하게 코딩하고 새로운 언어를 배운다는 사실이 즐거웠다. 이제 기본 문법은 어느정도 배웠다는 뿌듯함도 있었다

 

 

 

출처

 

-If any problem for references, or any questions please contact me by comments.

-This content is only for recording my studies and personal profiles

 

일부 출처는 사진 내에 표기되어 있습니다

본문의 내용은 학습과 개인 profile 이외의 다른 목적이 없습니다

출처 관련 문제 있을 시 말씀 부탁드립니다

상업적인 용도로 사용하는 것을 금합니다

본문의 내용을 Elixirr 강의자료 내용(인선미 강사님)을 기반으로 제작되었습니다

본문의 내용은 MS AI School 6기의 강의 자료 및 수업 내용을 담고 있습니다.

반응형