(출처 : 03장 연습문제 - 점프 투 파이썬 (wikidocs.net))
Q1 : while문을 사용해 1부터 1000까지 자연수 중 3의 배수의 합을 구해보자
num=3
sum=0
while num<=1000:
sum+=num
num+=3
print(sum)
166883
Q2 : while문을 사용해 다음과 같이 별을 표시하는 프로그램을 작성해 보자.
1번
*
**
***
****
*****
2번
*****
****
***
**
*
1번
repeat=1
while repeat<=5:
print("*"*repeat)
repeat+=1
2번
repeat=1
while repeat<=5:
print("*"*(6-repeat))
repeat+=1
Q3 : for문을 사용하여 1부터 100까지 중 소인수를 출력해보자
※ 소인수 : 자연수 중 1과 자기자신으로만 나누어 떨어지는 수 ex) 7은 1과 7로만 나누어 떨어져 소인수이지만, 4는 1,2,4로 나누어 떨어져 소인수가 아니다.
print(2) #2는 조건에 맞게 맞추기 귀찮아서 별도 출력
for num in range(1,101): #1부터 100까지
for div in range(2,num): #2부터 num-1까지 div로 num을 나누어보자.
if num%div==0: break #만약 2부터 num-1까지 어떤 수로 나누어진다면 소인수가 아니므로 break
if div==num-1 : print(num) #만약 2부터 num-1까지 그 어떤 수로도 나누어 떨어지지 않았다면 소인수
3
5
7
11
...
83
89
97
Q4 : A 학급에 총 10명의 학생이 있다. 이 학생들의 중간고사 점수는 다음과 같다.
[70, 60, 55, 75, 95, 90, 80, 80, 85, 100]
for문을 사용하여 A 학급의 평균 점수를 구해 보자.
student_scores=[70, 60, 55, 75, 95, 90, 80, 80, 85, 100]
avg=0
for score in student_scores:
avg+=score
avg/=len(student_scores)
print(avg)
79.0
Q5 : 리스트 중에서 홀수에만 2를 곱하여 저장하는 다음 코드가 있다.
numbers = [1, 2, 3, 4, 5]
result = []
for n in numbers:
if n % 2 == 1:
result.append(n*2)
이를 리스트 내포(list conprehension)을 사용해 표현해보자.
numbers = [1, 2, 3, 4, 5]
result = [num*2 for num in numbers if num%2==1]
print(result)
[2,6,10]
Q6 : 학생들의 중간고사 점수가 [70, 60, 55, 75, 95, 90, 80, 80, 85, 100]과 같다. 1번부터 10번 학생이라고 할 때, 점수가 60점 미만이면 C, 60~79점이면 B, 80~100이면 A 학점이다. 각 학생별로 "3번 학생은 B학점입니다" 식으로 출력하는 프로그램을 작성해보자.
student_scores= [70, 60, 55, 75, 95, 90, 80, 80, 85, 100]
student_num=0
for score in student_scores:
student_num+=1
if score < 60:
print("%d번 학생은 C학점입니다" %student_num)
elif score <=79:
print("%d번 학생은 B학점입니다" %student_num)
else:
print("%d번 학생은 A학점입니다" %student_num)
1번 학생은 B학점입니다
2번 학생은 B학점입니다
...
9번 학생은 A학점입니다
10번 학생은 A학점입니다
감사합니다
| [Python] 함수 (0) | 2022.05.28 |
|---|---|
| [N141] Vector (0) | 2022.05.26 |
| [Python] [조건, 반복문] While문 (0) | 2022.05.25 |
| [Python] [조건, 반복문] if문 (0) | 2022.05.25 |
| [Python] [조건, 반복문] for문 (0) | 2022.05.25 |