러너효방

Python Chapter04 본문

학습노트

Python Chapter04

방효방 2023. 10. 19. 15:30

교재 : 멘토씨리즈 파이썬

while문의 중첩

while문의 내부에 또다른 while 문이 나타나는 것을 while문의 중첩이라고 한다.반복해서 처리해야하는 대상이 2개 이상이면 while문의 중첩이 필요하다.

예제1) 총 5일 동안 하루에 3시간씩 수업을 한다.


예제2) 구구단 2~9단까지 출력


예제3)


예제4) 1부터 100사이의 모든 정수 중에서 7의 배수만 출력하는 프로그램을 구현하세요


예제5)


컬렉션(39p)

‘모음’이라는 뜻으로 파이썬에서는 여러값을 묶어서 관리하는 자료형입니다.

  • 리스트(list)
    • 추가, 수정, 삭제가 언제나 가능
    • append - 첫번째 값을 지움, insert(인덱스, 값)
    • pop(인덱스) - 인덱스를 쓰지 않으면 맨 뒤에 값을 지움 a =[1,2,3]
  • 튜플(tupe)
    • 저장된 값을 변경할 수 없는 리스트
    • 프로그램이 실행되는 동안에 값이 변경되면 안되는 경우에 사용
    • 튜플은 리스트에 비해 적은 메모리를 필요로 하고 속도가 빠르다는 장점
    • 생성되고 나면 변경 불가능
    • t=(1,2,3) / t=(1,) - 마지막에 따움표 필수
  • 세트(set)
    • 수학의 집합 개념을 구현한 자료형입니다.
    • 저장된 값들은 순서가 없기 때문에 인덱싱과 슬라이싱이 불가능
    • 중복 저장이 불가능 하다는 특징을 활용해 중복 제거용으로 사용하거나 교집합, 합집합, 차집합과 같은 집합 개념이 필요한 경우 사용가능
      1. 저장되는 순서가 없다.
      2. 중복되는 값을 저장할 수 없다.
    • s={1,2,3}
  • 딕셔너리(dict)
    • key-value가 쌍으로 존대
    • value는 수정이 가증하지만 key는 수정X
    • 순서가 없다.
    • Value는 중복이 가능하다 key는 중복될 수 없다.
    • 키와 값으로 관리를 합니다. / a={’age’:25}d = dict();print(d[key1] > Value1(출력되었을때)print(d.get(key4))
    • None(4값을 안나왔을 때 None으로 처리)
    • 딕셔너리명.get(키)
    • 딕셔너리명[key]
    • d={key1:value1, key2:value2, key3:value3}
    딕서너리명[key] VS 딕셔너리명.get(키)
  • 키가 없을 경우 전자 key error 후자는 None 반환
  • 딕셔너리 값을 추가하는 법딕셔너리명[키 이름] = value
  • key - value 쌍으로 삽입을 해야한다.
  • 수정

딕셔너리명[존재하는 키 이름] = value값

삭제

key - value가 쌍으로 삭제

del 딕셔너리명[키값]

del 딕셔너리명 > 딕셔너리 전체삭제

리스트

리스트는 여러 값을 저장할 때 가장 많이 사용하는 자료형입니다.

저장하고자 하는 값들의 자료형(int, float, str)들이 서로 다르더라도

하나의 리스트에 저장할 수 있습니다.

1) 리스트의 인덱싱

리스트는 저장된 요소들마다 고유 변호인 인덱스(index)를 부여하여 순서대로 관리할 수 있습니다.

li = list() > 비어있는 리스트를 미리 생성

li = [100,3.14,’Hello’] / 0, 1, 2 순서대로 진행 프로그램은 0번부터 읽는다

index 0 1 2

print(li[0]) > 100출력

2) 리스트의 슬라이싱

리스트의 일부요소만 이용하고자 하는 경우 슬라이싱을 활용 할 수 있다.

예제) 시작 인덱스 이상 종료 인덱스 미만을 추출


3) 리스트의 요소 추가와 삭제

리스트에 새로운 요소를 추가할 때는 append()와 insert() 메서드(함수)를 사용할 수 있다.

기존 요소를 삭제할 때는 pop()메서드를 사용할 수 있다.

예제)


.append(100) > 맨뒤에 100 추가

.insert(0,90) > 0번자리(넣고싶은 자리에)에 90 추가

예제)


scores.pop() / 마지막 요소를 제거합니다.

scores.pop(index) / 해당하는 index 번호의 값을 제거


튜플

저장된 값을 변경할 수 없는 리스트

프로그램이 실행되는 동안 값이 변경되면 안되는 경우에 사용

튜플은 리스트에 비해 적은 메모리를 필요로 하고, 속도가 빠르다는 장점이 있습니다.

t = (값1, 값2…)

t = tuple()

t=(값1,)값을 1개만 보관하는 경우 값과 콤마를 반드시 함께 작성해야 합니다.

그렇지 않으면 튜플이 아니라 그냥 값으로 인식되기 때문입니다.


세트(set)

수학의 집합 개념을 구현한 자료형입니다.

저장된 값들은 순서가 없기 때문에 인덱싱, 슬라이싱이 불가능합니다.

대신 값의 중복저장이 불가능 하다는 특징을 활용해 중복제거용으로 사용할 수 있습니다.

s={1,2,3}

s=set()


딕셔너리(dict) - 45p

사전 처럼 단어와 단어의 의미로 구성이 되어있습니다.

키(key)와 값(value)로 이루어져 있습니다.

dict = {키1:값1, 키2:값2,…}

딕셔너리는 인덱스가 존재하지 않는 대신 키를 인덱스 처럼 활용합니다.


예제) 내용추가


딕셔너리에 추가하는 법

dict[’c’]=’carrot’

삭제하는법

딕셔너리명.pop(key)


for문 - 116p

원하는 횟수만큼 명령을 반복하는 문법

whil문 VS for문 차이점

while 조건이 참인 동안은 계속 반복작업 가능

for 횟수가 정해져 있는 반복을 할 때 사용

구조

for 변수 in 반복가능객체: ( 리스트, range())

반복실행할 명령

반복 가능 객체와 for문을 사용하면 몇 번 반복할 것인지, 어떤 범위의 값을 사용할 것인지를

쉽게 파악할 수 있다.

시퀀스와 for문 - 119p ~ 120p


예제) 비밀번호 생성하기


영문과 숫자가 들어가야 “사용 가능한 비밀번호 입니다.”로 뜹니다.

둘중 하나를 쓰지 않으면 “불가능한 비밀번호 입니다” 라고 뜹니다.

1) for문과 리스트

for 요소 in[리스트]:

반복실행할 명령


2) 리스트 내포

리스트 = [표현식 for 변수 in 반복가능객체]

3) for문과 range()함수

range()함수는 정수 범위를 만들어 낼 때 유용한 함수입니다.

for문과 range()함수를 함께 사용하면 개발자가 원하는 범위의 값을 쉽게 생성할 수 있습니다.

range(초기값, 종료값, 증감값)

  1. 초기값부터 종료값 이전까지 숫자(n)들의 컬렉션을 만듭니다.
  2. (초기값 <=n 종료값)
  3. 초기값을 생략하면 0부터 시작을 합니다.
  4. 종료값은 생략할 수 없습니다.
  5. 증감값을 생략하면 자동으로 1씩 증가합니다.

예제) 4단 출력


예제) 로또 랜덤 생성기