Stage 3 - 파이썬으로 장고 깨닫기

변수

실습 - 변수의 숫자형

1
a = 1
2
b = 2
3
c = -1231
4
d = -123.53323
5
sum = 123 + 321
6
#코드 작성중 쓰다가 메모를 하고 싶다면...
7
# 앞쪽에 #이 붙어 있으면 실행이 안돼요
8
9
print(sum) #결과 444
10
11
res = 3 + (2 * 5)
12
print(res) #결과 13
13
14
res = res / 3 #우측변의 계산 결과를 왼쪽에 집어넣는다
15
print(res) #결과 4.333333333333333
16
17
print(1 + 2 -1231) # 결과 -1228
18
print(a + b + c) # 결과 -1228
Copied!
%는 나머지를 계산해줍니다 print(10 % 3) # 1출력

실습 - 변수의 문자열형

1
a = 'Hello World'
2
print(a)
3
4
b = "Hello World!"
5
print(b)
6
7
a = "Hi~~"
8
print(a) #a는 원래 'Hello World'지만 덮어 씌울 수도 있어요
9
10
b = a
11
print(b) # b에 a 값을 전해 줄 수도 있어요
12
13
longName = '''여러줄에 걸쳐서 글을 쓰려면?
14
크리스티아누
15
호날두
16
두스
17
산투스
18
아베이루'''
19
print(longName)
Copied!

실습 - 변수의 리스트형

1
a = [1, 2, 3, 4]
2
print(a)
3
a = [3,5,7]
4
print(a)
5
6
b=[2 ,4,6 , 8 ] # 띄어쓰기의 영향이 없어요
7
list1 = ['my name', "is", 'django...']
8
print(list1)
9
10
list2 = ['I am', 35, 'years old']
11
print(list2)
12
13
list3 = ['어떤 자료라도 넣을 수 있어요', 100 * 3 + 33, "앞에서 사용한 변수도 넣을 수 있어요", b]
14
print(list3)
15
16
print(list2[0]) # python은 0번부터 순서를 매겨요
17
print(list2[1])
18
print(list2[2])
19
print(list3[3]) # error!
Copied!

QUIZ

1. 문자를 더하면?

1
a = 'my name is '
2
b = 'Django'
3
print(a + b)
4
# 문자를 더한 값이 나오겠죠?
Copied!

2. 문자형에 들어 있는 숫자끼리 더하면?

1
num1 = '1234'
2
num2 = '4321'
3
print(num1 + num2)
4
#어떤 답이 나올까요?
Copied!

3. K는 어떤 값이 될까요?

1
K = 'P'
2
P = 123
3
print(K)
Copied!

  1. 1.
    my name is Django
  2. 2.
    12344321
  3. 3.
    P

if

실습 - 연습

if는 특정 조건에 따라 흐름을 관장하므로 제어문, 조건문이라고도 불립니다.
1
age = 11
2
if age > 20: # age가 20보다 크면?
3
print('성인입니다.')
4
5
# 여기까지 아무일도 일어나지 않아요
6
7
if age <= 19: #age가 19보다 작거나 같으면?
8
print('청소년입니다.')
9
10
if age is 100: #age가 100이면?
11
print('백살입니다.')
12
13
age = 23
14
# age를 23으로 변경하고 위의 if문을 그대로 다시 써보세요
Copied!

실습 - elif와 else

elif는 지금까지 검사한 if, elif가 실행되지 않았을 때, 새로운 조건을 검사합니다. else는 지금까지 if, elif가 실행되지 않았을 때, 조건 검사 없이 바로 실행합니다.
1
score = 87
2
if score >= 70:
3
print('통과')
4
else:
5
print("탈락")
6
7
if score >= 90:
8
print('수')
9
elif score >= 80:
10
print('우')
11
elif score >= 70:
12
print('미')
13
elif score >= 70:
14
print('양')
15
else:
16
print('가')
Copied!

for

for란 무엇인가?

어떤 반복적인 일을 하고 싶을때 for문을 사용합니다. for 구문의 사용방법은 아래와 같습니다.
for문의 사용법
1
# 1부터 100을 출력하고 싶을때
2
print(1)
3
print(2)
4
#...
5
print(100)
6
# 백번을 입력해야한다
Copied!
만약 이때 for문을 사용한다면 다음과 같은 코드만으로도 가능합니다.
1
for i in range(1, 101): # 1부터 101보다 작은 수까지(=100턴 동안)
2
print(i)
3
print(i * 2)
Copied!
결과를 예측해보세요. 어떻게 나올까요? (직접 코딩해서 확인하는게 제일 좋겠죠)

list를 for문을 이용해 출력하기

다음과 같은 리스트가 있다고 가정합시다.
todo_list = ['이따 밥먹기', '빨래하기', 1, 2, 3, '운동하기']
이 내용물들을 모두 출력하려면 어떻게 해야 할까요? 오늘 배운대로 라면 이렇게 할 수 있습니다.
1
print(todo_list[0])
2
print(todo_list[1])
3
print(todo_list[2])
4
print(todo_list[3])
5
print(todo_list[4])
6
print(todo_list[5])
Copied!

헷갈리지 말기

앞서 diary를 출력할할 때 {{ diray.0 }} {{diary.1 }}과 같은 방식으로 작성했습니다.
그런데 이번에는 todo_list[0] todo_list[1]와 같은 방식을 사용합니다. 자세한 설명은 Stage2 도움말에서 확인해주세요.
하지만 너무 반복성이 짙죠. 만약 리스트 내용물이 100개나 있다면, 가히 노가다라 할 만한 작업을 해야할 겁니다. 그나마 100개라면 다행이겠죠.
이러한 반복적인 작업을 대신 수행해주는게 for문입니다. for문을 통해 list를 출력하려면 다음과 같이 입력해주세요.
for문에서 list 접근하기
todo_list라는 이름의 리스트에 접근할 것 입니다. 그리고 그 안에 있는 내용물 하나 하나를 todo라고 부르겠습니다. todo는 맨 처음에 todo_list[0]이 되었다가 이어서 todo_list[1]이 됩니다. 그리고 todo_list[2]가 되는 작업을 todo_list가 끝날때까지 반복합니다. 즉 위에서 노가다로 작업한 print 구문과 똑같은 작업을 한다고 볼 수 있습니다.

예시

실습 - list 출력 개선

stage2(강의자료 17페이지)에서 for 문을 사용하지 않고 모든 리스트를 각각 출력해봤습니다. 이제 이 부분을 개선시킬 수 있게 됐습니다.
단 차이점은 장고를 통해 html 에서 for문을 사용한다는 것 입니다. 이는 장고의 템플릿 문법으로 장고가 가지고 있는 특색이자 장점입니다.
1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
<meta charset="UTF-8">
5
<title>Play2</title>
6
</head>
7
<body>
8
{{ name }}님({{ age }}) 안녕하세요? <br>
9
{{ cnt }} 번째 방문자이십니다!<br>
10
11
<h2>나의 일기</h2>
12
{% for post in diary %}
13
<h4>{{ post }}</h4>
14
{% endfor %}
15
</body>
16
</html>
Copied!

결과확인

Last modified 3yr ago