/
연산자는 정수 간 연산에서도 실수 결과 값이 가능하며, //
연산자는 소수점 이하를 절사s04_variable3.py
생성i = 'string'
print(i,type(i))
print('---')
print("This is 'string'")
print('---')
print('py' + 'thon')
print('---')
# 문자열끼리는 + 연산자 생략 가능하며, 문자열 사이 공백도 생략 가능
print('py' 'thon')
print('py''thon')
print('---')
# 문자열에 숫자를 곱하면 문자열을 반복
print('py'*10)
print('-'*3)
"""
여러 줄
주석
"""
# print() 내에 """ 사용시 줄바꿈이나 탭도 그대로 적용되며, 이스케이프 문자 사용 가능
print("""
하늘 바다
우주
""")
print('\t탭\n다음 줄')
print('-'*3)
# 이스케이프 문자 무력화
# 파이썬에서는 문자열 앞에 r을 붙여서 이스케이프 문자가 적용되지 않도록 처리
print(r'\t탭\n다음 줄')
s05_input.py
생성# 사용자로부터 값을 입력받을 때는 input 명령을 사용
age = input('몇 살이세요?')
print(age)
print('-'*3)
price = input('가격을 입력하세요:')
num = input('수량을 입력하세요:')
# input으로 입력된 데이터는 문자열로 인식
print(type(price),type(num))
total = int(price)*int(num)
print('총액은',total,'원입니다.')
s06_input2.py
생성name = input('당신의 이름은?')
birth = int(input('당신이 태어난 연도(4자리)는?'))
age = 2022-birth+1;
print('%s님의 나이는 %d세입니다.' % (name,age)) # 포맷 문자를 2개 이상 사용시 전달될 값들을 괄호로 묶어야 에러 발생하지 않음
s07_operator.py
생성a = 5 + 3 * 2
print(a)
print('-'*3)
# / 연산의 경우 정수 간 나눗셈이라도 결과값으로 실수 가능
d = 15/4
print(d)
print(type(d))
print('-'*3)
# 소수점 이하 절사 연산자
e = 15//4
print(e,type(e))
print('-'*3)
# 나머지 연산자
f = 10%3
print(f,type(f))
print('-'*3)
# 대입 연산자
a = 3
print(a)
print('-'*3)
# 복합 대입 연산자; 증감 연산자는 지원하지 않음
a += 1
print(a)
print('-'*3)
a -= 2
print(a)
:
사용elif
사용ch02-operation
생성하고 새 파일 s01_if.py
생성value = 10
# 단일 if문
if value > 5:
print('value is greater than 5')
print('-'*3)
money = 10
# if~else문
if money > 100:
item = 'apple'
else:
item = 'chocolate'
print(item)
print('-'*3)
# 삼항 연산자
# 참인 경우의 값 if 조건 else 거짓인 경우의 값
item2 = '사과' if money > 100 else '초코'
print(item2)
s02_if.py
생성age = int(input('나이는?'))
# 기본 입장료
ticket = 2000
# 단일 if문
# 65세 이상이면 무료
if age >= 65:
ticket = 0
print('나이: %d세' % age)
print('입장료: %d원' % ticket)
s03_if.py
생성a = 0
# print(10/a) # 0으로 나누면 에러 발생
# if~else문
if a!=0 and 10/a: # and 연산자에서 선건이 거짓이면 후건은 검사/실행되지 않음
print('a가 %d입니다.' % a)
else:
print('에러 없이 통과!')
print('-'*3)
# 단축 평가
if a and 10/a: # 값이 0이면 false로 인식
print('a가 %d입니다.' % a)
else:
print('에러 없이 통과!')
s04_if.py
생성score = int(input('Input Score:'))
# 다중 if문
'''
if score >= 90 and score <= 100:
grade = 'A'
elif score >= 80 and score < 90:
grade = 'B'
elif score >= 70 and score < 80:
grade = 'C'
elif score >= 60 and score < 70:
grade = 'D'
else:
grade= 'F'
print('성적은 ' + grade);
'''
# 논리 연산자 생략하고 비교 연산자만으로 축약하여 비교 가능
if 90 <= score <= 100:
grade = 'A'
elif 80 <= score < 90:
grade = 'B'
elif 70 <= score < 80:
grade = 'C'
elif 60 <= score < 70:
grade = 'D'
else:
grade = 'F'
print('성적은 ' + grade)
s05_for.py
생성# for문
# range(끝); 지정한 값 직전까지 출력
for i in range(10):
print(i,end=' ')
print() # 줄바꿈
print('-'*3)
# range(시작, 끝)
for i in range(1,11):
print(i,end=' ')
print() # 줄바꿈
print('-'*3)
# range(시작,끝,간격); 간격 양수로 입력시 시작 값에서 간격 값만큼 증가하면서 반복
for i in range(1,10,2):
print(i, end=' ')
print() # 줄바꿈
print('-'*3)
# range(시작,끝,간격); 간격 음수로 입력시 시작 값에서 간격 값만큼 감소하면서 반복
for i in range(20,0,-2):
print(i, end=' ')
print() # 줄바꿈
print('-'*3)
# 간격 값 지정하지 않으면 기본값 1이라 시작 값이 끝 값보다 큰 경우에는 반복이 수행되지 않음
for i in range(20,0):
print(i, end=' ')
s06_for2.py
생성total = 0
# 100부터 200까지 5씩 증가
for i in range(100,201,5):
total += i
print('100부터 200까지 5의 배수의 합계: %d' % total)
print('-'*3)
total = 0
for i in range(100,201):
if i%5 == 0:
total += i
print('100부터 200까지 5의 배수의 합계: %d' % total)
s07_for3.py
생성a = 2 # 단
for b in range(1,10): # 곱해지는 수
print('%d * %d = %d' %(a,b,a*b))
print('-'*3)
print('2단 ~ 9단')
for a in range(2,10): # 단
for b in range(1,10): # 곱해지는 수
print('%d * %d = %d' %(a,b,a*b))
print('-'*3)
s08_while.py
생성total = 0
i = 1
while i <= 10:
total += i
print('i의 값 : %d => 합계 : %d' % (i,total))
i += 1
print('-'*3)
value = 5
while value > 0:
print(value)
value -= 1
s09_while2.py
생성# 무한 루프
# while True:
# 명령
# if 탈출 조건: break
print('3 + 4 = ?')
while True:
a = int(input('정답을 입력하세요:'))
if a == 7: break
print('정답입니다!')
s10_while3.py
생성coffee = 10
while True:
money = int(input('돈을 넣어주세요:'))
if money == 300:
print('커피를 줍니다.')
coffee -= 1
elif money > 300:
print('거스름돈 %d원을 주고, 커피를 줍니다.' % (money-300))
coffee -= 1
else:
print('돈을 다시 돌려주고, 커피를 주지 않습니다.')
# coffee가 0이면 False로 인식
if not coffee:
print('커피가 다 떨어졌습니다. 판매를 중지합니다.')
break
s11_break.py
생성for i in range(1,1001):
print(i)
if i == 10:
break
s12_continue.py
생성for i in range(10):
if i%2 == 0:
continue
print(i)
len()
append()
insert()
extend()
remove()
pop()
clear()
ch03-collection
생성하고 새 파일 s01_list.py
생성# 리스트
# 값들의 나열 순서가 존재하며, 여러 종류의 값을 담을 수 있음
# 인덱스는 0부터 시작
# 값을 추가, 변경, 삭제 가능
colors = ['빨강', '주황', '노랑', '초록', '파랑', '남색', '보라']
print(colors[0])
print(colors[5])
# 인덱스 2부터 5(=6 직전)까지의 요소로 구성된 리스트
print(colors[2:6])
# 인덱스를 음수로 지정하면 역순으로 찾음
print(colors[-3])
# 끝에서 4번째부터 끝에서 2번째까지의 요소로 구성된 리스트
print(colors[-4:-1])
print('-'*3)
colors2 = ['red', 'green', 'gold']
print(colors2)
print(type(colors2))
s02_list2.py
생성colors = ['빨강', '주황', '노랑', '초록', '파랑']
# 반복문을 이용한 출력
for color in colors:
print('나는 %s색을 좋아한다' % color)
print('-'*3)
# range() 함수 이용하기
n = len(colors) # len() 함수 : 리스트의 길이 반환
for i in range(0,n):
print('나는 %s색을 좋아한다' % colors[i])
print('-'*3)
# while문에서 리스트 사용
animals = ['토끼', '강아지', '호랑이', '사슴', '곰', '독수리', '햄스터']
i = 0
while i < len(animals):
print(animals[i])
i += 1
s03_list3.py
생성colors = ['red', 'green', 'gold']
print(colors)
print('-'*3)
# 요소 값의 수정
colors[1] = 'orange'
print(colors)
print('-'*3)
# 없는 인덱스 호출시 에러
# JavaScript와 달리 없는 인덱스에 값을 대입하여 리스트에 요소를 추가하는 방식은 불가능
# colors[3] = 'pink'
# append(요소): 리스트에 요소 추가
colors.append('pink')
print(colors)
print('-'*3)
# insert(인덱스, 요소): 원하는 위치에 요소 삽입
colors.insert(1, 'silver')
print(colors)
print('-'*3)
# extend(반복 가능한 요소): 튜플이나 리스트 등에서 여러 값을 한 번에 추가
colors.extend(['white', 'midnight blue'])
print(colors)
s04_list4.py
생성colors = ['red', 'black', 'green', 'red', 'blue', 'white', 'gray']
# 인덱스 검색
print(colors.index('red'))
# 지정한 요소가 검색되지 않으면 에러 발생
# print(colors.index('reds'))
# 검색 시작 위치 지정
print(colors.index('red',1))
# 검색 시작 위치와 끝 위치 지정; 검색 범위는 지정한 끝 위치 직전까지
# print(colors.index('red',1,3))
print(colors.index('red',1,4))
s05_list5.py
생성member = ['바닐프티', '바닐리치', '배바닐라', '바닐리치', 0]
print(member)
print('-'*3)
# remove(요소): 리스트에서 지정한 요소와 일치하는 첫 번째 요소를 삭제
member.remove('바닐리치')
print(member)
print('-'*3)
# remove()는 인덱스 값으로 삭제하지 않으므로 주의; 지정한 요소가 리스트에 없으면 에러
# member.remove(1)
member.remove(0)
print(member)
print('-'*3)
data = [10,20,30,40,50,60,70,80]
print(data)
# pop(인덱스): 인덱스를 지정해서 삭제; 삭제하는 데이터를 반환
x = data.pop(2)
print(x)
print(data)
print('-'*3)
x = data.pop(3)
print(x)
print(data)
print('-'*3)
# pop() 메서드의 입력 인자를 생략하면 끝에서 값을 뽑아내고 삭제
print(data.pop())
print(data.pop())
print(data)
print('-'*3)
# clear(): 리스트의 모든 요소 삭제
data.clear()
print(data)
person1 = ['kim',24,'student']
person2 = ['lee',26,'teacher']
# 두 리스트 합치기
person = person1 + person2
print(person)