i = 0
while i < 10:
print(i)
i += 1
와
for i in range(10):
print(i)
는 동일하다.
range(x,y,z)는 x는 시작, y는 종료, z는 증가다. 만약 range(1,10,2)라고 한다면 이는 1부터 10 미만까지 2씩 증가라는 뜻으로 해석할수 있는거같다.
list에 이름을 지을땐 복수형으로 이름을 짓는것이 좋다
enumerate는 반복가능한 객체를 다룰 때, 인덱스와 요소를 한꺼번에 불러오는 함수이다.
예를 들어
for d in range(len(days)):
print("{}월은 {}일까지".format(d+1,days[d]))
이런 코드가 있는데 이 코드에 enumerate를 사용하면
for d,days in enumerate(days):
print("{}월은 {}일까지".format(d+1,days))
이런식으로 조금 깔끔해진다.
인덱싱: 인덱싱은 인덱스에 순서를 나타내는 의미이다.
슬라이싱 : 문자열[start:stop:step]
인덱스 번호를 사용하여 일정구간을 잘라내거나 일정구간만 추출 등을 할 수 있는 함수이다.
s = ['안','녕','하','세','요']
s[0:2]
if or : or은 a조건과 b조건중 하나라도 만족하면 실행시킨다라는 뜻으로 쓰이는데, 이걸 if와 조합해서 쓰면 만약 a조건과 b조건중 하나라도 만족하면 실행이라는 뜻으로 쓰인다.
if and : and는 해당 조건들이 참일때 실행되는 코드인데 여기에 if를 붙이면 만약 이 조건들이 모두 만족하면 실행된다는 뜻이다.
a = [2,1,5,6,7]
for i in range(len(a)):
print(a[i])
a라는 리스트 안에 2,1,5,6,7의 값이 있고 for i in range(len(a))의 뜻은 i를 (len(a))-1의 값까지 증가라는 뜻인데 len(a)는 리스트 안 요소의 개수를 나타내는 함수이다.
그럼 i가 5-1일때까지 반복된다는 뜻으로 i 값이 지정되지 않았으니 0부터 4까지 반복되는 것이다.
그럼 밑에 있는 print(a[i])는 print(a[0])부터 print(a[4])까지 증가할테니 출력값은 list a의 0부터 4번째 자리 값인 2,1,5,6,7이 순차적으로 출력된다.
days = {
"1월" : 31,
"2월" : 28,
"3월" : 31
}
- for month in days.keys():
print("{}".format(month))- for day in days.values():
print("{}".format(day))- for month,day in days.items():
print("{} {}일".format(month,day))
첫번째 for문 부터 각각 "1월","2월","3월" 을 두번째는 31,28,31을 세번째는 1월 31일, 2월 28일 3월 31일을 출력하는 코드들이다.
여기서 keys()는 1월,2월,3월을 뜻한다. 이는 31,28,31일이라는 값들의 이름임을 알 수 있으며 values()는 key들의 값, items()은 key와 values 값을 한번에 묶어서 보내는 값임을 알 수 있다.
조금 더 나아가서 저런 딕셔너리에 값을 추가하거나 변경하고 싶을때는 .update()를 사용한다.
days = {
"1월" : 31,
"2월" : 28,
"3월" : 31
}
days.update({"2월":29,"4월" : 30,"5월" : 31})
라는 코드를 보면 days라는 딕셔너리에 2월의 value인 28을 29로 수정하고 "4월" : 30과 "5월" : 31을 추가하라는 내용의 코드이다.
.pop이라는 함수도 있는데 이 함수는 딕셔너리나 리스트에서 값을 꺼낸 후에 목록에서 제거하는 기능을 하는 함수이다
days = {
"1월" : 31,
"2월" : 28,
"3월" : 31
}
days.pop('3월') / del days['3월']
라는 코드는 딕셔너리에 있는 3월의 내용을 삭제하는 기능을 한다.