파이썬(Python)

While문과 Random함수

BlueNoa 2021. 6. 10. 02:08
728x90
반응형

· While문

while문은 조건이 충족될 때까지 계속해서 반복하는 반복문이다. 반복에 조건에 따라서는 무한히 반복하는 것도 가능하다.

 

형태 -

while 조건문:

    수행문1

    수행문2

    수행문3

.....

 

<예시>

a = 1
while a <= 30: # a가 30이 되면 멈춘다.
    print(a)
    a += 1

<결과>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

 

· 다중 While문

while문 안에 while문을 사용해서 새로운 반복문을 만드는 것을 뜻한다.

 

<예제>

i = 1
while i < 4:
    print(str(i)+'단')
    j = 1
    while j <= 9:
        print(str(i) + ' * ' + str(j) + ' = ' + str(i*j))
        j += 1
    i += 1

<결과>

1단
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
1 * 6 = 6
1 * 7 = 7
1 * 8 = 8
1 * 9 = 9
2단
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3단
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27

 


· 다중 While문 심화 - '*'을 이용해서 다양한 삼각형 출력하기

<코드>

# 별 출력1
i = 1
while i <= 10:
    j = 1
    disp = ''
    while j <= i:
        disp = disp + "*"
        j = j + 1
    print(disp)
    i = i + 1
    
# 별 출력2
print()
i = 0
while i <= 9:
    j = 1
    disp = ''
    while j <= i:
        disp = disp + ' '
        j = j + 1
        
    k = 1
    while k <= 11 - j:
        disp = disp + "*"
        k = k + 1
    print(disp)
    i = i + 1

# 별 출력3
print()
i = 10
k = 1
while 1 <= i:
    j = 1
    l = 1
    disp = ''
    while j <= i-1:
        disp += " "
        j += 1
    while l <= k:
        disp += "*"
        l += 1
    print(disp)
    i -= 1
    k += 1

# 별 출력4
print()
i = 10
while i >= 1:
    j = 1
    disp = ''
    while j <= i:
        disp += "*"
        j += 1
        
    k = 1
    while k <= 11 - j:
        k += 1
    print(disp)
    i -= 1

<결과>

*
**
***
****
*****
******
*******
********
*********
**********

**********
 *********
  ********
   *******
    ******
     *****
      ****
       ***
        **
         *

         *
        **
       ***
      ****
     *****
    ******
   *******
  ********
 *********
**********

**********
*********
********
*******
******
*****
****
***
**
*

· While문 - continue, break

continue : 계속해서 실행하라는 뜻으로, while문의 맨 처음으로 되돌아간다.

break : 무조건 중단하는 명령어다. 반복문으로부터 탈출한다.

<예제>

a = 0
while a < 10:
    a += 1
    if a == 5:
        continue
    if a == 8:
        break
    print(a)
else: # while문에도 else를 사용할 수 있다.
    print('else 발동')
    
print('while문 완료 후 a : %d'%a)

<결과>

1
2
3
4
6
7
while문 완료 후 a : 8

5가 되었을 때 계속해서 while문의 처음으로 되돌아가서 5를 출력하지 않았다. 8이 되었을 땐 강제로 탈출하기 때문에 7까지만 출력되었다. while문을 탈출 했으므로 일반 print문이 써졌다.


 

· Random 함수

랜덤 함수에서 seed값이라는 것을 특정지어주면 매번 똑같은 랜덤 값이 나오는 것을 확인할 수 있다.

<예제>

import random
print(random.random()) # 0 ~ 1 사이의 난수
print(random.randint(1, 100)) # 1 ~ 100 사이의 난수

a = ['apple', 'samsung', 'LG', 'HTC', 'SONY']
print(random.choice(a)) # 한개의 랜덤 요소 값 추출
print(random.sample(a, 2)) # 지정 개수 만큼 랜덤으로 요소 값 추출
random.shuffle(a) # 객체가 갖고 있는 요소 값들을 랜덤하게 섞어 준다.
print(a)

# 1 ~ 5 사이 정수 숫자 맞추기
num = random.randint(1, 5)
while True: # 무조건 반복문 실행
    var1 = int(input('1~5 사이 정수 입력 : '))
    if var1 == num:
        print('정답!')
    elif var1 < num:
        print('숫자가 작았어')
    elif var1 > num:
        print('숫자가 너무 컸어')

<코드>

0.32861939346711566
12
samsung
['HTC', 'apple']
['apple', 'SONY', 'samsung', 'HTC', 'LG']
1~5 사이 정수 입력 : 5
숫자가 너무 컸어
1~5 사이 정수 입력 : 4
정답!

 

더보기

문제 - 1부터 100까지 숫자 중 7의 배수를 제외한 값들을 출력하라.

<코드>

i = 1
while i <= 100:
    if i % 7 != 0:
        print(i)
    i += 1   

<결과>

1
2
3
4
5
6
8
9
10
11
12
13
15
16
17
18
19
20
22
23
24
25
26
27
29
30
31
32
33
34
36
37
38
39
40
41
43
44
45
46
47
48
50
51
52
53
54
55
57
58
59
60
61
62
64
65
66
67
68
69
71
72
73
74
75
76
78
79
80
81
82
83
85
86
87
88
89
90
92
93
94
95
96
97
99
100

 

728x90
반응형

'파이썬(Python)' 카테고리의 다른 글

정규 표현식(정규식) - 1  (0) 2021.06.13
For 반복문  (0) 2021.06.12
If문 - 조건문  (0) 2021.06.09
Set 자료  (0) 2021.06.09
Dictionary 자료  (0) 2021.06.09