스터디/혼자공부하는파이썬
chapter04. 반복문
냠냠쿠
2024. 4. 15. 19:00
728x90
1. 리스트 선언하고 요소에 접근하기
list_a = [1, 2, 3, 4, "ㅎㅇ", 2, "ㅇㅇ", True, False]
#특정요소 변경
list_a[0] = "수정"
list_a
print()
#음수를 넣어 뒤에서 부터 요소 선택
list_a[-1] = "또 수정"
list_a
#리스트 접근연산자 이중 사용
list_a[0][0]
2. 리스트 안에 리스트 사용
list_a = [[1,2,3],[4,5,6],[7,8,9]]
print(list_a[1])
print(list_a[1][2])
3. 리스트 연산 ( 연결 : + / 반복 : * )
list_a = [1,2,3]
list_b = [4,5,6]
print(list_a + list_b)
#길이 구하기
print(len(list_a))
4. 리스트 요소 추가 : appent(), inert()
list_a = [1,2,3]
#리스트 뒤에 요소 추가
list_a.append(4)
print(list_a)
#리스트 중간에 요소 추가
list_a.insert(0,"하이")
print(list_a)
5. 리스트 요소 제거 : del, pop(), clear()
list_a = [0,1,2,3,4]
del list_a[1]
print(list_a)
print()
list_a.pop(1)
print(list_a)
print()
# 1을 기준으로 왼쪽 모두 제거
del list_a[:1]
print(list_a)
# 모두제거
list_a.clear()
print(list_a)
6. 리스트 내부에 있는지 확인 : in, not in
list_a = [1,2,3,4]
print(100 in list_a)
print(1 in list_a)
7. for 반복문과 중첩반복
for i in range(4):
print("반복문")
list_a = [1,2,3,4,5]
for element in list_a:
print(element)
list_a = [[1,2,3],[4,5,6]]
for items in list_a:
for item in items:
print(items)
8. 전개연산자
a = [1,2,3,4,]
b = [*a, *a]
print(b)
9. 딕셔너리
- 키를 기반으로 값을 저장하는 것
dic_a = {"name":"홍길동",
"age":30}
print(dic_a)
print(dic_a["name"])
dic_b = {"좋아하는것" : ["뒹굴거리기", "잠자기","코딩하기"],
"싫어하는것" : ["출근하기","야근하기"]}
print(dic_b["좋아하는것"])
print(dic_b["좋아하는것"][0])
#값 추가
dic_b["좋아하는것"] = ["뒹굴거리기", "잠자기","코딩하기","강아지"]
print(dic_b["좋아하는것"])
dic_b["좋아하는것"] = ["뒹굴거리기", "잠자기","코딩하기","고양이"]
print(dic_b["좋아하는것"])
#값 삭제
del dic_b["싫어하는것"]
print(dic_b)
10. 딕셔너리 내부에 키 있는지 확인
dic_b = {"좋아하는것" : ["뒹굴거리기", "잠자기","코딩하기"],
"싫어하는것" : ["출근하기","야근하기"]}
key ="좋아하는것"
#내부에 키가 있는지 확인
if key in dic_b:
print("키있음")
print(dic_b[key])
else:
print("키 없음")
print(dic_b.get("존재하지않는 키"))
print(dic_b.get("싫어하는것"))
for key in dic_b:
print(key, ":", dic_b[key])
11. 범위 자료형과 while 반복문
list(range(5))
list(range(0,6))
list(range(0,6,2))
- range(0,10)을 하는경우 10은 포함되지 않는다. (뒤에 입력한 숫자를 포함하지 않는다.)
만약 10을 반드시 포함해야하는 것을 강조하고싶을 땐
list(range(0,10+1))
for i in range(5):
print(str(i)+"=반복변수")
print()
for i in range(0, 10, 3):
print(str(i)+"=반복변수")
#역반복문
for i in range(4, 0-1, -1):
print("변수:{}".format(i))
12. 중첩반복문으로 별찍기
output =""
for i in range(1, 15):
for j in range(14, i, -1):
output += ' '
for k in range(0, 2*i-1):
output += '*'
output += '\n'
print(output)
13. while
while True:
print(".", end="")
i=0
while i<10:
print("{}번째 반복입니다".format(i))
i += 1
#리스트 내부에 요소가 있는 동안 while
list_1 = [1,2,1,2]
value=2
while value in list_1:
list_1.remove(value)
print(list_1)
#5초동안 반복
import time
number = 0
target_tick = time.time() +5
while time.time() < target_tick:
number +=1
print("5초동안 {}번 반복".format(number))
numbers = [1,2,3,4,5,6,7]
print(min(numbers))
print(max(numbers))
print(sum(numbers))
numbers = [1,2,3,4,5,6,7]
print(min(numbers))
print(max(numbers))
print(sum(numbers))
#함수 뒤집기
list_reversed = reversed(numbers)
print(list_reversed)
for i in reversed(numbers):
print(i)
- enumerate()함수와 반복문 조합하기
list_1 = [1,2,3,4,5]
i=0
for item in list_1:
print("{}번째 요소는 {}입니다".format(i, item))
i+=1
print()
for i in range(len(list_1)):
print("{}번째 요소는 {}입니다".format(i, list_1[i]))
- 딕셔너리의 items()함수와 반복문 조합하기
dic_1 = {
"A키" : "값A",
"B키" : "값B",
"C키" : "값C"
}
for key, element in dic_1.items():
print("dic_1[{}]={}".format(key, element))
- 반복문을 이용하여 리스트 재조합 (리스트 내포)
리스트이름 = [표현식 for 반복자 in 반복할 수 있는 것]
리스트이름 = [ 표현식 for 반복자 in 반복할 수 있는 것 if 조건문]
array = []
for i in range(0, 20, 2):
array.append(i*i)
print(array)
- 구문 내부에 여러 줄 문자열을 사용하게되면 예상치 못한 들여쓰기가 발생하여 에러발생 해결방법은 아래와 같다.
test = (
"테스트입니다"
"하나로 연결하는"
"테스트"
)
print("test:", test)
print("type(test):", type(test))
number = int(input("정수입력>>"))
if number%2==0:
print((
"입력한 문자열은{}입니다\n"
"{}은 짝수입니다"
).format(number,number))
else:
print((
"입력한 문자열은{}입니다\n"
"{}은 홀수입니다"
).format(number,number))
print("::".join(['1','2','3','4']))
number = int(input("정수입력>>"))
if number%2==0:
print("\n".join([
"입력한 문자열은{}입니다.",
"{}은 짝수입니다"]).format(number,number))
else:
print("\n".join([
"입력한 문자열은{}입니다.",
"{}은 짝수입니다"]).format(number,number))
14. 이터레이터
- 이터러블 : 반복할 수 있는 것
- 이터레이터 : next()함수를 사용하여 하나하나 꺼낼 수 있는 요소
728x90