본문 바로가기
SK 행복성장캠퍼스/Python 기초

0902_3일차_연습문제

by NickNuma 2020. 9. 6.

Question 1

def main():
    '''
       키보드로 입력된 값이 "yes" or "YES" or "Yes" 이면 "Yes"을 출력하고 아니면 "No"를 출력하는 코드를 작성하시오.

       입력: yes
       출력: Yes

    '''
    s = input("입력:")
    mesg = None
    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

yes라는 문자열을 upper()를 이용해 YES로 만들고 == YES로 비교하였습니다.

def main():
    '''
       키보드로 입력된 값이 "yes" or "YES" or "Yes" 이면 "Yes"을 출력하고 아니면 "No"를 출력하는 코드를 작성하시오.

       입력: yes
       출력: Yes

    '''
    s = input("입력:")
    mesg = None
    ####### 구현 시작 ################

    if s.upper() == "YES":
        mesg = "Yes"
    else:
        mesg = "No"

    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 2

def main():
    '''
       사용자로부터 값을 입력받은 후 해당 값에 +20을 더한 값을 출력하라.
        단 값의 범위는 0~255로 가정한다. 255를 초과하는 경우 255를 출력해야 한다.

        >>  입력값: 200
        	출력값: 220
	    >>  입력값: 240
	        출력값: 255
    '''
    
    s = input("입력:")
    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print("출력값: ", s)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

입력받은 값에 20을 더한 후 범위를 지정해주었습니다.

def main():
    '''
       사용자로부터 값을 입력받은 후 해당 값에 +20을 더한 값을 출력하라.
        단 값의 범위는 0~255로 가정한다. 255를 초과하는 경우 255를 출력해야 한다.

        >>  입력값: 200
        	출력값: 220
	    >>  입력값: 240
	        출력값: 255
    '''
    
    s = input("입력:")
    ####### 구현 시작 ################

    s = int(s) + 20
    if s > 255:
        s = 255
    if s < 0:
        s = 0

    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print("출력값: ", s)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 3

def main():
    '''
       사용자로부터 하나의 값을 입력받은 후 해당 값에 20을 뺀 값을 출력하라.
       단 값의 범위는 0~255이다. 0보다 작은 값이되는 경우 0을 출력해야 한다

        >>  입력값: 200
        	출력값: 180
	    >>  입력값: 15
	        출력값: 0
    '''

    s = input("입력:")
    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print("출력값: ", s)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

3번 질문과 2번 질문은 연산자의 차이지 코드 작성에 큰 차이가 없습니다.

def main():
    '''
       사용자로부터 하나의 값을 입력받은 후 해당 값에 20을 뺀 값을 출력하라.
       단 값의 범위는 0~255이다. 0보다 작은 값이되는 경우 0을 출력해야 한다

        >>  입력값: 200
        	출력값: 180
	    >>  입력값: 15
	        출력값: 0
    '''

    s = input("입력:")
    ####### 구현 시작 ################

    s = int(s) - 20
    if s > 255:
        s = 255
    if s < 0:
        s = 0

    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print("출력값: ", s)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 4

def main():
    '''
       사용자로부터 입력 받은 시간이 정각인지 판별하라.

       >> 현재시간:02:00
          정각 입니다.
	   >> 현재시간:03:10
	      정각이 아닙니다.
    '''

    user_in = input("현재시간:")
    mesg = None

    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

앞의 시간부분은 제외하고 '분' 부분을 슬라이싱하여 비교합니다.

def main():
    '''
       사용자로부터 입력 받은 시간이 정각인지 판별하라.

       >> 현재시간:02:00
          정각 입니다.
	   >> 현재시간:03:10
	      정각이 아닙니다.
    '''

    user_in = input("현재시간:")
    mesg = None

    ####### 구현 시작 ################


    if user_in[3:] == "00":
        mesg = "정각입니다."
    else:
        mesg = "정각이 아닙니다."


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 5

