for, while, list, dict, set
for
# for 리스트의 요소들을 하나씩 꺼내쓰는 형태
print("대기번호 : 1")
print("대기번호 : 2")
.
.
print("대기번호 : 4") 를
# for문으로 간략하게 만들면
for waiting_no in [0, 1, 2, 3, 4]:
print("대기번호 : {0}".format(waiting_no))
# range로 범위 지정 가능
for waiting_no in range(1, 6): # 1부터 5까지
print("대기번호 : {0}".format(waiting_no)) -> 대기번호 : 1
대기번호 : 2
대기번호 : 3
대기번호 : 4
대기번호 : 5
# for문 속 continue : 해당하는 것은 반복 멈춤, 그 뒤는 계속 반복 진행
absent = [2, 5] # 결석학생
for student in range(1, 11): # 1 - 10 까지의 학생이 있음
if student in absent: # 학생이 2, 5번이면 반복 안함
continue
print("{0}, 책 읽어봐".format(student))
-> 1, 책 읽어봐 3, 책 읽어봐
-> 4, 책 읽어봐 6, 책 읽어봐
-> 7, 책 읽어봐 8, 책 읽어봐
-> 9, 책 읽어봐 10, 책 읽어봐 # 2, 5번 건너뛰고 진행
# for문 속 break : 즉시 반복문 탈출
no_book = [3]
for student in range(1, 11):
if student in no_book:
break
print("{0}, 책 읽어봐".format(student))
-> 1, 책 읽어봐
-> 2, 책 읽어봐 # 3에서 종료
# 한 줄 for
students = [1, 2, 3, 4, 5]
print(students)
students = [i + 100 for i in students]
print(students) -> [1, 2, 3, 4, 5]
-> [101, 102, 103, 104, 105]
students = ["Iron man", "Thor", "I am groot"]
students = [len(i) for i in students]
print(students) -> [8, 4, 10] # i의 길이 나타냄
while
# while : 어떤 조건을 만족할 때까지 진행
customer = "torr"
index = 5
while index >= 1:
print("{0}, 커피 준비완료. {1}번 남음.".format(customer, index))
index -= 1
if index == 0:
print("커피가 폐기처분되었습니다.") -> torr, 커피 준비완료. 5번 남음.
torr, 커피 준비완료. 4번 남음.
torr, 커피 준비완료. 3번 남음.
torr, 커피 준비완료. 2번 남음.
torr, 커피 준비완료. 1번 남음.
커피가 폐기처분되었습니다.
# 무한 루프, ctrl+c로 멈춤
customer = "iron"
index = 1
while True: # iron이 올때까지 계속 호출, 무한루프
print("{0}, 커피 준비완료. 호출 {1}회".format(customer, index))
index += 1 torr, 커피 준비완료. 호출 1회.
torr, 커피 준비완료. 호출 2회.
.
.
torr, 커피 준비완료. 호출 12324회.
torr, 커피 준비완료. 호출 12325회.
# 조건을 만족하면 멈춤
customer = "torr"
person = "Unknown"
while person != customer: ? # person이 torr가 아니면 계속 진행
print("{0}, 커피 준비완료.".format(customer))
person = input("이름이 어떻게 되세요?") -> torr, 커피 준비완료.
이름이 어떻게 되세요? # 아이언맨
torr, 커피 준비완료.
이름이 어떻게 되세요? # 아이엠 그루트
torr, 커피 준비완료.
이름이 어떻게 되세요? # torr
# 종료
list
a = [5,2,7,3,8]
a.sort()
print(a) -> [2,3,5,7,8] (오름차순 정렬)
a.reverse()
print(a) -> [8,7,5,3,2] (내림차순 정렬)
a.insert(1,8)
print(a) -> [5,8,2,7,3,8] (첫번째에 8을 넣어라)
a.remove(2)
print(a) -> [5,7,3,8] (2를 찾아서 지워라)
print(a.count(2)) -> 1 (2의 개수)
subway = ["유재석", "조세호", "남창희"]
print(subway.index("조세호")) -> 1 # 조세호가 몇번째인지
subway.append("하하") # 리스트에 "하하" 추가
print(subway) -> ['유재석', '조세호', '박명수', '하하']
subway.insert(1, "정형돈") # 인덱스 1 위치에 삽입
print(subway) -> ['유재석', '정형돈', '조세호', '박명수', '하하']
# 뒤에서 부터 하나씩 삭제
print(subway.pop())
print(subway) -> ['유재석', '정형돈', '조세호', '박명수']
print(subway.pop())
print(subway) -> ['유재석', '정형돈', '조세호']
print(subway.pop())
print(subway) -> ['유재석', '정형돈']
subway.append("유재석") #유재석 한 번 더 추가
print(subway) -> ['유재석', '정형돈', '유재석']
print(subway.count("유재석")) -> 2
subway.clear()
print(subway) -> []
dictionary
# 목욕탕에서
cabinet = {3: "재석", 100: "태호"}
print(cabinet[3]) -> 재석 # key 값에 맞는 value 출력
print(cabinet.get(3)) -> 재석
# [] 와 get()의 차이
print(cabinet[5]) -> 정의되지 않은 key 5라서 에러, 종료됨
print(cabinet.get(5)) -> 정의되지 않은 key일 경우 None 반환 후 계속 진행
print(cabinet.get(5, "사용 가능")) -> 사용 가능 # None 대신 사용 가능 반환
# 사전 자료형에 값이 있는지 여부 확인
print(3 in cabinet) -> True
print(5 in cabinet) -> False
# 업데이트 또는 추가
print(cabinet) -> {3: '유재석', 100: '김태호'}
cabinet[3] = "김종국" # key 에 해당하는 값이 있는 경우 업데이트
cabinet[20] = "조세호" # key 에 해당하는 값이 없는 경우 신규 추가
print(cabinet) -> {3: '김종국', 100: '김태호', 20: '조세호'}
# 삭제
del cabinet[3] # key 3 에 해당하는 데이터 삭제
print(cabinet) -> {100: '김태호', 20: '조세호'}
# key만 출력, value만 출력, 쌍으로 출력
print(cabinet.keys()) -> dict_keys([100, 20]
print(cabinet.values()) -> dict_values(['김태호', '조세호'])
print(cabinet.items()) -> dict_items([(100, '김태호'), (20, '조세호')])
# 전체 삭제
cabinet.clear()
print(cabinet) -> {}
set
# set : 집합, 중복 안됨, 순서 없음
my_set = {1, 2, 3, 3, 3} # 중괄호 대신 set() 사용 가능
print(my_set) -> {1, 2, 3} # 중복 안됨
java = {"유재석", "김태호", "양세형"} # 자바 개발자 집합
python = set(["유재석", "박명수"]) # 파이썬 개발자 집합
# 교집합 (java 와 python 을 모두 할 수 있는 개발자)
print(java & python) -> {'유재석'}
print(java.intersection(python)) -> {'유재석'}
# 합집합 (java 또는 python 을 할 수 있는 개발자)
print(java | python) -> {'박명수', '유재석', '김태호', '양세형'}
print(java.union(python)) -> {'박명수', '유재석', '김태호', '양세형'}
# 순서는 매번 달라질 수 있음
# 차집합 (java 는 할 수 있지만 python 은 할 줄 모르는 개발자)
print(java - python) -> {'양세형', '김태호'}
print(java.difference(python)) -> {'양세형', '김태호'}
# python 개발자 추가 (기존 개발자 : 박명수, 유재석)
python.add("김태호")
print(python) -> {'박명수', '유재석', '김태호'}
# java 개발자 삭제 (기존 개발자 : 유재석, 김태호, 양세형)
java.remove("김태호")
print(java) -> {'유재석', '양세형'}
Reference
この問題について(for, while, list, dict, set), 我々は、より多くの情報をここで見つけました https://velog.io/@ilov-/for-whileテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol