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 |
댓글