일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 마이크로소프트 ai school 6기
- microsoft ai
- micsrosoft ai
- 마이크로소프트 ai 스쿨 6기
- 마이크로소프트 AI
- microsoft ai school 6기
- 마이크로소프트 ai 스클
- msai
- MS
- microsoft
- 마이크로소프트 ai 스쿨
- microsoft ai school
- 마이크로소프트
- Today
- Total
연랩
[Microsoft AI School 6기] 12/20(5일차) 정리 - 반복문, list 본문
파이썬 기본 문법
문자열 거꾸로 출력하기
파이썬의 경우, 문자열을 거꾸로 출력하고 싶으면, 문자열[::-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 까지의 합, 곱, 짝수합, 홀수합을 구해보자
for문
- 지정된 횟수만큼 횟수 제어 반복
- 이터러블(Iterable): 반복 가능한 객체
for문의 두가지 형식
1) 문자열
파이썬에서는 문자열도 이터러블에 해당한다
위에서 보는 것과 같이 hello의 경우 5글자로 구성된 문자열이기 때문에
반복문이 5번 실행되어 'Hello'가 5번 출력되었음을 알 수 있다
또한 i의 값을 출력해보면 다음과 같다
2) range() 함수
range(시작값, 끝값, 증가 값(step))
'시작값'에서 시작하여 '종료값-증가값'까지 '증가값' 간격으로 정수들 생성
'시작값'을 생략하면 0, '증가값'을 생략하면 1로 간주
range 함수 예시
ex)
끝값 미만까지 출력됨을 볼 수 있다(감소도 마찬가지)
앞에서 while문으로 수행했던 1부터 입력 받은 end 값 까지의 합, 곱, 짝수합을 for문으로 구현하면 다음과 같다
- 참고로 i++은 안된다..
같은 구문을 for문과 while으로 하여 같이 비교하면 다음과 같다
- 참고로 아래와 같이 하면 오른쪽 정렬할 수 있다
- 왼쪽 정렬은 다음과 같이 한다
- break
실행을 중간하고 반복문을 빠져나옴
for, while에서 둘 다 사용 가능
ex)
break는 하나의 블록을 탈출한다. 즉, 이중 반복문의 경우, 한 블록씩 탈출한다(가장 가까운 for 문)
continue
continue의 경우, 해당 조건을 만족하면 그 다음 블록을 실행하지 않고 다시 반복문으로 돌아간다
ex)
continue를 만난 순가 반복문을 찾아서 가장 가까운 반복문으로 올라간다
즉, 위의 예시를 보면 짝수인 경우 더하지 않고(continue 밑 구문은 실행하지 않고)
반복문으로 가기 때문에 홀수 합이 되었음을 알 수 있다.
한 가지 더 예를 살펴보자
20 보다 작은 정수 중 3의 배수와 5의 배수를 제외하고 출력한다고 가정하면
위와 같이 코드를 작성할 수 있다. continue의 경우, 그 뒤의 구문을 건너뛰게 된다.
이때, if문을 continue 뒤에 작성하면 if( i == 20)의 경우 20이 5의 배수이기 때문에 if문이 수행되지 않아 무한 루프를 돌게 되니 유의하자
random 함수는 내장되어 있어서 import random으로 불러올 수 있다
이를 이용하여 숫자 맞추기 게임을 구현하면 다음과 같다
복잡자료형
= 컬렉션 자료형:
여러 개의 요소를 하나로 묶어 사용하는 자료형
- 리스트(list)
- 튜플(tuple)
- 딕셔너리(dictionary)
- 세트(set)
list
리스트명 = [값1, 값2...]
- 여러 개의 데이터를 하나의 이름으로 저장하는 형태
- 인덱스로 접근 가능
ex)
파이썬의 list안에는 다양한 자료형이 한꺼번에 들어갈 수 있으며, list안에 list가 존재할 수 있다
몇 가지의 예시를 더 살펴보면 아래와 같다
이 둘의 출력 형식이 다른 것을 알 수 있는데, 아래 사진의 경우, 리스트의 일부를 슬라이싱 해서 가져와서 리스트로 보여져서 형식이 다르다는 사실을 알 수 있다
splicing을 통한 대입이 가능하다
여기서 유의해야할 점은
지정하는 집합이 모자라는 경우, 인수가 사라지는 것을 확인할 수 있다
다만,
{}인 형태가 아니라 그냥 값을 대입하는 경우하는 Type error가 뜬다
아래와 같이 list를 채울 경우 에러가 나타나게 된다
일반적으로 C언어에서 입력하는 방법대로 하면 에러가 나타난다
리스트 조작 함수
- 리스트 조작 함수는 print 함수 안에 쓸 수 없다
예를 들어, fruit.reverse는 값을 반환하는 함수가 아니라 리스트 내부의 값에 변경사항을 적용하는 함수이기 때문에 리턴값이 없어 None이라고 출력된다
- append()
마지막에 요소 추가
- insert(위치, 값)
해당 인덱스에 값 추가
- pop()
pop(): 제일 뒤의 항목 빼냄
pop(위치): 인덱스에 있는 항목 빼냄
- remove(삭제할 값)
실질적인 값으로 삭제
- sort()
디폴트는 오름차순 정렬
내림차순 정렬: sort(reverse = True)
리스트 적용 내장 함수
여기에서 평균을 계산하고 싶으면 sum/len하면 된다
리스트에 있는 항목을 출력하고 싶으면
이것도 가능하다(파이썬 대단쓰,,,)
이를 이용하여 끝말 있기 게임을 만들면 다음과 같다
오늘의 간단한 후기
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기의 강의 자료 및 수업 내용을 담고 있습니다.