1. Dictionary로 자신의 학번을 key로, 자신의 이름을 Value로 만드는 코드를 작성해 주십시오
<정답>
a = {"B123456": "김홍익"}
print (a["B123456"]) #김홍익
<내답>
dictionary={"b835397":"조선영"}
print(dictionary) #{'b835397': '조선영'}
2. 2개의 숫자를 입력 받고 그 두개의 숫자의 곱의 값을 출력하는 함수 코드를 작성해 주십시오
<정답>
def a():
n1 = int(input("1번숫자"))
n2 = int(input("2번숫자"))
print (n1*n2)
a()
<내답> #함수를 사용 안함
a=int(input("첫번째 숫자 입력:"))
b=int(input("두번째 숫자 입력:"))
print(a*b)
3. 문자열 인덱싱을 이용해 주민등록번호 뒷자리의 맨 첫 번째 숫자는 성별을 나타낸다. 주민등록번호에서 성별을 나타내는 숫자를 출력해보는 함수를 구해보자 주민 등록의 예) “951120-1068234”
<정답>
def a(n):
if n[7] == "1":
print("남자입니다")
elif n[7] == "2":
print("여자입니다")
else:
print("잘못 입력된 것 같습니다")
n = "951120-1068234"
a(n) #남자입니다
<내답> #함수를 사용 안함
jumin="951120-1068234"
print("주민등록 성별:"+jumin[7])
#주민등록 성별:1
4.while문을 사용해 1부터 1000까지의 자연수 중 3의 배수의 합을 구해보자
<정답>
n=1
sum=0
while (n<=1000):
if n%3 == 0:
sum+= n
n+=1
print (sum)
<내답>
n=0
sum=0
while n<1000:
n+=1
if (n%3)==0:
sum=sum+n
else:
continue
print("3배수 총합:"+str(sum))
5. for문을 사용해 1부터 100까지의 숫자를 출력해 보자.
<정답>
for i in range(1,101):
print(i)
<내답> #end=" " 있으면 한 줄 쓰기 가능
for i in range(1,101):
print(i,end=" ")
★6. A 학급에 총 10명의 학생이 있다. 이 학생들의 중간고사 점수는 다음과 같다. [70, 60, 55, 75, 95, 90, 80, 80, 85, 100] for문을 사용하여 A 학급의 평균 점수를 구해보는 함수를 만들어보자
<정답>
A= [70, 60, 55, 75, 95, 90, 80, 80, 85, 100]
def aver(a):
sum = 0
for i in a:
sum += i
sum /= len(a)
print (sum)
aver(A) #79.0
<내답> #함수 구현 안함
students=[70,60,55,75,95,90,80,80,85,100]
sum=0
for score in students:
sum+=score
print("점수합:" +str(sum))
average=sum/len(students)
print("평균:"+str(average))
#점수합:790
#평균:79.0
★7. 입력으로 들어오는 모든 수의 평균 값을 계산해 주는 함수를 작성해 보자.
(단 입력으로 들어오는 수의 개수는 정해져 있지 않다, *args를 이용하면 쉽게 해결할 수 있음 )
<정답>
def aver(*a):
sum= 0
for i in a:
sum += i
sum /= len(a) #새로운 함수 만들지 말고 같은 함수 이용해 간단히
print (sum)
aver(15,20,25)
aver(30,35)
<내답>
def average(*args):
sum=0
for a in args:
sum+=a
avg=sum/len(args)
return avg
print(average(1,5,9))
★8. 피보나치 구현하기
피보나치는 1번째 요소(P(1))와 2번째 요소(P(2))는 1, k 번째 요소(P(k))의 값은 k-1 번째 요소(P(k-1))와 k-2번째 요소(P(k-2))의 합을 갖는 함수입니다. 즉 1,1,2,3,5,8,13,21,34,55,89 ... 와 같은 식으로 표현되는 숫자의 배열을 의미한다. k번째 피보나치 수를 구하는 함수를 구현해보시오.
<정답>
1.
#Bottom up pibonacci function
#둘의 실행속도가 다릅니다. 피보나치 100번째 숫자를 지금의 함수와 아래 함수를 실행시켜 비교해보면 차이를 확실히 느낄 수 있을겁니다
def pibonacci():
a1 = 1
a2 = 1
n = int(input("몇 번째 피보나치 숫자를 원합니까?"))
for i in range(2,n):
temp= a2
a2= a1+a2
a1 = temp
print (a2)
pibonacci()
"""몇 번째 피보나치 숫자를 원합니까?100
354224848179261915075"""
2.
#Top down pibonacci function
def pibonacci(n):
if n==0:
return 1
elif n==1:
return 1
return (pibonacci(n-1) + pibonacci(n-2))
n = int(input("몇 번째 피보나치 숫자를 원합니까?"))
pibonacci(n)
"""몇 번째 피보나치 숫자를 원합니까?30
1346269"""
<내답> #솔직히 잘모름
def p(n):
if n==1 or n==2:
return 1
return p(n-1)+p(n-2)
print(p(5)) #5
9. 2 개의 숫자를 입력 받고 그 두 개의 숫자가 다른 수로 인해 나눠질 수 있는지 확인할 수 있는 함수를 구현하시오
<정답>
def f():
n1 = int(input("숫자1:"))
n2 = int(input("숫자2:"))
if n1 % n2 ==0 or n2 % n1 == 0:
return (True)
else:
return (False)
f()
#숫자1:6
#숫자2:9
#False
10. 한글로 이름을 입력하라고 한 뒤 3글자가 맞으면 입력을 받고 그 외 글자는 다시 입력하라고 한 뒤 Print하는 코드를 작성하시오
<정답>
def f():
name = input("이름?")
if len(name) == 3:
print(name)
else:
print("다시 입력하세요")
f()
f()
#이름?w
#다시 입력하세요
#이름?ww3
#ww3
11. while문을 사용하여 다음과 같이 별(*)을 표시하는 프로그램을 작성하시오
i=1
while (i<6):
print ("*"*i)
i+=1
"""
*
**
***
****
*****
"""
★12.
국어 80
영어 75
수학 55
3가지 요소를 리스트와 딕셔너리를 이용해 구조를 구성하고 평균 값을 구하는 함수를 구현하시오
<정답>
a = {"국어" : [80] , "영어" : [75], "수학" : [55]}
def f(a):
sum = 0
for i in a.keys():
sum += a[i][0] #이거 알아보자
sum/=len(a)
print (sum)
f(a)
#70.0
<내답>
list=[80, 75,55]
sum=0
for li in list:
sum+=li
average=sum/len(list)
print("리스트 평균:"+str(average))
sum=0
dic={'국어':80,"영어":75,"수학":55}
for d in dic.values():
sum+=d
average=sum/len(dic)
print("딕셔너리 평균:"+str(average))
#리스트 평균:70.0
#딕셔너리 평균:70.0
'컴퓨터 언어 > python' 카테고리의 다른 글
Python 8. Battleship game (0) | 2020.07.15 |
---|---|
Python 7. LOOP (0) | 2020.07.15 |
Python 5: List + Dictinaray + for루프 (0) | 2020.07.14 |
Python 4. 파이썬 함수 (0) | 2020.07.14 |
Python 3. Conditionals ana Control Flow (0) | 2020.07.14 |