def main():
    '''
       사용자로 입력받은 단어가 아래 fruit 리스트에 포함되어 있는지를 확인하라.
       포함되었다면 "정답입니다"를 아닐 경우 "오답입니다" 출력하라.
    '''

    fruit = ["사과", "포도", "홍시"]
    mesg = None
    user_in = input("좋아하는과일은?")

    ####### 구현 시작 ################


    ########구현 끝 #######################


    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

멤버십 연산자를 이용해 리스트 내 자료를 비교합니다.
비교할 값 in 리스트

def main():
    '''
       사용자로 입력받은 단어가 아래 fruit 리스트에 포함되어 있는지를 확인하라.
       포함되었다면 "정답입니다"를 아닐 경우 "오답입니다" 출력하라.
    '''

    fruit = ["사과", "포도", "홍시"]
    mesg = None
    user_in = input("좋아하는과일은?")

    ####### 구현 시작 ################

    # if user_in in fruit:
    #     mesg = "정답입니다."
    # else:
    #     mesg = "오답입니다."

    if user_in in fruit:
        mesg ="{}는 furit 리스트에 있습니다.".format(user_in)
    else:
        mesg = "{}는 furit 리스트에 없습니다.".format(user_in)

    ########구현 끝 #######################


    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 6

def main():
    '''
       아래와 같이 fruit 딕셔너리가 정의되어 있다.
       사용자가 입력한 값이 딕셔너리 값 (value)에 포함되었다면
       "정답입니다"를 아닐 경우 "오답입니다" 출력하라.
    '''

    fruit = {"봄" : "딸기", "여름" : "토마토", "가을" : "사과"}
    mesg = None
    user_in = input("좋아하는과일은?")

    ####### 구현 시작 ################


    ########구현 끝 #######################


    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

dict의 데이터를 비교하기 위해서 .values()함수를 사용하고
value값 비교/존재 여부를 확인하기 위해서 멤버십 연산자를 이용합니다.
value in dict.values()

def main():
    '''
       아래와 같이 fruit 딕셔너리가 정의되어 있다.
       사용자가 입력한 값이 딕셔너리 값 (value)에 포함되었다면
       "정답입니다"를 아닐 경우 "오답입니다" 출력하라.
    '''

    fruit = {"봄" : "딸기", "여름" : "토마토", "가을" : "사과"}
    mesg = None
    user_in = input("좋아하는과일은?")

    ####### 구현 시작 ################

    if user_in in fruit.values():
        mesg = "{}는 furit 딕셔너리의 value입니다.".format(user_in)
    else:
        mesg = "{}는 furit 딕셔너리의 value가 아닙니다.".format(user_in)

    ########구현 끝 #######################


    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 7

def main():
    '''
       사용자로부터 문자 한 개를 입력 받고,
       소문자일 경우 대문자로,
       대문자 일 경우 소문자로 변경해서 출력하라

       >> a
         출력: A

    '''

    user_in = input("문자 한개 입력하시오")

    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(user_in)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

문자열의 .isupper()함수를 이용해 대문자인지 확인하고
대문자이면 .lower()함수로 소문자로, 소문자이면 .upper()함수로 대문자로 변경해주었습니다.

def main():
    '''
       사용자로부터 문자 한 개를 입력 받고,
       소문자일 경우 대문자로,
       대문자 일 경우 소문자로 변경해서 출력하라

       >> a
         출력: A

    '''

    user_in = input("문자 한개 입력하시오")

    ####### 구현 시작 ################

    if user_in.isupper():
        user_in = user_in.lower()
    else:
        user_in = user_in.upper()

    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(user_in)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 8

def main():
    '''
       사용자로부터 달러, 엔, 유로, 또는 위안 금액을 입력받은 후
       이를 원으로 변환하는 프로그램을 작성하라.
       각 통화별 환율은 다음과 같다.
       사용자는
        100 달러
        1000 엔
        13 유로
        100 위안
       과 같이 금액과 통화명 사이에 공백을 넣어 입력한다고 가정한다

   통화명   환율
   -------------
   달러	   1167
   엔	   1.096
   유로	   1268
   위안	   171

      >> 입력: 100 달러
         116700.00 원
    '''

    user_in = input("입력:")
    price = None

    ####### 구현 시작 ################


    ########구현 끝 #######################
    
    print("-------------------------------------------------------------------------------")
    print(price, "원")
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

