본문 바로가기

컴퓨터 언어/python

파이썬 기초1

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