파이썬 프로그래밍 : 6강 선택구조 , 7강 반복구조
강의 하루에 5개 들으니 죽을거 같음
이게 파이썬이 아니라 자바였다면 못했을 듯
선택구조
대표적으로 if문:
if 불리언식 : 명령문1 명령문2 |
*else if = elif
불리언식 (true or false) : true => 명령문 1,2, 순차진행 / false => 명령문 실행 안하고 다음 코드로 넘어감
***들여쓰기 반드시 지키면서 작성할 것 !!
*불리언식: 비교연산자 ( > , <, =, !)를 사용하며, True or False 값을 반환하는 식
ex) light = 3 > 6 이런식으로 light 변수에 false 값을 저장 가능(자바와 유사)
*단락평가 ( short-circuit evaluation) :
조건문의 맨 앞이 참이여서 그 문장 전체가 참이나 거짓으로 확정일 경우, 그 뒤의 조건은 안 읽는 것
(메모리 절약 효과)
ex) 3 > 2 || 4 > 6 => 첫 조건에서 참, or조건이니 이미 참이 확정이므로 뒤의 조건은 안 읽고
True로 반환
( 이게 자바와 C와의 다른 차이점이라고 하셨는데... 자바에도 비트연산자만 뒤의 조건까지 다 읽지,
그냥 불리언 연산자는 이거랑 똑같은 걸로 알고 있는데??? )
* 중첩선택구조
다른 언어는 이론 강의만 했었구, 출석수업 시간에 잠깐 간단한 실습정도 했었는데
파이썬은 신설된 강의라 그런지 업그레이드된 방식인 것 같다~~
실습으로 이것 저것
*원의 부피, 겉넓이 구하기 if-else
둘 중 하나 음수면 오류 메세지 반환
1.정상 출력
2. 오류 메세지 반환
여기서 조금 더 변환해봄
*세 숫자에서 가장 큰 수를 찾기*
1. 쉬운 버전
2. 중첩선택구조
프로그래밍 언어를 처음 접하는 사람이면 좀 헷갈릴 듯...
if랑 else 줄 맞추는 거 은근 실수 잦았다;; 흠
여기까지가 6강
반복구조
반복관련 단어: loop, iterate, repeat ** 반드시 암기
구문형식
1. 조건 제어 반복 ( 반복여부를 매번 판단)
while 반복 - 계속 조건 :코드블록 |
자바와 비슷함 다만 많이 놀란게 있는데, 증감식 문장대신 자바에서처럼 count++로 넣어봤더니
.... 파이썬에는 단항증감연산자가 없나봄 ㄷㄷㄷ 와?? 신선해
무튼 1~5, 5번 반복
출력 결과 (광기에 차보임)
-----
또 다른 예시 ~
print 마지막 줄 ! 들여쓰기 안되도록 주의 해야한다
들여쓰기 해버리면 아래 처럼 sum이 10번 반복해서 출력됌
* 구구단 출력하기*
2.계수 제어 반복 (반복횟수를 미리 제시한다) / 리스트랑 연관지어서 공부
for 계수 - 제어 - 변수 in 시퀀스 :코드블록 |
(시퀀스란 리스트같은 형태의 자료형을 말하는 듯? )
*리스트* : 자료형
: 문서화된 값의 집합체를 저장할 수 있는 시퀀스 데이터 타입의 일종이다.
: 순서화된 값의 집합체를 저장할 수 있는 데이터 타입 (참조형 변수 = 리스트 객체)
(이외에도 참조형 자료형으로 세트,투플, 딕셔너리 등이 있다)
* [ 1, 3, "dark sky", 23] 이런식으로 다양한 자료형이 함께 들어갈 수 있다.
* 원소들의 순서를 표현한다 (인덱스번호: **** 0부터 시작 !!!!
* number_list 이런식으로 이름을 짓는다. number_list = [ 1, 2, 3, 4, 5, 6 ]
*인덱스 연산자*
어떻게 원소에 접근할까? => 인덱스연산자 [ , ] 사용
각 원소는 왼쪽부터 인덱스번호가 부여되는데 0부터 시작된다.
ex) number_list = [ 1, 2, 3, 4, 5, 6 ]
number_list[0] = 1
number_list[1] = 2
number_list[2] = 3
**만약 원소들 사이에 규칙성이 있다면? => range 함수를 사용하라!!!
range( a, b, k) => a부터 시작해서 b 보다 작은 값까지 , k씩 증가 시켜서
시퀀스를 생성해준다. (k는 생략시 기본값인 1이 자동으로 지정됌)
ex) range( 10, 31, 5) => [ 10, 15, 20, 25, 30 ]
range( 10 , 20) => [ 10, 11, 12, 13,14,15, 16,17,18, 19]
*zip함수도 이용하라 (리스트에서 여러원소를 빼올 때 !!)
원소1, 원소2 in zip( 리스트1 , 리스트2 )
ex) rad, hei in zip(rad_list, hei_list)
4. 중첩 반복 구조
for 계수 - 제어 - 변수1 in 시퀀스1 : for 계수 -제어- 변수2 in 시퀀스2: 명령블록 |
*Format 함수: 데이터를 양식에 맞춰 형식화해줌
Format( 변경대상 데이터, 형식지정자)
ex) Format("구구단표", ">10s") ><: 정렬방향 10: 필드 폭 s: 문자열이라는 의미 (정수는 d) |
1. 문자열의 경우 (왼쪽정렬이 기본)
문자열인데 오른쪽정렬로 할 경우 (기본으로할거면 기호생략)
Format("구구단표", ">10s") => (000000)구구단표
2.정수: 우측정렬이 기본 (d=정수)
정수인데 왼쪽정렬로 하고 싶은 경우
(1234, "<10d") => 1234000000 /0은 빈공간을 의미한다.
*print 함수의 다른 옵션: end ="" => 줄바꿈 없이 다음줄과 붙어서 출력해라
구구단 만들기로 중첩제어구문 연습
ㅠㅠ 이건 이해를 지금도 몬함... 몰라... 12시반 넘었어 자야해
머리론 대강 이해함