'100 달러'라는 값을 받았을 때, .split()함수로 공백을 기준, 100과 달러를 나누어 리스트에 저장합니다.
이후, 해당 리스트의 0번(숫자)과 1번(통화명) 위치의 값을 각각 다른 변수에 저장합니다.
각 통화에 따라서 다른 환율을 저장하고 price 변수에 리스 0번에 들어있던 숫자와 환율을 곱해 반환합니다.

def main():
    '''
       사용자로부터 달러, 엔, 유로, 또는 위안 금액을 입력받은 후
       이를 원으로 변환하는 프로그램을 작성하라.
       각 통화별 환율은 다음과 같다.
       사용자는
        100 달러
        1000 엔
        13 유로
        100 위안
       과 같이 금액과 통화명 사이에 공백을 넣어 입력한다고 가정한다

   통화명   환율
   -------------
   달러	   1167
   엔	   1.096
   유로	   1268
   위안	   171

      >> 입력: 100 달러
         116700.00 원
    '''

    user_in = input("입력:")
    price = None

    ####### 구현 시작 ################

    user_in = user_in.split()   # 그냥 공백의 경우에는 " " 아니라 그냥 () 해도 되나봄?
    #print(user_in)             # ['100', '달러']
    amount = user_in[0]
    currency = user_in[1]
    #amount, currency = input("입력:").split()

    if currency == "달러":
        ratio = 1167
    elif currency == "엔":
        ratio = 1.096
    elif currency == "유로":
        ratio = 1268
    else:
        ratio = 171

    price = ratio * float(amount)       # float 연산 int = float 값

    ########구현 끝 #######################
    
    print("-------------------------------------------------------------------------------")
    print(price, "원")
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 9

def main():
    '''
       사용자로부터 세 개의 숫자를 입력 받은 후 가장 큰 숫자를 출력하라.

    >> input number1: 10
	>> input number2: 9
	>> input number3: 20

      출력: 20
    '''

    number1 = input("input number1:")
    number2 = input("input number2:")
    number3 = input("input number3:")

    max_num=None
    ####### 구현 시작 ################


    ########구현 끝 #######################


    print("-------------------------------------------------------------------------------")
    print(max_num)
    print("-------------------------------------------------------------------------------")
# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

입력받은 값을 int()로 형변환하고 다중 if문 (elif문)을 이용하여 가장 큰 숫자를 찾았습니다.

def main():
    '''
       사용자로부터 세 개의 숫자를 입력 받은 후 가장 큰 숫자를 출력하라.

    >> input number1: 10
	>> input number2: 9
	>> input number3: 20

      출력: 20
    '''

    number1 = input("input number1:")
    number2 = input("input number2:")
    number3 = input("input number3:")

    max_num=None
    ####### 구현 시작 ################

    max_num = 0

    if int(number1) > int(number2):
        max_num = int(number1)
    elif int(number2) > int(number3):
        max_num = int(number2)
    else:
        max_num = int(number3)

    ########구현 끝 #######################


    print("-------------------------------------------------------------------------------")
    print(max_num)
    print("-------------------------------------------------------------------------------")
# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 10

def main():
    '''
       휴대폰 번호 앞자리에 따라 통신사는 아래와 같이 구분된다.
       사용자로부터 휴대전화 번호를 입력 받고, 통신사를 출력하는 프로그램을 작성하라.

번호	통신사
---------
011	SKT
016	KT
019	LGU
010	알수없음


       >> 휴대전화 번호 입력: 011-345-1922

        출력: 당신은 SKT 사용자입니다.
    '''

    phone_number = input("휴대전화 번호 입력 : ")
    mesg = None

    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")
# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

입력받은 핸드폰 번호를 앞 3자리까지 슬라이싱한 후 if문을 이용해 비교하였습니다.

