con = '''
if 조건식:
실행문
실행문
'''
num = int(input('점수 입력(1~100) : '))
print('num = ', num)
if num % 2 != 0 :
print('홀수')
else :
print('짝수')
점수 입력(1~100) : 50 num = 50 짝수
# system 날짜/시간 모듈(*.py)
import datetime
today = datetime.datetime.now() # package.module.function()
print(today)
print(type(today)) # <class 'datetime.datetime'>
day = today.weekday()
print(day) # 0~6(1)
if day >= 5 :
print('주말')
else :
print('평일')
2021-04-20 15:20:33.974032 <class 'datetime.datetime'> 1 평일
con = '''
if 조건식1 :
실행문1
elif 조건식2 :
실행문2
elif 조건식3 :
실행문3
else :
실행문4
'''
# 문) num 변수 대상 -> 등급 계산(A:100~90,B:89~80,C:79~70,D:69~60,F:60미만 학점)
# 출력 형식 => 점수 : 85, 등급 : B
grade = "" # 공백
if num >= 90 :
grade = "A"
elif num >= 80 :
grade = "B"
elif num >= 70 :
grade = "C"
elif num >= 60 :
grade = "D"
else :
grade = "F"
print(f"점수 : {num}, 등급 : {grade}")
print("점수 : %d, 등급 : %s"%(num, grade))
점수 : 50, 등급 : F 점수 : 50, 등급 : F
변수 = 참 if 조건식 else 거짓
¶if num >= 60 :
grade ="합격"
else :
grade ="불합격"
grade
'불합격'
grade = "합격" if num >= 60 else "불합격"
print('3항 연산자 : ', grade) # 3항 연산자 : 합격
3항 연산자 : 불합격
s = input("문자열 입력 : ")
# 단어 검색
if '홍길동' in s :
print('\'홍길동\' 단어 있음')
else :
print('\'홍길동\' 단어 없음')
문자열 입력 : 홍길동 '홍길동' 단어 있음
loop = '''
while 조건식 :
실행문1
실행문2
'''
# 카운터(index)/누적변수
idx = tot = 0
while idx < 5 : # 0 < 5 # True : loop(명령문 집합)- 수행
idx += 1 # 카운터 변수
tot += idx # 누적변수 : tot = tot + idx
print(idx, tot)
print(idx, tot) # 5 10
1 1 2 3 3 6 4 10 5 15 5 15
# 1 ~ 100 까지 3의 배수 합과 원소 추출하기
cnt = tot = 0
dataset = [] # 빈 list
while cnt < 100: # 100회 반복
cnt += 1 # 카운터
if cnt % 3 == 0:
tot += cnt # 누적변수
dataset.append(cnt) # 3차 작성
print('1 ~ 100사이 3의 배수 합 = %d' % tot) # 1683
print('dataset =', dataset) # [3, 6, 9, ... 99]
1 ~ 100사이 3의 배수 합 = 1683 dataset = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
# 문1) 1~100 사이에서 5의 배수이면서(and) 3의 배수가 아닌 합 계산하기
i = tot = 0
dataset = [] # 빈list
while i < 100:
i += 1
if i % 5 == 0 and i % 3 != 0:
dataset.append(i)
print(i, end=' ')
tot += i
print('tot = %d' % tot) # tot = 867
print()
print('dataset :', dataset)
5 10 20 25 35 40 50 55 65 70 80 85 95 100 tot = 735 dataset : [5, 10, 20, 25, 35, 40, 50, 55, 65, 70, 80, 85, 95, 100]
# 문2) -1, 3, -5, 7, -9 ~ 99 까지의 합을 구하시오.
# 부호 변경
i = 1;
sign = -1
print('sign=', i * sign) # sign= -1
idx = tot = 0 # 값 위치, 합
loc = 1 # 수열 위치
while idx < 100:
if idx % 2 != 0: # 값 위치 홀수
if loc % 2 != 0: # 수열 홀수 위치
tmp = idx * sign # 부호 변경
print(tmp, end=' ') # -1 -5 -9 -13 -17
tot += tmp # 누적합
else: # 수열 짝수 위치
tot += idx
loc += 1 # 수열 위치 변경(홀수값 내에서 위치)
idx += 1 # 값 위치 변경
print('\ntot = %d' % tot) # tot = 50
sign= -1 -1 -5 -9 -13 -17 -21 -25 -29 -33 -37 -41 -45 -49 -53 -57 -61 -65 -69 -73 -77 -81 -85 -89 -93 -97 tot = 50
# 무한 loop : exit 조건식 포함
numData = []
while True :
num = int(input("숫자 입력 : "))
if num % 10 == 0 : # exit 조건식
print("프로그램 종료")
break
else :
print(num)
numData.append(num)
print(numData)
숫자 입력 : 55 55 숫자 입력 : 20 프로그램 종료 [55]
# random module 추가
import random #
# 0~1 사이 난수 실수
random.seed(123)
r = random.random()
print('r=', r) # r= 0.3940
r= 0.052363598850944326
# [실습] 난수 0.01 미만이면 종료 후 난수 갯수 출력
cnt = 0
while True:
r = random.random()
print(random.random())
if r < 0.01:
break
else:
cnt += 1
print('난수 개수 = ', cnt)
0.4072417636703983 0.9011988779516946 0.5362020400339269 0.8520866189293687 0.3372166571092755 0.24516335251761112 0.4362757934152184 난수 개수 = 6
# 이름 list
names = ['홍길동', '이순신', '유관순']
print(names) # 전체 이름, 특정 이름 출력
print(names[2])
if '유관순' in names:
print('유관순 있음')
else:
print('유관순 없음')
# 이름 선택 : 0~2 난수 정수
print('random.randint')
idx = random.randint(0, 2)
print(names[idx]) # 이순신
['홍길동', '이순신', '유관순'] 유관순 유관순 있음 random.randint 홍길동
print('random.choices')
name = random.choices(names, k=2)
print(name) # ['이순신', '홍길동'] -> random 선택
random.choices ['유관순', '이순신']
i = 0
while i < 10:
i += 1 # 카운터
if i == 3:
continue # 1 2 4 5 6 7 8 9 10 -> 다음 문장 skip
if i == 6: # 2차 작성
break # 1 2 4 5 -> exit
print(i, end=' ')
1 2 4 5
loop='''
for 변수 in 열거형data :
실행문
실행문
'''
# 문자열 열거형객체 이용
string = "나는 홍길동 입니다."
# 1문자 -> 변수 넘김 : 3회
print(len(string)) # 3
for s in string :
print(s) # 나는 홍길동 입니다.
11 나 는 홍 길 동 입 니 다 .
# split -> 변수 넘김 : 3회
for s in string.split() : # sep=' '
print(s, end=' ') # 나는 홍길동 입니다.
나는 홍길동 입니다.
# list 열거형객체 이용
lstset = [1,2,3,4,5] # 1차원(vector)
for e in lstset :
print('원소 : ', e)
원소 : 1 원소 : 2 원소 : 3 원소 : 4 원소 : 5
#help(range)
hp='''
range(stop) : 0~stop-1 정수
range(start, stop) : start~stop-1 정수
range(start, stop, step) : start ~ stop, step 단위 증감
'''
num1 = range(10) # 0~4
print('num1 : ', num1) # range(0, 10)
num1 : range(0, 10)
num2 = range(1, 10)
print('num2 : ', num2) # range(1, 10)
num2 : range(1, 10)
num3 = range(1, 10, 2)
print('num3 :', num3) # range(1, 10, 2)
num3 : range(1, 10, 2)
for n in num1 :
print(n, end = ' ')
0 1 2 3 4 5 6 7 8 9
for n in num2 :
print(n, end = ' ')
1 2 3 4 5 6 7 8 9
for n in num3 :
print(n, end = ' ')
1 3 5 7 9
num2 = range(1,5) # 1~4
print('num2 : ', num2) # num2 : range(1, 5)
num2 : range(1, 5)
num2 = list(num2)
print(num2) # [1, 2, 3, 4]
[1, 2, 3, 4]
lst = list(range(1,101)) # 1 ~ 100
print('lst :', lst)
lst2 = [] # 빈list
for i in lst : # 100회
if i % 5 == 0 :
print(i, end = ' ')
lst2.append(i)
# 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
print()
print(lst2)
lst : [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, 95, 96, 97, 98, 99, 100] 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]
# 문) lst(1~100) 중에서 3의 배수만 lst3 추가/출력
lst3 = []
for i in lst :
if i % 3 == 0 :
lst3.append(i)
print(lst3, end = ' ')
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
y = [1,0,2,1,0]# 정답
y_pred = [1,0,2,0,0] # 예측치
size = len(y)
print('size =', size) # size = 5(0~4)
acc = 0 # 분류정확도
for idx in range(size) : # (0~4)
fit = int(y[idx] == y_pred[idx]) # True/False -> int(1/0)
acc += fit * 20 # 계산식
print('분류정확도 : ', acc)
size = 5 분류정확도 : 80
# list에 자료 저장하기
lst = []
for i in range(10) : # 0~9
r = random.randint(1,10) # 난수
lst.append(r) # 난수 저장
print(lst) # [3, 3, 7, 6, 4, 8, 8, 3, 4, 7] * 0.25
# list에 자료 참조하기
for i in range(10) : # 0~9
print(lst[i] * 0.25) # 난수 * 0.25
[7, 10, 8, 5, 8, 1, 5, 6, 9, 8] 1.75 2.5 2.0 1.25 2.0 0.25 1.25 1.5 2.25 2.0
# 구구단 출력(2, 3, 5)
for i in [2, 3, 5]:
# 바깥쪽 영역
print('~~~ {}단 ~~~'.format(i))
for j in [1, 2, 3, 4, 5, 6, 7, 8, 9]:
# 안쪽 영역
#print('%d * %d = %d' % (i, j, i * j))
pass
~~~ 2단 ~~~ ~~~ 3단 ~~~ ~~~ 5단 ~~~
# 구구단 출력 : range() 함수 이용
for i in range(2, 10):
# 바깥쪽 영역
print('~~~ {}단 ~~~'.format(i))
for j in range(1, 10):
# 안쪽 영역
#print('%d * %d = %d' % (i, j, i * j))
pass
~~~ 2단 ~~~ ~~~ 3단 ~~~ ~~~ 4단 ~~~ ~~~ 5단 ~~~ ~~~ 6단 ~~~ ~~~ 7단 ~~~ ~~~ 8단 ~~~ ~~~ 9단 ~~~
loop='''
for 변수 in data1 : -> 문장
실행문 -> 문장 저장
for 변수 in data2: -> 단어
실행문 -> 단어 저장
'''
string = """나는 홍길동 입니다.
주소는 서울시 입니다.
나이는 35세 입니다."""
sents = [] # 문장 저장
words = [] # 단어 저장
for sen in string.split(sep = "\n") : # 문단 -> 문장
sents.append(sen)
for word in sen.split() : # 문장 -> 단어
words.append(word)
print('문장 :', sents)
print('문장수 :', len(sents))
print('단어 :', words)
print('단어수 :', len(words))
문장 : ['나는 홍길동 입니다.', '주소는 서울시 입니다.', '나이는 35세 입니다.'] 문장수 : 3 단어 : ['나는', '홍길동', '입니다.', '주소는', '서울시', '입니다.', '나이는', '35세', '입니다.'] 단어수 : 9