반응형
Jen'_'
Jen's Space
Email
GitHub
전체 방문자
오늘
어제
  • 분류 전체보기 (98)
    • Ansible (4)
      • 우아한앤서블 (4)
    • Cloud (19)
      • AWS (17)
      • GCP (2)
    • DevOps (40)
      • Docker (6)
      • Kubernetes (26)
      • CICD (6)
      • Terraform (2)
    • Language (13)
      • Python (12)
      • Node.js (1)
    • Linux (10)
    • etc. (7)
    • 개인기록 (1)
    • AEWS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 피드백 환영합니다 :)

인기 글

태그

  • vagrant
  • ALB
  • karpenter
  • 쿠버네티스
  • jenkins
  • INGRESS
  • 자격증
  • terraform
  • argocd
  • autoscaling
  • CICD
  • k8s
  • ansible
  • gitops
  • EKS
  • ubuntu
  • Kubernetes
  • 우아하게앤서블
  • AWS
  • Docker

최근 댓글

Jen'_'

Jen's Space

Python 강의 정리 4. 반복문(for문,while문), 딕셔너리
Language/Python

Python 강의 정리 4. 반복문(for문,while문), 딕셔너리

2021. 5. 2. 21:50
반응형

 

for문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
for i in "안녕하세요": # 안녕하세요는 문자열 리스트
    print("-", i)
print()
 
numbers = [267, 104, 3, 44, 56, 890, 99, 400]
for i in numbers:
    if i > 100:
        print("100이상의 수: ", i)
print()
------------------------
(result)
- 안
- 녕
- 하
- 세
- 요
 
100이상의 수:  267
100이상의 수:  104
100이상의 수:  890
100이상의 수:  400
Colored by Color Scripter
cs

 

이중 for문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
list_d=[[1,2,3], [4,5,6,7], [8,9]]
for i in list_d:   # 이중리스트엔 이중for문을 써야한다
    for j in i:
        print(j)
print()        
 
# for문과 if문
for i in numbers:
    if i % 2 == 0:
        print(i, "는 짝수")
    else:
        print(i, "는 홀수")  
----------------
(result)
1
2
3
4
5
6
7
8
9
 
267 는 홀수
104 는 짝수
3 는 홀수
44 는 짝수
56 는 짝수
890 는 짝수
99 는 홀수
400 는 짝수
Colored by Color Scripter
cs

 

범위 함수 range()

  1. range(stop)
    • range(10)은 0,1,2,3,4,5,6,7,8,9 를 생성한다
    • stop에서 마지막 숫자 10은 포함되지 않음
  2. range(start, stop)
    • range(1,11)은 1,2,3,4,5,6,7,8,9,10 를 생성한다
  3. range(start, stop, step)
    • range(1,11,2)은 1,3,5,7,9 를 생성한다

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# range()함수 인자 1개
a = range(10)
print(list(a))
print()
 
# for 숫자 변수 in rage()
array=[273,33,290,98,43]
print(array)
for i in range(len(array)):
    print("{}번째 반복:{}".format(i,array[i]))
print()
 
# range()함수 인자 3개
for i in range(4,-1,-1):
    print("현재 반복 변수:{}".format(i))
---------------
(result)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
[273, 33, 290, 98, 43]
0번째 반복:273
1번째 반복:33
2번째 반복:290
3번째 반복:98
4번째 반복:43
 
현재 반복 변수:4
현재 반복 변수:3
현재 반복 변수:2
현재 반복 변수:1
현재 반복 변수:0
Colored by Color Scripter
cs

 


 

딕셔너리(dict)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
dict_b = {
    "name": "건조 망고",   # key : value 
    "type": "당절임",
    "ingredient": ["망고", "설탕", "색소"],  # value에 리스트가 올 수 있다
    "origin": "필리핀"
}
print("name: ", dict_b["name"])
print("type: ", dict_b["type"])
print("ingredient: ", dict_b["ingredient"])
print("ingredient: ", dict_b["ingredient"][0]) # 망고출력
print("origin: ", dict_b["origin"])
print()
-------------
(result)
name:  건조 망고
type:  당절임
ingredient:  ['망고', '설탕', '색소']
ingredient:  망고
origin:  필리핀
Colored by Color Scripter
cs

 

- 딕셔너리 타입은 immutable한 키(key)와 mutable한 값(value)으로 맵핑되어 있는 순서가 없는 집합이다.

 

 

요소추가

  • 딕셔너리명[key] = value

 

1
2
3
4
5
6
7
8
9
dict_b["name"] = "럭셔리 건조 망고"   # overwrite
print("name: ", dict_b["name"])
 
dict_b["price"] = 10000   # 맨뒤에 추가
print(dict_b)
--------
(result)
name:  럭셔리 건조 망고
{'name': '럭셔리 건조 망고', 'type': '당절임', 'ingredient': ['망고', '설탕', '색소'], 'origin': '필리핀', 'price': 10000}
cs

 

- 요소가 중복되면 overwrite

 

요소 삭제

  • del 딕셔너리명[key]
  • 모두 지우기는 clear()
1
2
3
4
5
del dict_b["origin"]  
print(dict_b)
-----------
(result)
{'name': '럭셔리 건조 망고', 'type': '당절임', 'ingredient': ['망고', '설탕', '색소'], 'price': 10000}
cs

 

 

