Eat Study Love

먹고 공부하고 사랑하라

SW 만학도/Jump to Python

Jump To Python 2장 연습 문제 [1]

eatplaylove 2022. 12. 4. 16:05

Q1.

# 홍길동씨의 과목별 점수는 다음과 같다. 홍길도 씨의 평균 점수를 구해라.
# 국어 80점 영어 75점 수학 55점

# 국어 = float(80)
# 영어 = float(75)
# 수학 = float(55)
# 평균 = float((국어 + 영어 + 수학)/3)
# 소수점 = '%0.0f' %평균
# print(f'홍길동씨의 평균은 {소수점}점') 
# print('홍길동씨의 평균은 %s점' %소수점)

소수점을 없애려고 했더니 코드가 좀 조잡해진 듯 하다.

 

Q2.

# 자연수 13이 홀수인지 짝수인지 판별해보자

# 자연수 = 13

# if 자연수 % 2 == 1 :
#     print("%s는(은) 홀수입니다."%자연수)
# else :
#     print("%s는(은) 짝수입니다."%자연수)
 
 

if문을 아직 사용하면 안 되지만, 다른 방법이 생각나지 않았다.

그냥 나머지를 구하는 '%'을 알고 있는지 체크하는 문제로 판단

 

Q3.

# 홍길동씨의 주민등록번호는 881120-1068234이다.
# 주민등록번호를 연월일(YYMMDD)부분과 그 뒤 숫자부분으로 나눠 출력하라

# 주민번호 = '881120-1068234'
# 앞쪽 = 주민번호[0:7]
# 뒤쪽 = 주민번호[8:]
# print(f"앞 부분은 {앞쪽}, 뒷 부분은 {뒤쪽}")

잉, 문자열은 0번부터 시작인데 앞 부분에 '-'까지 들어가 버리고 뒷 부분은 1이 빠진 ㅠㅠ

슬라이싱할때 요런 디테일 주의!

정정 => * 앞쪽 = 주민번호[0:6] , 뒷쪽 = 주민번호[7:]

 

Q4.

# 주민번호 뒷자리 맨 첫 번째 숫자는 성별을 나타낸다. 주민번호에서 성별을 나타내는 숫자를 출력하라.

# 주민번호 = '881120-1068234'
# print(주민번호[7])

문자열 인덱싱을 할 수 있는지를 물어보네

 

Q5.

 

# 문자열 a:b:c:d가 있다. 문자열 replace를 사용하여 #a#b#c#d로 바꿔서 출력해보라

# 문자열 = 'a:b:c:d'
# print(문자열.replace(':','#'))
 
 

Replace 함수를 쓸 수 있는가에 대한 문제.

변수.replace('기존 문자' , '기존 문자를 대체할 문자') 꼴로 사용하면 된다.

 

Q6.

 

# 리스트 [1,3,5,4,2]를 [5,4,3,2,1]로 만들어 보자

# list = [1,3,5,4,2]
# list.sort()
# list.reverse()
# print(list)

sort => 문자는 가나다 또는 abc순으로 정렬, 숫자는 오름차순으로 정렬 => 숫자, 문자 섞여 있을 땐 사용불가

근데, 극강의 효율로 코드 짜보려고 아래와 같이 했는데, 값으로 None이 나온다

list = [1,3,5,4,2]
list.sort()
list.reverse()
# print(list)
print(list.reverse())

흠.. list를 replace하거나 인덱싱할 때는 print문에 한 방에 끼어 넣어도 출력되던데 요건 왜 안 될까?

reverse 말고 sort를 print 안에 넣어도 None이 뜬다.

 

Q7.

# ['Life','is','too','short']리스트를 Life is too short 문자열로 만들어 출력하라

# list=['Life','is','too','short']
# print(list[0:])
# print(list[0],list[1],list[2],list[3])
 

바로 슬라이싱을 때리니까 그대로 리스트 형태로 출력이 된다. 그래서 인덱싱 이용하여 따로따로 해봤더니 문자열로 출력 되더라는!

 

그치만 웹서칭을 해보니 아래와 같이 join을 써서 함수를 구현할 수 있는지 체크하는 문제였다.

# 결과 = " ".join(list)  -> list 값들 사이사이에 따옴표 사이에 들어간 것을 넣어서 문자열로 변환. 요건 띄어쓰기를 넣은 경우
 
# print(결과)
or #print(" ".join(list)) 이렇게 한큐에도 가능
 

join 써서 표현하는 게 더 깔끔해 보이긴 하넹

 

 

-E. O. D-