Python : For 문

Jinsung·2021년 9월 4일
0

python

목록 보기
12/25
post-thumbnail
post-custom-banner

For 문

기본 구조

for 변수 in 컨테이너(list + tuple + dictionary):
    수행할 문장1
    수행할 문장2
    ...

list + for문

>>> my_for = [1, 2, 3] 
>>> for x in my_for: ## list의 my_for 대입
	print(x)     ## 출력

	
1
2
3

tuple + for 문

>>> my_for = [(1,2), (3,4), (5,6)]
>>> for (one, two) in my_for:
	print(one + two)

	
3
7
11

dictionary + for 문

>>> my_for = {'학생1' : 50, '학생2' : 60, '학생3' : 70}
>>> for key, value in my_for:  ## 함수를 안사용하니 error 발생
	print(key, value)
    
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    for key, value in my_for():
TypeError: 'dict' object is not callable

>>> for key, value in my_for.items():
	print(key, value)

	
학생1 50
학생2 60
학생3 70

>>> for key in my_for.keys():
	print(key, end=' ')

	
학생1 학생2 학생3 

>>> for value in my_for.values():
	print(value, end=' ')

	
50 60 70

for 문에 자주 사용되는 함수

  • continue

    특정 조건에서만 코드를 실행하지 않고 다음으로 이동하고 싶을 때

    특징
  1. 반복문에서만 사용 가능
  2. 분기문이다.
  3. 자주 사용시 프로그램 흐름을 알아보기 힘들다.
ages = [17, 25, 5, 35]

num = 0

for age in ages:
    num = num+1
    if age < 20: ## 20세 이하 만
        continue ## 조건에 맞는걸 제외
    print("%d번 사람 성인 입니다." % num)
    
= RESTART: C:/Users/oxlip/AppData/Local/Programs/Python/Python39/for_continue.py
2번 사람 성인 입니다.
4번 사람 성인 입니다.
  • range

    range 함수는 연속적인 숫자 객체를 만들어서 반환해주는 함수

>>> my_range = range(5)
>>> print(type(my_range))
<class 'range'>
>>> print(my_range)
range(0, 5)
>>> for val in my_range:
	print(val)

	
0
1
2
3
4

인수 개수에 따른 사용법

  • range(갯수) : 0부터 시작. n개 값 생성
  • range(시작, 끝) : 끝은 포함 안됨
  • range(시작, 끝, 증가분) : '스텝'이라고 함. 음수도 가능
>>> for val in range(5):
	print(val)

	
0
1
2
3
4
>>> for val in range(3,6):
	print(val)

	
3
4
5
>>> for val in range(1, 11, 4): # 1에서 11전까지 4씩 증가
	print(val)

	
1
5
9

대표적으로 구구단

for문을 2개 이상 사용할때

for 항목1 in 반복가능객체1 (if 조건문1)
for 항목2 in 반복가능객체2 (if 조건문2)
for 항목3 in 반복가능객체3 (if 조건문3)
...
...

for x in range(2,10):
   print("-"+str(x)+"단-")
   for y in range(1, 10):
       print(x, "X", y, "=", x*y)
print("\n")

= RESTART: C:/Users/oxlip/AppData/Local/Programs/Python/Python39/for_continue.py
-2단-
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18
-3단-
3 X 1 = 3
3 X 2 = 6
3 X 3 = 9
3 X 4 = 12
3 X 5 = 15
3 X 6 = 18
3 X 7 = 21
3 X 8 = 24
3 X 9 = 27
.
.
.

응용

#응용
#출석번호가 1 2 3 4, 앞에 100을 붙이기로 함 ->100, 101, 102, 103

students = [1,2,3,4,5]
print(students)
students = [i+100 for i in students] #이런식으로 for문을 선언할수있다
print(students)

#학생 이름을 길이로 변환
students = ["Iron man", "Thor", "black widow"]
students = [len(i) for i in students]
print(students)

#학생 이름을 대문자로 변환
students = ["Iron man", "Thor", "black widow"]
students = [i.upper() for i in students]
print(students)
  
# 출력값
[1, 2, 3, 4, 5]
[101, 102, 103, 104, 105]
[8, 4, 11]
['IRON MAN', 'THOR', 'BLACK WIDOW']
post-custom-banner

0개의 댓글