파이썬 반복문과 리스트

2024. 12. 1. 19:55파이썬(python) 강의 메모 및 실습

1. 반복문

1-1)while문

- 이터러블 객체{ 리스트, 튜플, 딕셔너리 등등 }이 아닌 반복을 할때 주로 사용한다.

-몇번을 반복할지 모를때 사용한다.

1-2)for문

-이터러블 객체의 요소를 하나씩 가져와서 반복적인 작업을 수행할때 사용한다.

 

1)while문

# while문 만들기
select = int(input("숫자를 입력하세요(양수): "))
while select >=0:
  print(select)
  select -= 2
  -->
#숫자를 입력하세요(양수): 10
#10
#8
#6
#4
#2
#0

 

1-1)반복문 안에서 탈출하는 방법

# 반복문 안에서 탈출하는 방법
# break
# while문이나 for 문안에서 사용되는 문법으로,ㅇ
# 코드 실행 중 break를 만나면,
# 그 즉시 가장 가까운 반복문을 탈출한다.
while(True):
  input_text = input("아무거나 입력하세요")
  # 입력된 값이 없으면 탈출
  if input_text:
    print(input_text)
  else:
    print("반복문을 탈출합니다.")
    break
 -->
#아무거나 입력하세요dsadsa
#dsadsa
#아무거나 입력하세요홍길동
#홍길동
#아무거나 입력하세요
#반복문을 탈출합니다.

 

1-2) 반복문 안에서 현재 코드 실행을 건너뛰고 다음 반복으로 이동하는 방법

# 반복문 안에서 현재 코드 실행을 건너뛰고 다음 반복으로 이동하는 방법
# 변수 선언
count = 0
# 무한 반복
while(True):
    count += 1
    #반복한 횟수가 짝수(또는 0)이면
    if count % 2 == 0:
      #반복 횟수 출력
      print(count)
    else:
      #반복한 횟수가 홀수이면, 다음 반복으로 이동
      continue
  # while문 전체 탈출 조건문
  # 반복횟수가 10초과이면
    if count > 2:
      #반복문 탈출
      break
 -->
#2
#4

 

2) for 문

# for문 만들기
# for 임시변수 in 이터러블객체:
for e in [1, 2, 3, 4]:
  print(e)
-->
#1
#2
#3
#4

 

2-1) 출력 옵션을 변경해서 반복문을 사용해보자

# 출력 옵션을 변경해서 반복문을 사용해보자
li = [1, 2, 4, 5, 7, 7]
print("[", end="")  #end는 줄바꿈
for e in li:
  # print(f"{e}")
  print(f"{e}", end=", ")
print("]", end="")
-->
#[1, 2, 4, 5, 7, 7, ]

 

2-2) for문에서 숫자 시퀀스로 요소를 가져오는 방법

# for문에서 숫자 시퀀스로 요소를 가져오는 방법
# range(마지막값+1)
# 0부터 전달된 숫자값-1까지의 숫자배열을 반환
for e in range(10):  #0~9까지의 값을 가지고 있다
  print(e)
-->
#0
#range(0, 3)

 

2-3) range 함수에 두개의 값(start, end)을 던져주는 방법

# range 함수에 두개의 값(start, end)을 던져주는 방법
# start 부터 end~-1까지의 값을 생성해주는 함수이다.
for e in range(1, 5):
  print(e)
-->
#1
#2
#3
#4

 

2-4) 

for e in range(1, 10, 2):  #1부터 9까지 숫자를 반복하는
  #2씩 증가하는 등차수열
  print(e)
-->
#1
#3
#5
#7
#9

 

2-5) list 형태의 반복문

li2 = list(range(1, 10))
print(li2[5])
-->
#5

 

2. 리스트

여러개의 값을 담는 자료구조

- 리스트(list)

- 튜플(tuple)

- 셋(set)

-딕셔너리(dictionary)

-리스트(list)

 

