a = 'a' # 작은 따옴표나
b = "b" # 큰 따옴표 모두 같은 뜻!
c = "이렇게는 쓰면 안됨' # 따옴표는 종류가 같아야 함!
first_name = "nike"
last_name = "daybreak"
first_name + last_name # nikedaybreak
first_name + " " + last_name # nike daybreak (공백도 사용가능)
a = "2"
b = "4"
a + b # 24
a = "3"
b = 10
a + b # error! (문자열과 숫자의 합은 불가)
# int(a) + b 또는 a + str(b)는 가능!
len(문자열)
문자열의 길이 그대로 나오고, for문
에서 루프돌릴 때 사용하거나 비교에서도 많이 사용됨!
인덱스와 조금 헷갈릴 수 있으니 주의!
인덱스 : 문자열의 몇 번째
글자인지 부르기 위해 사용하며, 인덱스의 경우 0
부터 시작
f="abcdefghijklmnopqrstuvwxyz"
f[5] # f
슬라이싱 : 문자열의 일부를 잘라낼 때 사용
f="abcdefghijklmnopqrstuvwxyz"
f[4:15] # efghijklmno f[4]부터 f[15] 전까지
f[8:] # ijklmnopqrstuvwxyz f[8]부터 끝까지
f[:7] # abcdefg f[0]부터 f[7] 전까지
f[:] # abcdefghijklmnopqrstuvwxyz 처음부터 끝까지
split('문자열')
을 통해 문자열을 자를 수 있음
예전부터 계속 연습했던 이메일 자르기에서 쓰인거!
domain = myemail.split('@')[1].split('.')[0]
c = []
또는 d = list()
사용a = [1, 5, 2]
b = [3, "a", 6, 1]
e = [1, 2, 4, [2, 3, 4]]
len()
을 사용해 잴 수 있음0
부터 시작!a = [1, 3, 2, 4]
print(a[3]) # 4
print(a[1:3]) # [3, 2]
print(a[-1]) # 4 (맨 마지막 것) -> 문제풀다보면 은근히 유용!
# -> 스택에서도 사용!
2
인 곳에 리스트가 있고, 해당 리스트에서 30
을 꺼내오고 싶다면 차례대로 불러준다고 생각하면 덜 헷갈린다. 따라서 a[2][1]
과 같이 찾고 싶은 녀석의 인덱스를 하나씩 매겨가면서 진행하면 된다.a = [1, 2, [9, 30], 1]
print(a[2]) # [9, 30]
print(a[2][0]) # 9
append
를 썼다. 파이썬도 마찬가지로 append
를 통해 값을 추가할 수 있다.a = [1, 2, 3, 4]
a.append('문자열이 나올줄 몰랐지?')
# a = [1, 2, 3, 4, '문자열이 나올줄 몰랐지?']
a.sort(reverse=True)
로 작성하면 내림차순으로 출력됨a = [2, 1, 4, "2", 6]
print(1 in a) # True
print("1" in a) # False
print(0 not in a) # True
{'key' : 'value'}
의 형태person = {"name":"Bob", "age": 21}
a = {}
a = dict()
value
값으로는 아무 자료형이나 다 올 수 있고, 다른 딕셔너리 또한 추가 가능인덱싱 불가!!!
person = {"name":"Bob", "age": 21}
# 이름 밸류값 갱신
person["name"] = "Robert"
print(person) # {'name': 'Robert', 'age': 21}
# 새로운 키-밸류값 추가
person["height"] = 174.8
print(person) # {'name': 'Robert', 'age': 21, 'height': 174.8}
person = {"name":"Bob", "age": 21}
print("name" in person) # True
print("email" in person) # False
print("phone" not in person) # True
불변
인 자료형a = (1,2,3)
# a[1] = 2
# a[2] = 4와 같은 작업 불가!
a_dict = [('bob','24'),('john','29'),('smith','30')]
a = [1,2,3,4,5,3,4,2,1,2,4,2,3,1,4,1,5,1]
a_set = set(a)
# a_set = {1, 2, 3, 4, 5}
for person in people:
try:
if person['age'] > 20:
print (person['name'])
except:
name = person['name']
print(f'{name} - 에러입니다')
읽기 좋은 코드
라는 것을 명심!(참일 때 값) if (조건) else (거짓일 때 값)
map(function, iterable)
# 여러 개의 input을 split에 들어있는 것을 기점으로 나누어 받는데, 모두 int형으로 매핑하렴
n = map(int, input().split())
filter(조건 함수, 순회 가능한 데이터)
result = filter(lambda x: x['age'] > 20, people)
print(list(result))
lambda 매개변수 : 표현식
a = (lambda x, y: x+y)(10, 20)
print(a) # 30
result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)
print(list(result))
class Monster():
hp = 100
alive = True
def damage(self, attack):
self.hp = self.hp - attack
if self.hp < 0:
self.alive = False
def status_check(self):
if self.alive:
print('살아있다')
else:
print('죽었다')
m = Monster()
m.damage(120)
m2 = Monster()
m2.damage(90)
m.status_check()
m2.status_check()