# 반복문

## for

기본 문법은 \
for 변수 in 리스트 :\
&#x20;   반복할 코드\
리스트의 값을 하나식 꺼내어 변수에 넣어줍니다.&#x20;

```python
data = [6,5,4,3,2,1]
for number in data:
    print(number)
```

간단하게 data에 있는 값을 하나식 꺼내어 출력하는 for문 입니다.

반복할 코드는 다양하게 변경 가능 합니다.

3일 때만 출력하기

```python
data = [6,5,4,3,2,1]

for number in data:
    if(number == 3):
        print(number)
```

평균값 구하기

```python
data = [6,5,4,3,2,1]
total = 0

for number in data:
    total += number

avg = total / len(data)
print (" Total  : " , total)
print (" avg  : " , avg)
```

05  total 값에 number 값을 계속 더합니다.\
07  len(data) 함수를 통해 data 리스트의 길이를 구할 수 있습니다.

3값을 더해서 리스트 만들기

```
data = [6,5,4,3,2,1]
data2 = []
addValue = 3

for number in data:
    data2.append(number + addValue)

print(data2)
```

06  data2 리스트에 값을 추가합니다.

#### range 함수

연속적인 숫자를 사용할 때 range(시작 값, 종료 값) 를 사용할 수 있습니다.

```python
for number in range(1, 4):
    print(number)
```

01  범위는 1이상 4미만 입니다.&#x20;

range(종료 값) 처럼 마지막 값만 설정할 수 있습니다.

```python
for number in range(4):
    print(number)
```

01  시작 값이 없기 때문에 0부터 시작됩니다.

### break

반복문을 계속 돌다 특정 조건이 만족 된 경우 더 이상 반복이 필요 없는 경우에 사용합니다.

```python
data = [6,5,4,3,2,1]

for number in data:
    if(number == 3):
        break
    print(number)

```

04  number 값이 3인 경우 \
05 문장의 break로 인해 반복문을 벗어 납니다.

### continue

반복문을 돌다 특정 조건이 만족 된 경우 이후 코드를 실행하지 않고 다음 반복문을 실행합니다.

```python
data = [6,5,4,3,2,1]

for number in data:
    if(number == 3):
        continue
    print(number)
```

04  number 값이 3인 경우\
05  다음 for문을 실행 합니다.  06번 라인은 실행되지 않습니다.

## while

while 역시 반복문입니다.\
for 문과 다른 점은 조건이 True가 아닐 때 까지 반복합니다.\
while 조건 (True) :\
&#x20;   반복할 코드&#x20;

```python
end = 5
count = 0

while count < end:
    print(" COUNT : ", count)
    count += 1
```

04  count 는 처음에 0으로 시작됩니다.\
&#x20;count값보다 end값이 크기 때문에 조건은 True가 됩니다.\
06  while 문이 반복됨에 따라 count값은 1식 증가합니다.

특정 문자가 들어오기 전까지 대기하기

```python
userInput = 0

while userInput != 4:
    userInput = int(input("Insert Number : "))
    print(" userInput : ", userInput)
```

03  userInput에 값이 4가 들어가기 전까지 4,5 문장이 반복됩니다.\
04  사용자의 입력값은 문자로 들어옵니다. 이것을 int() 함수를 이용해 숫자로 변경합니다.

## 문제

문제1\
1부터 100까지 합을 구하세요.

{% code title="참고 코드" %}

```python
sum1 = 0
for v in range(1,101):
    sum1 += v
print(sum1)

#방법2 
a = range(1,101)
print(sum(a))

```

{% endcode %}

문제2\
1부터 100까지 값 중 홀수 값을 모두 더 하세요.

{% code title="참고 코드" %}

```python
total = 0
for v in range(1,101):
    if (v%2 == 1):
        total += v
print(total)
```

{% endcode %}

문제3 \
3자리 숫자 맞추기 10고개를 만들어 봅시다.\
ex) 맞춰야 되는 숫자 : 654 \
\>>> 500\
<<< 보다 큽니다.\
\>>> 740\
<<< 보다 작습니다.\
\>>> 654 \
<<< 정답입니다.!!