def main():
    '''
       휴대폰 번호 앞자리에 따라 통신사는 아래와 같이 구분된다.
       사용자로부터 휴대전화 번호를 입력 받고, 통신사를 출력하는 프로그램을 작성하라.

번호	통신사
---------
011	SKT
016	KT
019	LGU
010	알수없음


       >> 휴대전화 번호 입력: 011-345-1922

        출력: 당신은 SKT 사용자입니다.
    '''

    phone_number = input("휴대전화 번호 입력 : ")
    mesg = None

    ####### 구현 시작 ################

    mesg = phone_number[0:3]

    if mesg == "011":
        mesg = "당신은 SKT 사용자입니다."
    if mesg == "016":
        mesg = "당신은 KT 사용자입니다."
    if mesg == "019":
        mesg = "당신은 LGU 사용자입니다."
    if mesg == "010":
        mesg ="알수없습니다."


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")
# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 11

def main():
    '''
       우편번호는 5자리로 구성되는데, 앞의 세자리는 구를 나타낸다.
       예를들어, 강북구의 경우 010, 011, 012 세 자리로 시작한다.

-	 0	      1	      2	      3	      4	      5 	  6	      7	      8 	 9
01	강북구	강북구	강북구	도봉구	도봉구	도봉구	노원구	노원구	노원구	노원구


     사용자로 부터 5자리 우편번호를 입력받고 구를 판별하라


       > 우편번호: 01400

         도봉구

    '''

    zipcode = input("우편번호:")
    mesg = None
    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")
# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

내가 해결한 방법 (기술적으로 아쉬움)

더보기

내가 해결한 방법 (기술적으로 아쉬움)
슬라이싱으로 3번째 자리를 가지고 온 후, 다중 if (elif)를 이용하여 해결하였습니다.

def main():
    '''
       우편번호는 5자리로 구성되는데, 앞의 세자리는 구를 나타낸다.
       예를들어, 강북구의 경우 010, 011, 012 세 자리로 시작한다.

-	 0	      1	      2	      3	      4	      5 	  6	      7	      8 	 9
01	강북구	강북구	강북구	도봉구	도봉구	도봉구	노원구	노원구	노원구	노원구


     사용자로 부터 5자리 우편번호를 입력받고 구를 판별하라


       > 우편번호: 01400

         도봉구

    '''

    zipcode = input("우편번호:")
    mesg = None
    ####### 구현 시작 ################

    zipcode = zipcode[2]
    print(zipcode)

    if zipcode == '0' or zipcode == '1' or zipcode == '2':
        mesg = "강북구"
    elif zipcode == '3' or zipcode == '4' or zipcode == '5':
        mesg = "도봉구"
    else:
        mesg = "노원구"


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")
# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

강사님 솔루션

더보기

멤버십 연산자를 이용해 더 쉽게 처리함.

def main():
    '''
       우편번호는 5자리로 구성되는데, 앞의 세자리는 구를 나타낸다.
       예를들어, 강북구의 경우 010, 011, 012 세 자리로 시작한다.

-	 0	      1	      2	      3	      4	      5 	  6	      7	      8 	 9
01	강북구	강북구	강북구	도봉구	도봉구	도봉구	노원구	노원구	노원구	노원구


     사용자로 부터 5자리 우편번호를 입력받고 구를 판별하라


       > 우편번호: 01400

         도봉구

    '''

    zipcode = input("우편번호:")
    mesg = None
    
#################### 구현 시작#############

    if zipcode[2] in "012" :
        mesg= "강북구"
    elif zipcode[2] in "345" :
        mesg= "도봉구"
    else:
        mesg= "노원구"

##################### 구현 끝##############

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")
# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 12

def main():
    '''
       주민등록번호의 뒷 자리 7자리 중 두번째와 세번째는 지역코드를 의미한다.
       주민 등록 번호를 입력 받은 후 출생지가 서울인지 아닌지 판단하는 코드를 작성하라


지역코드	출생지
------------
00 ~ 08	서울
09 ~ 12	부산



       > 주민등록번호: 821010-1635210

         서울이 아닙니다

    '''

    reg_num = input("주민등록번호:")
    mesg = None
    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")
# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

내가 해결한 방법 (생각이 아쉬움)

더보기

2자리를 슬라이싱함

