겉바속촉

[PYTHON] 파이썬_루프 코드 반복 (리스트, 문자열, 수) 본문

IT 일기 (상반기)/PYTHON

[PYTHON] 파이썬_루프 코드 반복 (리스트, 문자열, 수)

겉바속촉 2021. 1. 5. 15:22
728x90
반응형

 

안녕하세요

겉바속촉입니다

!^^!

 

 

!!파이썬 시작하기!!

 

 

 

이번에는 루프 코드에 대해서

알아보도록 하겠습니다

 

 

 

 

 

 


 

 

 

루프 코드

 

 

리스트 내 항목 처리

 

  • for variable in list
  • variable 에  list 안의 항목들이 하나씩 다 들어가며 루핑되는 것

 

 

 

문자열 내 항목 처리

 

  • for variable in str
  • variable 에 str 의 글자 하나하나를 넣어가며 루핑되는 것

 

 

 

 

수 범위 순회

 

  • range(stop)  ->  range object
  • range(start, stop[, step]) -> range object  => 0부터 시작해서 stop 바로 전 정수까지의 순열 반환

 

range(3) = range(0, 3) = 0부터 3 전까지 = 0, 1, 2

 

list로 range를 받아올게요. 그래서 대괄호 안으로 0, 1, 2 가 들어가쥬?

 

다음과 같이 바로 넣어도 ok

 

 

range에 3가지를 입력하면 맨 뒤의 수가 의미하는 바는 step!!

range(1, 10, 2) = 1부터 10전까지 2씩 차이나도록 출력

 

 

range를 활용해서 for 루프 돌리는 것도 가능합니다:)

 

 

 

인덱스로 리스트 처리

 

 

리스트 내 모든 값을 두 배로 변경

 

values에 리스트 1,3,5,7,9를 넣었습니다

그리고 for ~ in~ 구조에 len함수 사용해서 0부터 4까지 범위를 설정했어요:)

values[0] *2 부터 values[4] *2 까지 출력이 되는 거에요

 

 

다음과 같이 해줘도 동일합니다

리스트로 출력!!

 

 

 

 

이번에는 men과 weights를 설정

 

원하는 출력값

 

반복문 작성

 

for 루프를 만드는 데 

len(men) 으로 3을 만들고

range(len(men)) 으로 0,1,2 를 만듭니다

그럼 출력문을 짜주면 되겠죠:)

 

짜잔!!

 

 

 

루프 안에 중첩된 루프

 

 

문제1) 1부터 n 까지 곱셈표 출력

 

목표

  1 2 3 4 5
1 1 2 3 4 5
2 2 4 6 8 10
3 3 6 9 12 15
4 4 8 12 16 20
5 5 10 15 20 25

 

코드

# 가로 세로 표에 포함되는 수 (1 ~ 5)
numbers = list(range(1,6))

# 표의 가로 헤더 출력 ( 1 2 3 4 5 )
for i in numbers:
    print('\t' + str(i), end='')

# 다음 줄로 출력을 넘김
print()

# 각 행 번호와 그 행의 내용을 출력
for i in numbers:   #행을 제어
    print(i, end='')
    for j in numbers:
        print('\t' + str(i * j), end='')
    print()

 

 

일반화

def print_table(n: int) -> None:

# 가로 세로 표에 포함되는 수 (1 ~ 5)
numbers = list(range(1, n + 1))

# 표의 가로 헤더 출력 ( 1 2 3 4 5 )
for i in numbers:
    print('\t' + str(i), end='')

# 다음 줄로 출력을 넘김
print()

# 각 행 번호와 그 행의 내용을 출력
for i in numbers:   #행을 제어
    print(i, end='')
    for j in numbers:
        print('\t' + str(i * j), end='')
    print()


num = input('숫자를 입력하세요:')
print_table(int(num))

 

 

 

 

 

 

 

문제 2) 가변 리스트 (안쪽 리스트의 길이가 서로 다른 중첩 리스트) 순회

 

목표는 다음 시간들을 촤르륵 출력해내기

drinking_times_by_day = [["9:02", "10:17", "13:52", "18:23", "21:31"],
                          ["8:45", "12:44", "14:52", "22:17"],
                          ["8:55", "11:11", "12:34", "13:46", "15:52", "17:08", "21:15"],
                          ["9:15", "11:44", "16:28"],
                          ["10:01", "13:33", "16:45", "19:00"],
                          ["9:34", "11:16", "15:52", "20:37"],
                          ["9:01", "12:24", "18:51", "23:13"]]


for day in drinking_times_by_day:
    for time in day:        
        print(time, end='\t')
    print()

 

 

 

이제 요일 추가해서 각 줄 앞에 요일 출력해내기

days = ['월', '화', '수', '목', '금', '토', '일']
drinking_times_by_day = [["9:02", "10:17", "13:52", "18:23", "21:31"],
                          ["8:45", "12:44", "14:52", "22:17"],
                          ["8:55", "11:11", "12:34", "13:46", "15:52", "17:08", "21:15"],
                          ["9:15", "11:44", "16:28"],
                          ["10:01", "13:33", "16:45", "19:00"],
                          ["9:34", "11:16", "15:52", "20:37"],
                          ["9:01", "12:24", "18:51", "23:13"]]


for idx in range(len(days)):
    print(days[idx], end='\t')

    for time in drinking_times_by_day[idx]:        
        print(time, end='\t')
    print()

 

 

728x90
반응형