1)리스트는 가장 많이 사용하는 자료구조로 저장되는 순서를 기억한다. -->순서를 기억하기 때문에

요소에 접근할때 순서에 따른 번호(index)로 해당값(요소)에 접근한다.

 -생성방법 : 대괄호[ ]로 감싸고, 요소와 요소의 구분은 반점(,)으로 구분한다.

  여러가지 종류의 데이터를 저장할 수 있다.

 

1) 리스트 생성

#리스트 생성
fruits = ["사과", "바나나", "배", "감"]

#리스트 요소에의 접근
print(fruits[1])   #바나나

 

1-2) 리스트의 요소에 값 저장하기

#리스트의 요소에 값 저장하기
fruits[3] = "포도"
print(fruits)  #['사과', '바나나', '배', '포도']

 

1-3)리스트의 요소를 맨뒤에 추가

#리스트에 요소를  맨뒤에 추가
fruits.append("키위")
print(fruits)  # ['사과', '바나나', '배', '포도', '키위']

 

1-4) 이스트 요소의 갯수(길이) 가져오기

#리스트 요소의 개수(길이) 가져오기
lenght= len(fruits)  #int
print(lenght)  #5

 

2. 튜플(tuple)

- 순서가 있고 -> 인덱스 접근

- 기본적으로 리스트와 비슷하다.

- 하지만 ★값을 변경 할 수 없다. (immutable)

- 값을 추가하거나 삭제 변경 할 수가 없다.

- 튜플 생성 방법 : 소괄호()로 여러 값을 반점으로 구분하여 나열하고 감싼다.

 

2-1) 튜플 생성

#튜플 생성
tuple_nums = (3, 10, 5, 21)
print(tuple_nums[0])   #3

 

2-2) 튜플 값을 변경 할수 없는 이유

tuple_nums[3]= 15 #값을 변경할 수 없어서 오류가 발생한다.
print(tuple_nums
-->
#TypeError                                 Traceback (most recent call last)
#<ipython-input-20-2fcf305a10d4> in <cell line: 1>()
#----> 1 tuple_nums[3]= 15 #값을 변경할 수 없어서 오류가 발생한다.
      2 print(tuple_nums)

#TypeError: 'tuple' object does not support item assignment

 

3. 딕셔너리(Dictionary)

- 키-값 한쌍으로 값이 저장된다.

- 키는 중복이 불가능하다. + 값은 중복이 가능하다.

- 딕셔너리 생성방법 : { key 값 : value값, key값: value값,,,... }

 

3-1) 딕셔너리 생성

# 딕셔너리 생성
dict_infos = {
    "name": "홍길동",
    "age" : 31,
    "gemder": "남자"
}

#딕셔너리 값에의 접근
print(dict_infos["name"]) # 홍길동

 

3-2) 딕셔너리 요소의 추가/수정

# 딕셔너리 요소의 추가/수정
dict_infos["job"] = "개발자"
print(dict_infos) 
#{'name': '홍길동', 'age': 31, 'gemder': '남자', 'job': '개발자'}

 

3-3) 딕셔너리의 요소 수정

# 딕셔너리의 요소 수정
dict_infos["age"] = 40
print(dict_infos)
# {'name': '홍길동', 'age': 40, 'gemder': '남자', 'job': '개발자'}

 

3-4) 딕셔너리의 키값들의 목록

# 딕셔너리의 키값들의 목록
keys_list = list(dict_infos.keys())
print(keys_list)
# ['name', 'age', 'gemder', 'job']

 

3-5) 딕셔너리의 value 값들의 목록

# 딕셔너리의 value 값들의 목록
val_list = list(dict_infos.values())
print(val_list)
#['홍길동', 40, '남자', '개발자']

 

4. 셋(set)

- 중복되지않은 요소들의 집합을 저장하는 자료구조

- 순서가 없음 -> 인덱스로 접근 불가

- 중복된 요소를 허용하지 않음