def main():
    '''
       주민등록번호의 뒷 자리 7자리 중 두번째와 세번째는 지역코드를 의미한다.
       주민 등록 번호를 입력 받은 후 출생지가 서울인지 아닌지 판단하는 코드를 작성하라


지역코드	출생지
------------
00 ~ 08	서울
09 ~ 12	부산



       > 주민등록번호: 821010-1635210

         서울이 아닙니다

    '''

    reg_num = input("주민등록번호:")
    mesg = None
    ####### 구현 시작 ################

    reg_num = int(reg_num[7:9])
    print(reg_num)

    if reg_num >= 0 and reg_num < 9:
        mesg = "서울 출생입니다."
    else:
        mesg = "서울 출생이 아닙니다."


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")
# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

강사님 솔루션

더보기

1자리만 슬라이싱하고 초과값은 서울 이외의 사람으로 확인

def main():
    '''
       주민등록번호의 뒷 자리 7자리 중 두번째와 세번째는 지역코드를 의미한다.
       주민 등록 번호를 입력 받은 후 출생지가 서울인지 아닌지 판단하는 코드를 작성하라


지역코드	출생지
------------
00 ~ 08	서울
09 ~ 12	부산



       > 주민등록번호: 821010-1635210

         서울이 아닙니다

    '''

    reg_num = input("주민등록번호:")
    mesg = None

#############################구현 시작###########

    if int(reg_num[8:9]) <= 8 :
        mesg= "서울 입니다"
    else:
        mesg= "서울이 아닙니다."
        
#############################구현 끝##############
        

    print("-------------------------------------------------------------------------------")
    print(mesg)
    print("-------------------------------------------------------------------------------")
# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 13

def main():

    '''
       1.입력으로 제공되는 0보다 큰 두 수 사이의 모든 짝수의 합을 계산하는 프로그램을 작성하시오.
        (단, 계산 시 두 수를 포함한다.
        예) 두 수가 4, 8이면 4, 8사이의 짝수는 4, 6, 8이고 짝수합은 18이다.)

    입력1) 25, 40
    출력1) 264
    입력2) 3, 125
    출력2) 3904

    '''

    # 입력 : 두 수
    n1, n2 = 25, 40
    n1, n2 = 3, 125

    total = 0;
    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print("두 수 사이의 짝수합 : ", total)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

내가 해결한 방법 (기술적 아쉬움)

더보기

먼저 각 숫자가 짝수인지 찾고, 이후 멤버십 함수를 이용해 결과물 도출

def main():

    '''
       1.입력으로 제공되는 0보다 큰 두 수 사이의 모든 짝수의 합을 계산하는 프로그램을 작성하시오.
        (단, 계산 시 두 수를 포함한다.
        예) 두 수가 4, 8이면 4, 8사이의 짝수는 4, 6, 8이고 짝수합은 18이다.)

    입력1) 25, 40
    출력1) 264
    입력2) 3, 125
    출력2) 3904

    '''

    # 입력 : 두 수
    n1, n2 = 25, 40
    n1, n2 = 3, 125

    total = 0;
    ####### 구현 시작 ################

    n1 = input("정수 1개를 입력해주세요>>")
    n2 = input("또다른 정수 1개를 입력해주세요>>")
    
    #각 수가 짝수인지 먼저 찾고 sort
    if n1 % 2 == 0:
        n1 = n1
    else:
        n1 = n1 +1

    if n2 % 2 == 0:
        n2 = n2
    else:
        n2 = n2 -1

    for n in (n1, n2 +1, 2):
        total += n


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print("두 수 사이의 짝수합 : ", total)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

강사님 솔루션

더보기

멤버십 함수 내에서 짝수인지 확인하고 값을 더해서 결과 도출

