일지
DAY 4
joo_coding
2025. 2. 21. 15:09
[keyword]
자료형
자료구조
인덱싱
슬라이싱
----------------------
p.77 리스트 자료형
p.121 조건문
<예제>
자판기
가위바위보
----
1. 리스트 (List)
- 특징: 순서가 있는 변경 가능한(즉, 값 변경, 추가, 삭제 가능) 자료형입니다.
- 사용 예시: my_list = [1, 2, 3, 'apple']
- 특징:
- 인덱스를 사용해 요소에 접근.
- 다양한 데이터 타입을 혼합해서 저장 가능.
- 변경 가능 (mutable).
2. 튜플 (Tuple)
- 특징: 순서가 있는 변경 불가능한(immutable) 자료형입니다.
- 사용 예시: my_tuple = (1, 2, 3, 'apple')
- 특징:
- 한 번 정의된 값은 수정할 수 없음.
- 리스트와 유사하지만 변경이 불가능하므로, 데이터 보호가 필요할 때 사용.
3. 딕셔너리 (Dictionary)
- 특징: 키(key)와 값(value)의 쌍으로 이루어진 자료형입니다. 순서가 없으며, 키는 유일해야 합니다.
- 사용 예시: my_dict = {'name': 'Alice', 'age': 25}
- 특징:
- 키로 데이터를 접근하며, 값은 변경 가능.
- 중복된 키는 허용되지 않음.
4. 조건문 (if-else)
- 특징: 특정 조건을 기준으로 코드의 실행 흐름을 제어하는 문법입니다.
- 사용 예시:
if x > 10: print("x는 10보다 큽니다.") else: print("x는 10보다 작거나 같습니다.")
- 특징:
- 조건이 참(True)일 경우 해당 블록 실행, 그렇지 않으면 else 또는 elif 블록이 실행됩니다.
- 여러 조건을 elif로 분기할 수 있습니다.
---
#################################리스트#######################
#리스트 선언 대괄호 =[]
num = [1, 2, 3] #인덱스로 하면 0번부터 시작. 그래서 이거는 0번이 1 /list는 예약어
flo = [0.1, 0.2, 0.3, 0.4] #실수형 리스트
food = ["김밥", "라면", "떡볶이", "돈까스", "우동"] #문자형 리스트
#리스트 안에 리스트 넣기 [[], [], []]
l = [1, 2, 3, ['a', 'b', 'c']]
print(l)
l_2 = [num, flo, food]
print(l_2)
l_3 = [[1,2,3], [4,5,6], [7,8,9]]
#인덱싱으로 정수형 리스트에서 2 꺼내기
print(num[1]) #2는 2번'째'에 있어서 1번을 호출
print(num[-1]) #뒤에서부터 1번째
#실수형에서 2번째와 3번째 값을 가져오기
print(flo[1], flo[2])
print(flo[1:3]) #범위로 가져오기
#문자형 리스트에서 3번째 꺼내기
print(food[2])
#여기에서 두번째 글자 추출
print(food[2][1]) #내가 너무 복잡하게 생각했다. 사실 굉장히 간단한 문제
#3차원
#[[[1,2,3]]] 여기서 2를 뽑아보자 <연습해보자
#다섯번째 문자열의 첫번째 문자에 접근
print(food[4][0])
#리스트의 함수
num.append(100) # num = num.append(100) 이렇게하면 none 나옴
print(num) # 왜 문자형은 위처럼 했는데, 리스트형은 함수를 이렇게 칠까? 그냥 리스트라서..
#replace함수와 append함수의 차이를 명확히 알고 넘어가야한다.
#replace는 반환을 하는거고, append는 나 자신을 바꾼다.
c = num.count(1)
print(c)
#리스트 초기화 = 재선언
num = []
print(num)
#하나씩 지우는건 조건문,반복문 끝나면 배울 예정
#################################튜플##############################
#튜플 선언 = 소괄호 ()
tl_1 = (1, 2, 3)
tl_2 = (0.1, 0.2, 0.3, 0.4)
tl_3 = ("가나", "다라", "마바", "사아", "자차")
tl_4 = (1,) #하나만 쓰려면 뒤에 쉼표 꼭 붙여야함
print(tl_1[1])
print(tl_3[0][1])
print(tl_2[0:2])
#튜플과 리스트의 차이점: 튜플은 값 변화가 안됨 / 원래 튜플만 있었고, 리스트가 나중에 만들어짐
#그래서 리스트가 더 무겁고, 튜플이 더 빠르게 사용 가능 = 추가,삭제 등이 용이함
#근데 초보 입장에서 잘 모르기 때문에 쓸 일 없음
#################################딕셔너리##############################
#dict=key:value
#딕셔너리 선언 = 중괄호 {}
#key=숫자,문자 가능 / 리스트 불가능
dict_ = {"안녕" : "이것은 인사입니다.", "잘가": "이것은 헤어질 때 인사입니다."}
print(dict_["안녕"])
#이걸로 쿠키는 얼마입니다. 만들수 있을듯
print(dict_["안녕"][1])
new_dict = {"Test": ["안녕", "하이", "구텐탁", "곤니찌와"]}
print(new_dict["Test"][2][1]) #구텐탁의 텐 꺼내기
#################################집합자료형##############################
#set 선언 {}
set_ = {1,1,1}
print(set_) #set은 중복값을 갖지않고, 중복값만 반환
set_2 = {1, 2, 3, 4, 5}
#print(set_2[1 ]) #set은 순서가 존재하지 않기 때문에 인덱싱 안됨
#################################불자료형##############################
#True/False
# 비교연산자 복습 == != < <= > >= / 비교연산자의 결과는 항상 불자료형이 나온다.
#
#
#
#################################조건문##############################
#p.121
# user_money = input("돈 내놔!: ")
# user_money = int(user_money)
# user_select = input("뭐 먹을래?: ")
#and
# if user_money >= 500 and user_select == "물": ##and는 좌항과 우항이 True 일때만 가능 (T=T)
# print("물") #들여쓰기=탭=띄어쓰기4번 <범위를 지정해주는 방법
# user_money = user_money - 500 #500원 차감하기 *들여쓰기 해서 범위 묶어주는게 중요
# elif user_money >= 300 and user_select == "콜라":
# print("콜라")
# user_money = user_money - 300
# else:
# print("아무것도 구매하지 못했습니다.")
#else에는 이미 위에 조건문이 있고, 그게 충족이 안됐을 때 쓰기 때문에 조건문 필요없음
#print(user_money) #이거는 무조건 출력해야되기 때문에 if문 밖에 있어야함
#물이 500원인데, 600원을 넣으면?
#메뉴를 추가할때는 elif(else if)를 같은 선상에 작성
#if문은 순서가 중요하기 때문에 큰수를 먼저 써야함 (무조건 그래야하는건 아니고 상황에 맞게)
#500원을 넣고 콜라를 뽑고싶으면? 조건이 2개 필요 - 돈이 충분히 있느냐, 어떤 메뉴를 고를거냐
#돈을 부족하게 넣으면 바로 돈이 부족합니다 < 이것도 할수있을거같은데
#and / or / not
#and는 좌항과 우항이 True 일때만 가능 (T=T)
#or은 둘중에 하나만 맞아도 True
#not은
user_money2 = input("돈을 넣어주세요.: ")
user_money2 = int(user_money2)
user_select2 = input("음료를 골라주세요.: ")
if user_money2 >= 900 and user_select2 == "코카콜라":
print("코카콜라")
user_money2 = user_money2 - 900
elif user_money2 < 900 and user_select2 == "코카콜라":
print("돈이 부족합니다.")
elif user_money2 >= 800 and user_select2 == "펩시콜라":
print("펩시콜라")
user_money2 = user_money2 - 800
elif user_money2 < 800 and user_select2 == "펩시콜라":
print("돈이 부족합니다.")
elif user_money2 >= 700 and user_select2 == "포카리":
print("포카리")
user_money2 = user_money2 - 700
elif user_money2 < 700 and user_select2 == "포카리":
print("돈이 부족합니다.")
elif user_money2 >= 500 and user_select2 == "물":
print("물")
user_money2 = user_money2 - 500
elif user_money2 < 500 and user_select2 == "물":
print("돈이 부족합니다.")
else:
user_money2 < 900 or user_select2 != "코카콜라"
user_money2 < 800 or user_select2 != "펩시콜라"
user_money2 < 700 or user_select2 != "포카리"
user_money2 < 500 or user_select2 != "물"
print("해당 메뉴가 존재하지 않습니다.") #돈x메뉴x=메뉴x
print(user_money2)
--
#is
print(4==4.0)
print(4 is 4.0)