오늘 배운건 for, range를 배웠는데 생각보다 직관적인 이해가 쉽지않았다.
그래도 알아가는 맛이있었다.
3-1 반복작업
예시)
거북이 100마리에게 인사를 하고싶다.
그래서 print('안녕 거북이 1번'), print('안녕 거북이 2번') .... print('안녕 거북이 100번') 을 사용해야 100마리 거북이에게 인사를 할 수 있다.
하지만 for와 range를 이용하면 100마리 아니 몇만마리도 두 줄의 코드로 인사할 수 있다.
for num in range(101): -> 0번부터 100번까지임 1번부터 100번을 원한다면 range(1,101) 이라 작성
print("안녕 거북이", num, '번')
->안녕 거북이 0번
안녕 거북이 1번
.
.
.
안녕 거북이 100번
으로 나온다.
즉, for는 반복되는 작업을 위한 코드이고
range()는 0부터 괄호안 숫자(정수)-1 까지 출력되는 코드이다.
반복작업의 경우 for와 while 두 가지 방법을 쓸 수 있는데, 지금은 for만 배운다.
책에는 횟수가 정해져 있을때 for, 조건이 정해져있을때 while 이라 한다.
아직 뭔 말인지 모르겠다.
IDLE 에디터 만드는건 굳이 복습하기보다는 하면되는거라 제낀다
IDLE에는 대화형 셀과 에디터 두 가지가 있다.
for의 기본구조
for와 리스트를 같이 쓸 수 있다.
기본구조는
for 변수 in 리스트:
실행할 명령
for와 in을 키워드
:다음 아래에 들여쓰기
실행할 명령을 코드블록이라 한다.
친절하지 않게 작성했는데, 어짜피 내가 복습하려고 쓰는거니까
혹시나 이 글을 읽는 분은 꼭 책을 사서 공부하자
돈 아깝지 않다.
ex)
for num(변수) in [0,1,2](리스트):
print(num)
0
1
2
이런식으로 출력된다.
책에 설명이 친절히 나와있다.
변수의 자리는 리스트에서 가져온 값을 잠시 저장한다. 변수에 들어가는 값은 in뒤 리스트에서 꺼내 쓰는 원리이다.
: 다음 실행 명령이 있는데 이부분을 코드블록이라 하며 리스트의 마지막 값을 가져올때까지 코드블록에 작성된 명령을 반복한다. 이 반복하는 것을 for를 이용하는 것
같은 원리로 문자열도 출력할 수 있다.
>>> charactors = ['앨리스', '도도새', '3월토끼']
>>> for charactors in charactors :
print(charactors )
앨리스
도도새
3월토끼
반복변수의 이름을 일반변수와 같이 의미있게 작성하는 것이 이해하기 쉽다는 팁이있었다.
>>> characters = ['앨리스', '도도새', '3월토끼']
>>> for character in characters:
print(character)
앨리스
도도새
3월토끼
>>> #파이썬이 단수와 복수 개념을 알아먹는건가? 에 대한 궁금증이 생겼다.
>>>
>>>
>>>
>>> #75page
>>>
>>>
>>>
>>> players=['공작부인', '흰토끼', '하트잭', '모자장수']
>>> for player in players:
print(player, '퇴장!')
공작부인 퇴장!
흰토끼 퇴장!
하트잭 퇴장!
모자장수 퇴장!
>>>
>>>
>>>
>>>
>>> #문자열 반복 77page
>>>
>>>
>>> for letter in '체셔고양이':
print(letter)
체
셔
고
양
이
들여쓰기
77page
들여쓰기
:코드블럭을 구분하기 위해 사용한다.
파이썬에서 반복된 구조나 뒤에서 배울 조건을 판단하는 구조등에서는 꼭 들여쓰기를 해야한다
보통 띄어쓰기 4번이나 텝을 이용한다
어떤 방식으로 사용해도 상관없으나 하나의 프로그램에서는 한 가지 방법으로 띄어쓰기를 통일해서 사용해야 한다.
섞어쓰면 오류가 발생할 수 있음
아래 두 코드의 차이점은 코드블록을 포함했는지 안했는지의 차이이다.
1번 코드
nums=[0,1,2]
for num in nums:
print(num)
print(nums)
0
1
2
[0, 1, 2]
2번 코드
for num in nums:
print(num)
print(nums)
0
[0, 1, 2]
1
[0, 1, 2]
2
[0, 1, 2]
글로 풀어서 설명하려니 길어지는데
간단히 말하자면
for의 반복작업을 수행하는 범위(코드블록)를 들여쓰기를 통해 지정하는 것이다.
즉, 1번은 들여쓰기가 된 부분만 for 반복작업이 수행된 이후에 print 출력이 실행되었다.
반면, 2번은 들여쓰기 된 부분이 쓰여진 순서에 맞게
for ( print(num) -> print(nums) ) 1회 수행후
다시 명령으로 올라가서
for( print(num) -> print(nums) ) 2회째, 3회째 수행되는 모습을 볼수있다.
내려갔다 올라가는 구조임을 알아두자.......
설명을 못하겠다 ㅎㅎ 강의듣자 ㅎㅎ...
내 복습글을 읽는분이 느낌적인 느낌으로 이해는 됐으리라 믿겠다.
안되면 책사자 1.5다 디자인도 이쁨
순서열 만들기
-> range(끝_값+1)
->range(앞 수, 끝 값+1)
->range(앞 수, 끝 값+1, 증가분)
파이썬표기대로 쓰면
range(start, stop[,step]) 여기서 step은 말그대로 보폭 개념으로 step만큼 증가하는 순서
예시)
>>> for num in range(1, 6, 2):
print(num)
1
3
5
시작인 1부터 2씩 증가해서 5까지(작성한 6 -1까)
그동안 순서열을 출력할 때, 리스트를 이용해 순서열을 만들고 [0,1,2,3...,100] print (리스트)로 출력해왔다.
그런데 숫자가 너무 커지면 ?! 그럴때 쓰라고 있는게 range 함수이다.
응용
-> 2단 구구단 만들기
for y in range(1,10):
print(2,'x',y,'=',2*y)
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
for와 리스트의 인덱스를 활용하여
리스트 값 바꾸기
>>> roses=['하얀장미','하얀장미','하얀장미']
>>> for i in range(3):
roses[i]='빨간장미' i에 숫자 0,1,2 가 인덱스 넘버로 인식
roses[ 인덱스 넘버] = 빨간장미로 바꾸기
>>> print(roses)
['빨간장미', '빨간장미', '빨간장미']
슬슬 연습문제를 풀면서 복습을 해야함을 느낀다.
함수가 돌아가는 원리는 이해하는게 중요한거같다.
https://www.youtube.com/watch?v=b7zKknAr1rU&list=PLGPF8gvWLYyontH0PECIUFFUdvATXWQEL&index=39
http://www.yes24.com/Product/goods/61410302
SQL LIKE 연산자의 활용 (0) | 2022.01.07 |
---|---|
DataCamp SQL_05 'Foreign keys' (0) | 2022.01.06 |
3. 파이썬 기초, 리스트와 메소드 몇 ( 교재 - 한입에 쏙 파이썬 #19 ~ #30 ) (0) | 2019.06.08 |
2. 파이썬 기초, 문자열과 변수 ( 교재 - 한입에 쏙 파이썬 #13 ~ #19 ) (0) | 2019.06.03 |
1. 파이썬 기초, 출력과 사칙연산 ( 교재 - 한입에 쏙 파이썬 #1 ~ #12 ) (0) | 2019.06.03 |
댓글 영역