본문 바로가기
Base/Python

9. reversed() 함수 / while 반복문 / break / continue 키워드

by 귀멸 2023. 2. 18.

혼공파 38 ~ 41강

 

1. reversed() 함수

# reversed()
# 매개 변수 : 반복 가능한 것
# 결과 : 그것을 뒤집은 것
# 결과 자료형 : 이터레이터
# -> list()를 사용해 리스트로 변환해서 결과 보기

# 리스트 
print(list(reversed([1, 2, 3, 4, 5]))) # [5, 4, 3, 2, 1]

# 범위
print(list(reversed(range(0, 10)))) 
# [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

for i in reversed(range(0, 10)):
  print(i)

# 별 피라미드 만들기
# height = 10
# for i in range(1, height + 1):
#   print("*" * i)

height = 10
for i in range(1, height + 1):
  result = ""
  for j in range(i):
    result += "*"
  print(result)

height = 10
for i in range(1, height + 1):
  result = ""
  result += " " * (height -i)
  result += "*" * (2 * i - 1)
  print(result)

2. while 반복문

# while 반복문

# while 조건:
  # 복합구문
  # 조건이 참이라면 반복

# 무한 반복문 

# while 반복문 > for 반복문
i = 0
while i < 10:
  print(f"{i}번째 반복입니다.")
  i += 1

a = [1, 2, 1, 2]
value = 2

while value in a:
  a.remove(value)
print(a) # [1, 1]

# 1970년 1월 1일 0시 0분 0초를 기준으로
import time
print(time.time()) # 1676699015.8968456

시작시간 = time.time()
현재시간 = time.time()

while 현재시간 < 시작시간 + 5:
  print(현재시간, 시작시간 + 5)
  현재시간 = time.time()

3. break / continue 키워드

# break 키워드
# 반복문 전체를 벗어날 때 사용하는 구문

i = 0

while True:
  print(f"{i}번째 반복입니다.")
  i += 1

  a = input("> 종료하시겠습니까? (y/n): ")
  if a in ["y", "Y"]:
    print("반복문을 종료합니다.")
    break


# continue 키워드
# 현재 반복을 넘어갈 때 사용하는 구문

numbers = [5, 15, 6, 20, 7, 25]

for i in numbers:
  if i < 10:
    continue
  print(i)

4. 추가 연습 문제

# 리스트를 조합하여 딕셔너리 만들기
key_list = ["name", "hp", "mp", "level"]
value_list = ["기사", 200, 30, 5]
character = {}

# character[key_list[0]] = value_list[0]
# character[key_list[1]] = value_list[1]
# character[key_list[2]] = value_list[2]  
# character[key_list[3]] = value_list[3]

for i in range(0, 4):
  character[key_list[i]] = value_list[i]

print(character)
# {'name': '기사', 'hp': 200, 'mp': 30, 'level': 5}

# 합계가 특정 값을 넘을 때의 조건 값 구하기
limit = 10000
i = 1
sum_value = 0
while sum_value <= limit:
  sum_value += i
  i += 1

print(f"{i-1}를 더할 때 {limit}을 넘으며 그 때의 값은 {sum_value}입니다.")

# 141를 더할 때 10000을 넘으며 그 때의 값은 10011입니다.

# 1부터 100까지의 숫자의 합이 100인 두수를 곱할 때 최대값을 구하는 법

## 최대값 / 최소값 구하기
a = [27, 53, 103, 273, 32]

현재최대값 = a[0]
for i in a:
  if 현재최대값 < i:
    현재최대값 = i

print(현재최대값)

##############################################
b = []
for i in range(1, 99 + 1):
  j = 100 - i
  b.append([i, j, i * j])

최대리스트 = b[0]
최대값 = 최대리스트[2]
for i in b:
  if 최대값 < i[2]:
    최대리스트 = i
    최대값 = 최대리스트[2]

print(최대리스트)

#############################################

현재최대값 = 0
a = 0
b = 0
for i in range(1, 99 + 1):
  j = 100 - i
  if 현재최대값 < i * j:
    a = i
    b = j
    현재최대값 = i * j
print(a)
print(b)
print(현재최대값)

댓글