{% code title="참고 코드" %}

```python
#-*- coding : UTF-8 -*-
rightnum = 654
i = 0
while i < 10 :
    num_input = int(input("숫자"))
    if (num_input == rightnum):
        print("정답입니다")
        break
    elif (num_input > rightnum):
        print("입력값이 큽니다")
    elif (num_input < rightnum):
        print("입력값이 작습니다")
    i = i +1
```

{% endcode %}

{% code title="참고 코드" %}

```python
#-*- coding : UTF-8 -*-
import random
random_number = random.randrange(100,1000)
print('정답:',random_number)
count = 0
while count <10:
    user_number = input('3자리 입력해\n')
    count += 1
    if(int(user_number) == random_number):
        print('정답입니다.')
        break
    elif(int(user_number) > random_number):
        print('보다 작습니다.')
    else:
        print('보다 큽니다.')
if (count == 10):
    print('기회 10번 끝 정답은 ',random_number, ' 입니다.\n' )
```

{% endcode %}

문제4\
로봇 전시회를 갔습니다.\
다양한 로봇 중 사람과 대화하는 로봇을 발견했습니다.\
나 : 신기한 로봇이네 \
로봇 : 안녕하세요. 저는 K23입니다.\
나 : 안녕. \
로봇 : 안녕하세요. 전시회는 즐거웠나요?\
나 : 오!! 이런 말을 하네? 신기하네 \
로봇 : 저는 사람과 친구가 되기 위해 대화를 학습하고 있습니다.\
나 : 그래서 많이 배웠어?\
로봇 : 저는 대화를 학습하고 있습니다.\
나 : 지금 나한테도  배웠어? \
로봇 : 저는 대화를 학습하고 있습니다.\
나 : 그래서 지금 대화에서도 많이 배웠냐고.\
로봇 : 저는 대화를 학습하고 있습니다.\
관계자 : 지금 이 로봇은 개발중인 상태라 자유로운 언어 구사가 되지는 않습니다.. \
로봇 : 안녕하세요. 저는 K23입니다.\
로봇 : 저는 대화를 학습하고 있습니다.\
나 : 그렇군요. 즐거웠어 로봇\~\
로봇 : 안녕히가세요. 즐거운 전시회가 되시길 바랄께요.\
나 : 안녕\~\
로봇 : 안녕하세요. 전시회는 즐거웠나요?\
\
위 예제와 같이 사용자가 입력값에 따라 출력하는 로봇을 만들어보세요.

{% code title="참고 코드" %}

```python
#-*- coding : UTF-8 -*-
while True:
    var = input("나 : ")
   #print("나:",var)
    if '안녕' in var:
        print("로봇: "," 안녕하세요. 전시회는 즐거웠나요")
    elif '로봇' in var:
        print("로봇: "," 안녕하세요.저는 K23입니다.")
    elif '배웠' in var:
        print("로봇: "," 저는 대화를 학습하고 있습니다." )
    elif '즐거웠어' in var:
        print("로봇: "," 안녕히 가세요 즐거운 전시회가 되시길 바랄께요.")
    else:
        print("로봇: "," 저는 사람과 친구가 되기 위해 대화를 학습하고 있습니다")
    if (var=='종료'):
        print("대화를 종료합니다.")
        break
```

{% endcode %}

{% code title="참고 코드" %}

```python
while True:
    con=input("\n")
    con=str(con)
    print("hello, I'm K23.")
    
    if(con.find("hello")!=-1 or con.find("hi")!=-1):
        print("hello, did you enjoy this exhibition?")
        continue
    if(con.find("surprise")!=-1):
        print("now, I'm learning conversation to be a friend with you.")
        continue
    if(con.find("study")!=-1 or con.find("learn")!=-1): 
        print("I'm learning conversation now.")
        continue
    if(con.find("see you")!=-1 or con.find("bye")!=-1): 
        print("good bye, I hope you enjoyed the exhibition!")
        break
```

{% endcode %}
