약수란?
값을 특정 숫자로 나누었을 때(%) 나머지가 0인 경우!
N = 10
for i in range(1, N+1):
if N%i == 0:
print(i, end=' ')
# 1 2 5 10
자릿수 더하기 문제
자연수 number를 입력 받아, 각 자릿수의 합을 계산하여 출력하시오.
예시)
sum_of_digit(1234) #=> 10
sum_of_digit(4321) #=> 10
def sum_of_digit(number):
print('---------------------')
# 1. 변수 초기화
total = 0
# 2. 반복
# 몫을 계속 나누다가 0/10 => 0,
# 더이상 나눌 수 없는 False가 될 때까지 반복한다
while number / 10:
# number, remainder = divmod(number, 10)
# 3. 몫과 나머지를 분리하기
remainder = number % 10
number = number // 10 # 몫으로 나온 값은 다음에 나눌 수로 덮어쓰기
# 4. 나머지 더하기
total += remainder
return total
2차원 배열
Index로 접근하여 2차원 배열 안의 모든 수의 총합을 구해라.
# numbers = [[1, 4], [10, 5], [20, 30]]
# 외부 리스트를 (Index 값으로) 순회하여 내부 리스트를 하나씩 꺼낸다.
for i in range(len(numbers)): # range(3) -> 0, 1, 2
# 내부 리스트를 (Index 값으로) 순회하여 숫자를 하나씩 꺼낸다.
for j in range(len(numbers[i])): # range(2) -> 0, 1
# 최종 숫자 요소 접근 : 2차원_배열_이름[외부_리스트_인덱스][내부_리스트_인덱스]
result += numbers[i][j]
return result
학생별 총합을 순서대로 출력하시오.
students = [
[100, 80, 100],
[90, 90, 60],
[80, 80, 80]
]
def student_sum(students):
i=0
while i<len(students):
j=0
sum01=0 # 위의 전과목 sum해줬을 때와 유일하게 다른 부분!
# 이중for문, 이중 while문 일 때 두 번째에서 바로 결과값을 프린트해내면 된다.
for j in range(len(students[i])):
sum01+=students[i][j]
j+=1
i+=1
print(sum01)
student_sum(students)
## 다른풀이
## index사용 안함
for student in students:
result = 0
for score in student:
result += score
print(result)
## 다른풀이
## for문 index 버전
def student_sum(students):
for i in range(len(students)): # i : 학생 리스트 인덱스
print(students[i])
result = 0
for j in range(len(students[i])): # j : 학생의 과목별 점수 리스트 인덱스
result += students[i][j] # 학생_데이터[학생_인덱스][학생의_과목_인덱스]
print(result)
과목별 출력하시오.
for x in range(len(students[0])):
# 과목별 점수 총합
total = 0
# 학생 : 0-김지용, 1-김보민, 2-주원상
for y in range(len(students)):
# 김지용의 국어점수, 김보민 국어점수, 주원상의 국어점수
total += students[y][x]
# 과목별 점수 Print
print(total)
'# 1. Language > 🌊 Python' 카테고리의 다른 글
셀레니움(Selenium) # chrome not reachable 에러 (0) | 2021.08.17 |
---|---|
셀레니움(Selenium) # 크롤링/스크래핑한 데이터 DB에 넣기 (0) | 2021.08.15 |
TIL # Python 이론정리 (0) | 2021.02.16 |
텔레그램 챗봇 & 공공데이터 API (0) | 2021.02.11 |
Markdown 사용법 (0) | 2021.02.11 |