def main():
    '''
       1.입력으로 제공되는 0보다 큰 두 수 사이의 모든 짝수의 합을 계산하는 프로그램을 작성하시오.
        (단, 계산 시 두 수를 포함한다.
        예) 두 수가 4, 8이면 4, 8사이의 짝수는 4, 6, 8이고 짝수합은 18이다.)

    입력1) 25, 40
    출력1) 264
    입력2) 3, 125
    출력2) 3904

    '''
    # 입력 : 두 수
    n1, n2 = 25, 40
    n1, n2 = 3, 125

    total = 0;
    for i in range(n1, n2 + 1):
        if i % 2 == 0:
            total = total + i

    print("-------------------------------------------------------------------------------")
    print("두 수 사이의 짝수합 : ", total)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 14

def main():
    '''
      1.	2000보다 크고 3200보다 작은 범위의 정수에서 7의 배수이고 5의 배수가 아닌 정수값을
        ,(쉼표)를 구분자로 사용하여 한줄로 출력하는 코드를 작성하시오

        출력:
           2002,2009,2016,2023,2037, ...,3171,3178,3192,3199
    '''
    result = None

    ####### 구현 시작 ################

    ########구현 끝 #######################
    print("-------------------------------------------------------------------------------")
    print(result)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

.join함수를 안 배운 상황이서 완벽하게 구현하지 못함

더보기

.append()함수를 이용해 리스트에 데이터를 추가해주었고 이후 리스트형을 문자열로 바꾸기 위해서 join을 사용했어야 함.

def main():
    '''
      1.	2000보다 크고 3200보다 작은 범위의 정수에서 7의 배수이고 5의 배수가 아닌 정수값을
        ,(쉼표)를 구분자로 사용하여 한줄로 출력하는 코드를 작성하시오

        출력:
           2002,2009,2016,2023,2037, ...,3171,3178,3192,3199
    '''
    result = None

    ####### 구현 시작 ################
    result =[]

    for n in range(2000, 3201):              # for n in *range*(1, 10) 1 <= x **< 10**   ## range 안하면 그거 그냥 튜플 값임.
        if n % 7 == 0 and n % 5 != 0:
            result.append(str(n))                 # 질문처럼 하려면 list형이 아니라 ,를 구분자로하는 한 줄이 되야함. => str의 ",".join(변수명)으로 가능
            # ['2002', '2009', '2016', '2023',..... '3199']

    #result = ', '.join(result)     # join함수를 몰라서 못 썼음.

    #help(str.join)

    ########구현 끝 #######################
    print("-------------------------------------------------------------------------------")
    print(result)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

강사님 솔루션

더보기
def main():
    '''
      1.	2000보다 크고 3200보다 작은 범위의 정수에서 7의 배수이고 5의 배수가 아닌 정수값을
        ,(쉼표)를 구분자로 사용하여 한줄로 출력하는 코드를 작성하시오

        출력:
           2002,2009,2016,2023,2037, ...,3171,3178,3192,3199
    '''
    result = None

#####################구현 시작#######################
    x = []
    for i in range(2000, 3201):
        if (i % 7 == 0) and (i % 5 != 0):
            x.append(str(i))

    result=','.join(x)
#####################구현 끝#########################

    print("-------------------------------------------------------------------------------")
    print(result)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 15

def main():
    '''
     9.	다음과 같이 문자와 수치 데이터를 입력 받아서 각각의 개수를 출력하는 코드를 작성하시오.


    입력: hello world! 123

    출력: LETTERS: 10
         DIGITS: 3

    '''
    input_data = "hello world! 123"
    letters = 0
    digits = 0

    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print("LETTERS:", letters)
    print("DIGITS:", digits)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

멤버십 연산자로 입력 데이터를 검사하였고 .isalpha()함수와 .isnumeric()함수를 이용하여 알파벳이면 앞파벳 변수에 +1, 숫자면 숫자 변수에 +1하여 갯수 파악

def main():
    '''
     9.	다음과 같이 문자와 수치 데이터를 입력 받아서 각각의 개수를 출력하는 코드를 작성하시오.


    입력: hello world! 123

    출력: LETTERS: 10
         DIGITS: 3

    '''
    input_data = "hello world! 123"
    letters = 0
    digits = 0

    ####### 구현 시작 ################

    for n in input_data:
        if n.isalpha():
            letters += 1
        if n.isnumeric():
            digits += 1

    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print("LETTERS:", letters)
    print("DIGITS:", digits)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 

