혼공파 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(현재최대값)
'Base > Python' 카테고리의 다른 글
11. 복잡도/프로그램/루틴/프로시저/메서드/함수 (0) | 2023.02.21 |
---|---|
10. 리스트와 딕셔너리 관련 기본 함수 / 리스트 내포 / join함수 (1) | 2023.02.20 |
8. 범위와 반복문 / 수열 / 온라인 저지 여러 줄 입력 받기 (2) | 2023.02.17 |
7. 딕셔너리와 반복문 (0) | 2023.02.15 |
6. for 반복문과 리스트, 항등원, 전개 연산자 (0) | 2023.02.11 |
댓글