[파이썬] 8. 난수 시스템 & 문법 정리 (함수, 제어문, 반복문)

2021. 4. 22. 18:25데이터 분석/파이썬

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
for i in range(0101):    # for 뜻: 오른쪽의 코드가 반복되는 동안
    print(i, end=' ')
print()
 
for i in range(0101):    # 시작, 종료, 증감
    print(i, end=' ')
print()
 
for i in range(010):       # 시작, 종료, 증감(1)
    print(i, end=' ')        # 별도의 증감하는 값을 지정하지 않는 경우 기본값은 '1', 시작값은 '0'
 
print()
 
for i in range(10):          # 시작(0: 나 자신), 종료, 증감(1)
    print(i, end=' ')
print()
 
# 문제
# for문을 사용해서 100보다 작은 양수의 홀수와 짝수 합계를 각각 구하는 함수를 만드세요.
# 함수 반환값은 여러 개 가능.
 
def sumOfOddEven():
    odd, even = 00
#    for i in range(1, 100):
#        if i%2 == 1:    odd  += i
#        else:           even += i
 
#    1, 99, 2
#    2, 98, 2 (2가지 규칙이 따로 있다고 생각해도 된다.)
 
#    for i in range(1, 100, 2):
#        odd += i    # 홀수니까
#    for i in range(2, 100, 2):
#        even += i
 
 
#    for i in range(100):
#        if i%2 == 1:    odd += i
#        else:           even += i
 
    for i in range(11002):
        even += i
        odd += i+1
 
    return odd, even
 
s1, s2 = sumOfOddEven()
print(s1, s2)
print('-'*50)
 
import random
 
print(random.randrange(10)) # 난수: 어떤 숫자가 출력될지 알 수 없음, 데이터 임의로 추출해야 할 때 多 사용
print(random.randrange(1020))
print(random.randrange(10202))
 
# placeholder
random.seed(1)  # 이후의 모든 난수들이 순서대로 만들어 진다.
for i in range(5):    # 5번 반복
    random.seed(1)
    print(random.randrange(10), end=' ')
 
for _ in range(5):  # _ : 변수
    print(random.randrange(10), end=' ')
 
# next = 1
# def rand():
#     global next
#     next = next * 1103515245 + 12345
#     return int((next//65536) % 32768)
 
# 문제
# 10개의 100보다 작은 난수 중에서 가장 큰 숫자를 찾는 함수를 만드세요.
 
# 틀린 예시
def maxNumber():
#     m = 0
#     for _ in range(10):
#         print(random.randrange(100), end='')
#         if m < random.randrange(100):
#             m = random.randrange(100)
 
    m = -random.randrange(100)
    for _ in range(10-1):
        n = -random.randrange(100)
        print(n, end='')
        if m < n:
            m = n
 
    print()
    return m
 
print(maxNumber())
 
cs