Question 16

def main():
    '''
     다음과 같이 문자 데이터를 입력 받아서 대문자와 소문자 개수를 출력하는 코드를 작성하시오.

        입력: Hello world!
        출력: UPPER CASE: 1
            LOWER CASE: 9


    '''
    input_data = "Hello world!"
    upper_data = 0
    lower_data = 0

    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print("UPPER CASE:", upper_data)
    print("LOWER CASE:", lower_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()
더보기

15번과 비슷한데 함수를 isupper()와 islower()로 대문자와 소문자를 파악했다는 것만 다름

def main():
    '''
     다음과 같이 문자 데이터를 입력 받아서 대문자와 소문자 개수를 출력하는 코드를 작성하시오.

        입력: Hello world!
        출력: UPPER CASE: 1
            LOWER CASE: 9


    '''
    input_data = "Hello world!"
    upper_data = 0
    lower_data = 0

    ####### 구현 시작 ################

    for n in input_data:
        if n.isupper():
            upper_data += 1
        if n.islower():
            lower_data += 1

    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print("UPPER CASE:", upper_data)
    print("LOWER CASE:", lower_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 17

def main():
    '''
    List comprehension을 사용하여 입력된 리스트중에서 짝수값을 제거하고 출력하는 코드를 작성하시오.

      입력: [5,6,77,45,22,12,24]
      출력: [5, 77, 45]

    '''
    input_data = [5,6,77,45,22,12,24]
    output_data = None


    ####### 구현 시작 ################

    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

내가 해결한 방법

더보기

for문, 멤버십 연산자와 if문, .append()로 값을 추가하였다.

def main():
    '''
    List comprehension을 사용하여 입력된 리스트중에서 짝수값을 제거하고 출력하는 코드를 작성하시오.

      입력: [5,6,77,45,22,12,24]
      출력: [5, 77, 45]

    '''
    input_data = [5,6,77,45,22,12,24]
    output_data = None


    ####### 구현 시작 ################
    output_data = []

    for n in input_data:
        if n % 2 != 0:
            output_data.append(n)

    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

강사님 솔루션

더보기

List Comprehension을 이용, if문과 멤버십 연산자를 한 줄로 축소하고 바로 변수에 저장시킴

def main():
    '''
    14.	List comprehension을 사용하여 입력된 리스트중에서 짝수값을 제거하고 출력하는 코드를 작성하시오.

      입력: [5,6,77,45,22,12,24]
      출력: [5, 77, 45]

    '''
    input_data = [5,6,77,45,22,12,24]

##################################코드 구현##########################

    output_data = []

    output_data = [x for x in input_data if x % 2 != 0]
    
##################################코드 끝###########################   

    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 18

def main():
    '''
   15.	List comprehension을 사용하여 입력된 리스트중에서 5와 7로 나누어 지는 값을 제거하고 출력하는 코드를 작성하시오.


입력: [12,24,35,70,88,120,155]
출력: [12, 24, 88]


    '''
    input_data = [12,24,35,70,88,120,155]
    output_data = []

    ####### 구현 시작 ################
    

    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

내가 해결한 방법

더보기

17번과 마찬가지로 for문, 멤버십 연산자, if, append()함수를 사용하였다.

def main():
    '''
   15.	List comprehension을 사용하여 입력된 리스트중에서 5와 7로 나누어 지는 값을 제거하고 출력하는 코드를 작성하시오.


입력: [12,24,35,70,88,120,155]
출력: [12, 24, 88]


    '''
    input_data = [12,24,35,70,88,120,155]
    output_data = []

    ####### 구현 시작 ################
    output_data = []

    for n in input_data:
        if n % 5 != 0 and n % 7 != 0:
            output_data.append(n)

    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

강사님 솔루션

더보기

List Comprehension을 이용해 코드 축소

def main():
    '''
   15.	List comprehension을 사용하여 입력된 리스트중에서 5와 7로 나누어 지는 값을 제거하고 출력하는 코드를 작성하시오.


입력: [12,24,35,70,88,120,155]
출력: [12, 24, 88]


    '''
    input_data = [12,24,35,70,88,120,155]
    
##############################코드 구현#########################    

    output_data = []

    output_data = [x for x in input_data if x%5!=0 and x%7!=0]
    
##############################코드 끝###########################

    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 19

def main():
    '''
   	List comprehension을 사용하여 입력된 리스트중에서 0th, 2nd, 4th,6th  값을 제거하고 출력하는 코드를 작성하시오.


  입력: [12,24,35,70,88,120,155]
  출력: [24, 70, 120]



    '''
    input_data = [12,24,35,70,88,120,155]
    output_data = []

    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

내가 해결한 방법

더보기

for문, 멤버십 연산자, enumerate()함수와 if문을 사용하였습니다.

def main():
    '''
   	List comprehension을 사용하여 입력된 리스트중에서 0th, 2nd, 4th,6th  값을 제거하고 출력하는 코드를 작성하시오.


  입력: [12,24,35,70,88,120,155]
  출력: [24, 70, 120]



    '''
    input_data = [12,24,35,70,88,120,155]
    output_data = []

    ####### 구현 시작 ################
    
    output_data = []

    for (i, n) in enumerate(input_data):        # enumerate(열거하다) = (iterator와 start 값 반환?) <-- 맞는 듯
        if i % 2 !=0:                                                # (i = iterator 반복자, n = start 값 (리스트 안의 값) )
            output_data.append(n)


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

강사님 솔루션

더보기

List comprehension을 이용 코드 축소

def main():
    '''
   	List comprehension을 사용하여 입력된 리스트중에서 0th, 2nd, 4th,6th  값을 제거하고 출력하는 코드를 작성하시오.


  입력: [12,24,35,70,88,120,155]
  출력: [24, 70, 120]



    '''
    input_data = [12,24,35,70,88,120,155]
    
############################코드 구현###############################    

    output_data = []

    output_data = [x for (i,x) in enumerate(input_data) if i%2!=0]

############################코드 종료################################
    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")


# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 


Question 20

def main():
    '''
  	List comprehension을 사용하여 입력된 리스트중에서 0th,4th, 5th 값을 제거하고 출력하는 코드를 작성하시오.

    입력: [12,24,35,70,88,120,155]
    출력: [24, 35, 70, 155]




    '''
    input_data = [12,24,35,70,88,120,155]
    output_data = []

    ####### 구현 시작 ################


    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

내가 해결한 방법

더보기
def main():
    '''
  	List comprehension을 사용하여 입력된 리스트중에서 0th,4th, 5th 값을 제거하고 출력하는 코드를 작성하시오.

    입력: [12,24,35,70,88,120,155]
    출력: [24, 35, 70, 155]




    '''
    input_data = [12,24,35,70,88,120,155]
    output_data = []

    ####### 구현 시작 ################

    for (i, n) in enumerate(input_data):
        if i != 0 and i != 4 and i != 5:
            output_data.append(n)

    ########구현 끝 #######################

    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

강사님 솔루션

더보기
def main():
    '''
  	List comprehension을 사용하여 입력된 리스트중에서 0th,4th, 5th 값을 제거하고 출력하는 코드를 작성하시오.

    입력: [12,24,35,70,88,120,155]
    출력: [24, 35, 70, 155]

    '''
    input_data = [12,24,35,70,88,120,155]
###################################코드 구현#############################    

    output_data = []

    output_data = [x for (i,x) in enumerate(input_data) if i not in (0,4,5)]
    
###################################코드 종료#############################   

    print("-------------------------------------------------------------------------------")
    print(output_data)
    print("-------------------------------------------------------------------------------")

# # 메인 함수 호출 ##
if __name__ == "__main__":
    main()

 

반응형

'SK 행복성장캠퍼스 > Python 기초' 카테고리의 다른 글

0903_4일차_반복문_while문  (0) 2020.09.06
0903_4일차_List/Dict Comprehension  (0) 2020.09.06
0902_3일차_반복문_for문  (0) 2020.09.06
0902_3일차_조건문  (0) 2020.09.06
0902_3일차_딕셔너리  (0) 2020.09.06

댓글