교육 2주차의 첫날이다. 이번 주부터는 새로 옮긴 교육장에서 수업이 진행되었고, 지난 시간에 배웠던 input과 split에 대한 복습과 실습으로 수업을 시작했다.
# 실습 3. input 연습하기
name = input("이름을 입력하세요 :")
age = input("나이를 입력하세요 :")
print(f"안녕하세요. 저는 {name}이고, {age}살 입니다.")
# 실습 4. 입력과 연산 연습하기
# 4-1. 사용자로부터 가로와 세로를 입력 받아 넓이와 둘레를 계산하세요
width = int(input("가로의 길이를 입력하세요 :"))
length = int(input("세로의 길이를 입력하세요 :"))
extent = width * length
round = (width + length) * 2
print(f"넓이 : {extent}")
print(f"둘레 : {round}")
# 4-2. 네 자릿수 정수를 입력 받고 각 자릿수를 분리하여 출력하세요.
num = int(input("네 자릿수 정수를 입력하세요 :"))
thousand = num // 1000
hundred = (num // 100) - (num // 1000 * 10)
tens = (num // 10) - (num // 100 * 10)
ones = num - (num // 10 * 10)
print(f"천의 자리 : {thousand}")
print(f"백의 자리 : {hundred}")
print(f"십의 자리 : {tens}")
print(f"일의 자리 : {ones}")
# 실습 5. 발표 순서와 발표 주제 정하기
name1, name2, name3 = input("각 조의 발표자 3명의 이름을 입력해주세요(이름은 띄어쓰기로 구분) :").split()
title1, title2, title3 = input("각 조의 발표 주제 3개를 입력해주세요(각 주제는 띄어쓰기로 구분) :").split()
print(f"1조 발표자 : {name1} - 주제 : {title1}")
print(f"2조 발표자 : {name2} - 주제 : {title2}")
print(f"3조 발표자 : {name3} - 주제 : {title3}")
# 실습 6. 날짜와 시간
year, month, day = input("날짜를 연도.월.일로 구분하여 입력해주세요 :").split(".")
hour, minute, second = input("시간을 시:분:초로 구분하여 입력해주세요 :").split(":")
print(f"RE3의 개강일은 {year}년 {month}월 {day}일")
print(f"시작 시간은 {hour}시 {minute}분 {second}초 입니다.")
리스트를 배우기 전에 먼저 이터러블 (iterable), 컬렉션 (collection), 시퀀스 (sequence)에 대한 개념 정리부터 시작했다.
반복 (iteration)이 가능한 객체의 총칭
항목이 순서대로 정렬된 데이터의 묶음
컬렉션의 하위개념으로 볼 수 있음(컬렉션 중 순서가 있는 자료형)
시퀀스의 핵심은 순서(인덱스)가 존재
리스트1 = ["안녕하세요", "반갑습니다", "어서오세요"]
리스트2 = [10, "10", 10.0, [1,2,3,4]]
# 리스트 생성함수
리스트3 = list()
# 이터러블을 리스트로 변환
리스트4 = list("안녕하세요")
리스트1 = [10, 20, 30, 40, 50]
print(리스트1[0]) # = 10
print(리스트1[2]) # = 30
print(리스트1[-1]) # 50
# 인덱싱으로 원소에 접급해 값 수정
리스트1[3] = 4
print(리스트1[3]) # = 4
리스트1 = "안녕하세요"
print(리스트1[2]) # = 하
print(리스트1[-2]) # = 세
# 문자열은 '불변 자료형'이기 때문에, 수정 불가
# 리스트1[0] = "가" X 불가능

인덱스 번호는 원소를 나타내는 것이 아닌 원소의 앞부분을 나타내는 것
따라서 위의 그림처럼 ‘30’~’60’을 포함시키 위해 [2:6] 으로 표기
num = [10,20,30,40,50,60,70,80,90,100]
print(num[1:4])
# [20, 40]
# :의 뒤를 생략하면 끝까지
print(num[3:])
# [40, 50, 60, 70, 80, 90, 100]
# :의 앞을 생략하면 처음부터
print(num[:4])
# [10, 20, 30, 40]
# 원본은 변경x -> 새로운 시퀀스 생성
num2 = (num[:4])
print(num2)
# [10, 20, 30, 40]
# 간격 설정
print(num[1:10:2]) #[1::2]로 생략 가능
# [20, 40, 60, 80, 100]
# 같은 리스트를 복제 (: 앞뒤 모두 생략)
print(num[:])
# [10,20,30,40,50,60,70,80,90,100]
# 뒤집어서 복제
num[::-1]
# [100, 90, 80, 70, 60, 50, 40, 30, 20, 10]
# 일부 구간 수정하기
num[2:4] = [300,400]
print(num)
# [10,20,300,400,50,60,70,80,90,100] 내일 있을 프로젝트를 위해 진도와는 다르지만 조건문을 미리 배우게 되었다.
if + 조건 → 조건이 참이면 실행
조건문은 True/False로 바뀔 수 있을때 사용
# if 조건:
# print("참이면 실행")
a = int(input())
if a > 10:
print("a는 10보다 크다")
print("조건문 종료")
# 들여쓰기 에러
if a > 10:
print("a는 10보다 크다")
# 조건문에 실행할 코드를 작성하지 않았을 때
# pass로 해당 조건문을 넘어갈 수 있음
if a > 100:
pass
콜론 ( : )의 역할 : 코드블록의 시작을 알리는 신호
들여쓰기 (Indentation) : 같은 블록에 속한 코드들을 그룹화 (콜론 다음 줄부터 들여쓰기를 적용한 모든 줄은 동일한 블록에 속함)
False
None
숫자 0, 0.0
빈 문자열 “”, 빈 리스트 [], 빈 튜플 (), 빈 딕셔너리 {}
그 외 값은 모두 True로 간주 됨 (Truthy)
else : ‘아니라면’의 의미 → 조건 필요 X, 반드시 if 문과 같이 나와야 됨
ex )
num = int(input("숫자를 입력해주세요 :"))
if num % 2 == 0:
print("짝수입니다.")
else:
print("홀수입니다.")
ex )
# 90점 이상이면 A
# 80점 이상이면 B
# 70점 이상이면 C
# 60점 이상이면 D
# 그 외에는 F
score = int(input())
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("F")
user_name = input("ID를 입력하세요 :")
if user_name == "admin":
password = input("비밀번호를 입력하세요 :")
if password == "abcd":
print("로그인 성공!")
else:
print("잘못된 비밀번호입니다.")
else:
print("잘못된 계정입니다.")
and를 활용하여 중첩을 단순화 가능
이후에는 조건문을 활용하여 실습 문제를 풀어보았다.
# 실습1. 날씨에 따른 준비물 안내
weather = input("오늘의 날씨를 입력해주세요(비/맑음) :")
if weather == "비":
print("우산을 챙기세요!")
if weather == "맑음":
print("선크림을 바르세요!")
# 실습 2. 짝수 홀수 판별하기
num = int(input("숫자(정수)를 입력해주세요 :"))
if num % 2 == 0:
print("짝수입니다.")
else:
print("홀수입니다.")
# 실습 3. 나이에 따른 영화 관람 가능 여부
age = int(input("나이를 입력해주세요 :"))
if age <= 12:
print("전체 관람가")
elif age <= 15:
print("12세 이상 관람가")
elif age <= 18:
print("15세 이상 관람가")
else:
print("청소년 관람불가 가능")
# 실습 4. 시, 분, 초 구하기
num = int(input("초를 입력해주세요 :"))
hour = num // 3600
minute = (num % 3600) // 60
second = num % 60
if num >= 3600:
print(f"{hour}시간 {minute}분 {second}초")
elif num >= 60:
print(f"{minute}분 {second}초")
else:
print(f"{second}초")
# 실습 5. 편의점 도시락 구매하기
money = int(input("금액을 입력해주세요 :"))
food = input("식품명을 입력해주세요(김밥 / 삼각김밥 / 도시락) :")
if food == "김밥":
if money >= 2500:
print("구매에 성공했습니다!")
else:
print("잔액이 부족합니다.")
elif food == "삼각김밥":
if money >= 1500:
print("구매에 성공했습니다!")
else:
print("잔액이 부족합니다.")
else:
if money >= 4000:
print("구매에 성공했습니다!")
else:
print("잔액이 부족합니다.")
진도가 조금 느려서 수업의 템포가 약간 빨랐지만, 오늘 배운 내용들이 꽤 재미있어서 시간이 정말 빨리 지나간 것 같다.
문제를 해결하기 위해 어떻게 코드를 구성할지 고민하는 시간이 꽤나 재밌다고 느껴진 하루였다.