해당 key가 딕셔너리 안에 있는지 조사하기: in 키워드

- 딕셔너리 안에 존재하면 True를 반환하고, 없으면 False를 반환

 

if "name" in dict_b:
    print(dict_b["name"])
else:
    print("키가 존재하지 않습니다")    
print()

# in 키워드
print("name" in dict_b)
print("type" in dict_b)
print("jen" in dict_b)
-------
(result)
럭셔리 건조 망고

True
True
False

 

key로 value 얻기: get() 함수

# key에 대한 value를 반환
value = dict_b.get("name")
print("값: ", value)

# 존재 하지 않는 키를 입력하면 None 반환
value = dict_b.get("jjjjjj")
print("값: ", value)
------
(result)
값:  럭셔리 건조 망고
값:  None

 

key, value 쌍 얻기: items() 메서드

- 키와 값을 조합하여 쉽게 반복문 작성 할 수 있음

 

dict_a={
    "키a":"값a",
    "키b":"값b",
    "키c":"값c"
}

print("딕셔너리의 items()함수")
dict_a.items()
print(dict_a)
print()

print("items()함수와 반복문")
for key, element in dict_a.items():
    print("dict_a[{}] = {}".format(key,element))
-----------
(result)
딕셔너리의 items()함수
{'키a': '값a', '키b': '값b', '키c': '값c'}

items()함수와 반복문
dict_a[키a] = 값a
dict_a[키b] = 값b
dict_a[키c] = 값c

 

for문과 딕셔너리

# for 키 변수 in 딕셔너리
for key in dict_b: 
    print(key,":",dict_b[key])
print()

# 예제: 리스트 요소가 딕셔너리인 경우이다, 요소를 출력하되 10살처럼, 숫자와 살을 붙여 출력하라
pets = [
    {"name": "해피", "age":"10"},
    {"name": "나비", "age":"2"},
    {"name": "구름", "age":"6"},
    {"name": "보미", "age":"1"},
]
print("*우리동네 애완 동물*")
for i in pets:
    print(i["name"],"{}{}".format(i["age"],"살"))
---------------
(result)
name : 럭셔리 건조 망고
type : 당절임
ingredient : ['망고', '설탕', '색소']
price : 10000

*우리동네 애완 동물*
해피 10살
나비 2살
구름 6살
보미 1살
# 예제: 아래 딕셔너리를 key:value 형식으로 한줄씩 출력하시오
character = {
    "name":"기사",
    "level":12,
    "items":{
        "sword":"불꽃의 검",
        "amor":"불꽃 블레이드"
    },
    "skill":["베기","찌르기","난도질"]
}

for key in character:
    if type(character[key]) is dict:  # vlaue 타입이 딕셔너리인 경우
        for small_key in character[key]:
            print(small_key,":",character[key][small_key])
    elif type(character[key]) is list:  # value 타입이 리스트인 경우
        for item in character[key]:
            print(key,":",item)
    else:   # value
        print(key,":",character[key]) 
------------
(result)
name : 기사
level : 12
sword : 불꽃의 검
amor : 불꽃 블레이드
skill : 베기
skill : 찌르기
skill : 난도질

 

 

 

자료형들의 차이점

 

리스트와 딕셔너리의 차이점

리스트 인덱스를 기반으로 값을 저장 리스트명 = [] 리스트명[index]
딕셔너리 키를 기반으로 값을 저장 딕셔너리명 = {} 딕셔너리명[key]

while 문

# while 반복문(유닉스타임 사용)
import time
num=0
target_tick = time.time()+5
while time.time() < target_tick:
    num +=1
print("5초 동안 {}번 반복했습니다".format(num)) # 5초동안 반복문 num번 돌림   

# 예제: 1+2+3+4+5+6+.... 을 반복하여 10000을 넘기는 값을 구하시오 
limit = 10000
i = 1
sum = 0
while sum < limit:
    sum += i
    i += 1

print("{}를 더할 때 {}을 넘으며 그때의 값은 {}입니다".format(i, limit, sum))    
-------------
(result)
5초 동안 36463689번 반복했습니다
142를 더할 때 10000을 넘으며 그때의 값은 10011입니다
반응형
저작자표시 (새창열림)

'Language > Python' 카테고리의 다른 글

Python 강의 정리 6. 함수  (0) 2021.05.03
Python 강의 정리 5. 리스트 뒤집기, enumerate() 함수  (0) 2021.05.02
Python 강의 정리 3. 리스트  (0) 2021.05.02
Python 강의 정리 2. continue, pass, break 차이점  (0) 2021.05.02
Python 강의 정리 1. 입출력, 조건문(if문)  (0) 2021.05.02
    'Language/Python' 카테고리의 다른 글
    • Python 강의 정리 6. 함수
    • Python 강의 정리 5. 리스트 뒤집기, enumerate() 함수
    • Python 강의 정리 3. 리스트
    • Python 강의 정리 2. continue, pass, break 차이점
    Jen'_'
    Jen'_'
    DevOps 엔지니어 Jen의 기술 블로그 / 이메일: jenakim47@gmail.com

    티스토리툴바