- 내용의 변경은 가능

       셋 생성 방법 : 중괄호{ } 로 표현

- 셋은 주로 중복을 제거하기 위해 주로 쓰인다.

 

4-1)셋 생성

# 셋 생성
names = {"홍길동", "김길동", "고희동", "김철수"}
print(names)  # {'김길동', '김철수', '고희동', '홍길동'}

 

4-2) 셋에 요소 추가(기존에 있던 값을 추가)

# 셋에 요소 추가(기존에 있던 값을 추가)
#names.add("홍길동") #변화 없음

# 셋에 요소추가(기존에 없던 값을 추가)
names.add("고길동") # 셋 중간에 값이 추가됨 ->순서가 없음

print(names)
#{'홍길동', '김길동', '김철수', '고길동', '고희동'}

 

4-3) 리스트에 담긴 중복된 값을 제거하기 위한 셋으로의 형변환

# 리스트에 담긴 중복된 값을 제거하기 위한
# 셋으로의 형변환
dupl_vals = [1, 1, 3, 5, 3, 6, 6, 7, 7, 10]
# 셋으로 변환하여 중복된 값을 제거해보자
rm_dupl = set(dupl_vals)
print(rm_dupl) # {1, 3, 5, 6, 7, 10}

 

4-4)셋의 요소 제거

# 셋의 요소 제거
set_values = {"apple", "banana", "kiwi", "watermelon"}
set_values.remove("banana")
print(set_values)
# {'kiwi', 'watermelon', 'apple'}

 

5-1) 리스트 실습

# 빈 리스트에 값을 여러 개 추가하고,(3, "홍", True, 3+3)
# 인덱스를 이용해서 0번째의 요소와 3번째의 요소를 더한
# 결과를 변수에 담은 후 출력해보자
list_vals = list()
list_vals = [3, "홍", True, 3+3]

result =list_vals[0] + list_vals[3]
print(result) #9

 

5-2)빈 리스트에 담은후 출력해보자

# 빈 리스트에 값을 여러 개 추가하고,(3, "홍", True, 3+3)
# 인덱스를 이용해서 0번째의 요소와 3번째의 요소를 더한
# 결과를 변수에 담은 후 출력해보자
list_vals = list()
list_vals.extend([3, "홍", True, 3+3])
print(list_vals)
# [3, '홍', True, 6]

 

5-3) 빈 리스트에 값을 여러개 추가하고 변수에 담은 후 출력해보자

# 빈 리스트에 값을 여러 개 추가하고,(3, "홍", True, 3+3)
# 인덱스를 이용해서 0번째의 요소와 3번째의 요소를 더한
# 결과를 변수에 담은 후 출력해보자
# list_vals = [3, "홍", True, 3+3]
list_vals = list()
list_vals.append(3)
list_vals.append("홍")
list_vals.append(True)
list_vals.append(3+3)
print(list_vals)
# [3, '홍', True, 6]

 

5-4) 딕셔너리 심화학습

# 딕셔너리 심화 함수(기능)
# 키를 이용해 값을 가져오는데,
# 만약 키가 없을 경우, default 값을 설정하는 방법
dict_info = {
    "name" : "홍길동",
    "age" : 31,
}

# 값을 가져오는 방법
dict_info.get("name", "이름없음")  # name 키가 없기 때문에 그 키 값을 들고온다.
dict_info.get("gender", "성별미입력") #gender 키가 없기 때문에 default값이 출력된다.

#홈 엔드 키 블록 복사
# shift + home
# shoft + end

-->
#'성별미입력'
728x90
LIST

'파이썬(python) 강의 메모 및 실습' 카테고리의 다른 글

파이썬 클래스와 메서드  (2) 2024.12.01
파이썬-함수  (0) 2024.12.01
파이썬 제어문_조건문  (0) 2024.12.01
파이썬 형변환  (0) 2024.12.01
파이썬 연산자와 형변환  (0) 2024.11.26