BASHA TECH

파이썬 ch02. 연습문제 본문

Computer/Python

파이썬 ch02. 연습문제

Basha 2022. 9. 20. 18:30
728x90
#1. 홍길동 씨의 과목별 점수는 다음과 같다. 홍길동 씨의 평균 점수를 구해 보자.
# 과목	점수
# 국어	80
# 영어	75
# 수학	55
kor = 80
eng = 75
math = 55
avg = (kor + eng + math)/3
print(avg)

=> 70.0

 

#2. 자연수 13이 홀수인지 짝수인지 판별할 수 있는 방법에 대해 말해 보자.
# 나머지 연산자를 사용하면, 자연수의 홀수 짝수를 쉽게 판별 가능
nn = 13
if (nn%2 == 0):
    print("짝수")
else:
    print("홀수")

=> 홀수

 

#3. 홍길동씨의 주민등록번호는 881120-1068234이다. 
#   홍길동씨의 주민등록번호를 연월일(YYYYMMDD) 부분과 그 뒤의 숫자 부분으로 나누어 출력해 보자.
hong = "881120-1068234"
ymd = hong[:6]
after = hong[7:]
print(ymd)
print(after)

=> 881120

     1068234

#4. 주민등록번호 뒷자리의 맨 첫 번째 숫자는 성별을 나타낸다. 
#   주민등록번호에서 성별을 나타내는 숫자를 출력해 보자. 
hong = "881120-1068234"
gender = hong[7:8]
if(hong[7] == '1'):
    print("남자입니다.")
elif(hong[7] == '2'):
    print("여자입니다.")
    
# 내가 한 실수 
# if (gender == 1): 이렇게 하니까 여자라고 출력 됨
# if (hong[7:8] == 1) : 이렇게 출력해도 여자라고 출력됨
# if(gender[7] == 1): 이렇게 하면 indexError가 생김
# if(hong[7] == 1): 이렇게 하면 처리는 되는데 출력이 안됨
# 주민등록번호는 문자열 이므로 if(hong[7] == '1'): 로 처리해야함

=> 남자입니다.

 

#5. 다음과 같은 문자열 a:b:c:d가 있다. 
#   문자열의 replace 함수를 사용하여 a#b#c#d로 바꿔서 출력해 보자.
a = "a:b:c:d"
b = a.replace(":","#") # 대체
print(b)

=> a#b#c#d

 

#6. [1, 3, 5, 4, 2] 리스트를 [5, 4, 3, 2, 1]로 만들어 보자.
a = [1,3,5,4,2]
a.sort() # 정렬하고
a.reverse() # 역순 출력하게
print(a)

=> [5, 4, 3, 2, 1]

 

#7. ['Life', 'is', 'too', 'short'] 리스트를 
#   Life is too short 문자열로 만들어 출력해 보자.
a = ['Life', 'is', 'too', 'short']
result = " ".join(a)
print(result)
# 참고
# result = "".join(a)를 치면 Lifeistooshort 결과 값이 나온다.

=> Life is too short

 

#8. (1,2,3) 튜플에 값 4를 추가하여 (1,2,3,4)를 만들어 출력해 보자.
a = (1,2,3)
a = a + (4,)
print(a)

# a = a + (,4) 이건 SyntaxError: invalid syntax 가 뜬다. 
# 왜??? 이건 같이 고민해보도록 하자...
# Question

=> (1, 2, 3, 4)

 

#9. 다음과 같은 딕셔너리 a가 있다.
# >>> a = dict()
# >>> a
# {}
# 다음 중 오류가 발생하는 경우를 고르고, 그 이유를 설명해 보자.
# 1) a['name'] = 'python' => 결과 값: {'name': 'python'}
# 2) a[('a',)] = 'python' => 결과 값: {('a',): 'python'}
# 3) a[[1]] = 'python' => 결과 값: TypeError: unhashable type: 'list'
# 4) a[250] = 'python' => 결과 값: {250: 'python'}
a = dict()
a[250] = 'python'
a
# 정답이 3. 타입 에러. a는 dictionary인데, 3은 tuple임...? 땡 틀림
# 해설엔 이렇게 나옴. 
# 오류가 발생하는 이유는 딕셔너리의 키로는 변하는(mutable) 값을 사용할 수 없기 때문
# 위 예에서 키로 사용된 [1]은 리스트이므로 변하는 값이다. 
# 다른 예에서 키로 사용된 문자열, 튜플, 숫자는 변하지 않는(immutable) 값이므로 
# 딕셔너리의 키로 사용이 가능하다.
#10. 딕셔너리 a에서 'B'에 해당되는 값을 추출해 보자.
# >>> a = {'A':90, 'B':80, 'C':70}
a = {'A':90, 'B':80, 'C':70}
result = a.pop('B')
print(a) # B가 꺼내짐
print(result) # 꺼내진B 값이 출력 됨

=> {'A': 90, 'C': 70}

     80

#11. a 리스트에서 중복 숫자를 제거해 보자.
# >>> a = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
a = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
aSet = set(a) # a 리스트를 집합 자료형으로 변환
b = list(aSet) # 집합자료형을 리스트 자료형으로 다시 변환 한다
print(b)

=> [1, 2, 3, 4, 5]

#12. 파이썬은 다음처럼 동일한 값에 여러 개의 변수를 선언할 수 있다. 
#    다음과 같이 a, b 변수를 선언한 후 a의 두 번째 요소값을 변경하면 b 값은 어떻게 될까? 
#    그리고 이런 결과가 오는 이유에 대해 설명해 보자.
a = b = [1,2,3] # 변수 a와 b를 리스트 [1,2,3]으로 동일
a[1] = 4 # a의 1번 값인 2를 4로 변경
print(b) # a = b라는 값에 의해 b의 두 번째 요소값이 변경됨.

=> [1, 4, 3]

728x90
반응형

'Computer > Python' 카테고리의 다른 글

ch04. 파이썬 파일처리  (0) 2022.09.16
ch03-3 파이썬 자료형  (0) 2022.09.16
ch03. 파이썬 제어문  (0) 2022.09.16
ch02-2 파이썬 자료형  (0) 2022.09.16
find( )와 index( )의 차이  (0) 2022.09.14
Comments