정수 입력> 15cm
Traceback (most recent call last):
File "h06.py", line 1, in <module>
number_input_a = int(input("정수 입력> "))
ValueError: invalid literal for int() with base 10: '15cm'
try except 구문과 pass 키워드를 조합해서 예외가 발생하면 그냥 넘어가도록 할 수도 있습니다.
try excepr else 구문
try:
# 예외가 발생할 가능성이 있는 코드
number_input_a = int(input("정수 입력> "))
except:
# 예외가 발생했을 때 실행할 코드print("정수를 입력하지 않았습니다.")
else:
# 예외가 발생하지 않았을 때 실행할 코드print("원의 반지름:", number_input_a)
print("원의 둘레:", 2 * 3.14 * number_input_a)
print("원의 넓이:", 3.14 * number_input_a * number_input_a)
finally 구문
try:
# 예외가 발생할 가능성이 있는 코드
number_input_a = int(input("정수 입력> "))
except:
# 예외가 발생했을 때 실행할 코드print("정수를 입력하지 않았습니다.")
else:
# 예외가 발생하지 않았을 때 실행할 코드print("원의 반지름:", number_input_a)
print("원의 둘레:", 2 * 3.14 * number_input_a)
print("원의 넓이:", 3.14 * number_input_a * number_input_a)
finally:
# 무조건 실행할 코드print("무조건 출력되는 문장이랍니다.")
"""
정수 입력> 15
원의 반지름: 15
원의 둘레: 94.2
원의 넓이: 706.5
무조건 출력되는 문장이랍니다.
"""
구문 오류와 예외의 차이는
구문 오류는 프로그램의 문법적인 오류로 실행조차 되지 않는 오류이고요.
예외는 프로그램 실행 중에 발생하는 오류입니다.
이런 오류를 방지하기 위해 try except 구문을 사용합니다.
예외 고급
try:
# 예외가 발생할 가능성이 있는 코드
number_input_a = int(input("정수 입력> "))
print("원의 반지름:", number_input_a)
print("원의 둘레:", 2 * 3.14 * number_input_a)
print("원의 넓이:", 3.14 * number_input_a * number_input_a)
except Exception as exception:
# 예외 객체를 출력해봅니다.print("type(exception): ", type(exception))
print("exception: ", exception)
정수 입력> 8cm
type(exception): <class 'ValueError'>
exception: invalid literal for int() with base 10: '8cm'
def 함수(매개변수):
변수 = 초깃값
# 여러 가지 처리# 여러 가지 처리# 여러 가지 처리return 변수
def sum_all(start=0, end=100, step=1):
output = 0
for i in range(start, end + 1, step):
output += i
return output
print("A.", sum_all(0, 100, 10)) # A. 550print("B.", sum_all(end=100)) # B. 5050print("C.", sum_all(end=100, step=2)) # C. 2550
함수의 활용
함수를 만드는 기본적인 방법을 알고 있어도 실제로 함수들이 어떻게 사용되는지 많이 접해 보지 않으면 제대로 활용할 수 없습니다. 이번 절에서는 함수를 활용하는 주요 패턴에 대해서 살펴보겠습니다.
재귀함수
반복문으로 팩토리얼 구하기
def factorial(n):
output = 1
for i in range(1, n + 1):
output *= i
return output
print("1!:", factorial(1))
print("2!:", factorial(2))
print("3!:", factorial(3))
print("4!:", factorial(4))
print("5!:", factorial(5))
재귀 함수를 사용해 팩토리얼 구하기
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
print("1!:", factorial(1))
print("2!:", factorial(2))
print("3!:", factorial(3))
print("4!:", factorial(4))
print("5!:", factorial(5))
함수 고급
튜플 : 함수와 함께 많이 사용되는 리스트와 비슷한 자료형으로 리스트와 다른 점은 한번 결정된 요소는 바꿀 수 없다는 것
[a, b] = [10, 20]
(c, d) = (10, 20)
print("a:", a) # a: 10print("b:", b) # b: 20print("c:", c) # c: 10print("d:", d) # d: 20
람다 : 매개변수로 함수를 전달하기 위해 함수 구문을 작성하는 것이 번거롭고, 코드 공간 낭비라는 생각이 들 때 함수를 간단하고 쉽게 선언하는 방법
def call_10_times(func):
for i in range(10):
func()
def print_hello():
print("안녕하세요")
call_10_times(print_hello)
파일처리
파일과 관련된 처리를 하는 함수는 표준 함수가 기본으로 제공됩니다.
파일은 크게 텍스트 파일과 바이너리 파일로 나뉘는데 여기서는 텍스트 파일과 관련된 내용만 살펴보겠습니다.
with open("basic.txt", "w") as file:
file.write("Hello Python Programming...!")
이렇게 코드를 작성하면 with 구문이 종료될 때 자동으로 파일이 닫힙니다.
따라서 파일을 열고 닫지 않는 실수를 줄일 수 있습니다.
텍스트 읽기
파일 객체.read()
with open("basic.txt", "r") as file:
contents = file.read()
print(contents)
import random
hanguls = list("가나다라마바사아자차카타파하")
with open("info.txt", "w") as file:
for i in range(1000):
name = random.choice(hanguls) + random.choice(hanguls)
weight = random.randrange(40, 100)
height = random.randrange(140, 200)
file.write("{}, {}, {}\n".format(name, weight, height))
num = [1, 2, 3, 4, 5, 6, 7]
for i in reversed(num):
print(i)
for i in reversed(num):
print(i+10)
print(num[::-1]) # [7, 6, 5, 4, 3, 2, 1]
enumerate() 함수와 반복문 조합하기
example_list = ["요소A", "요소B", "요소C"]
출력값
0번째 요소는 요소A입니다.
1번째 요소는 요소B입니다.
2번째 요소는 요소C입니다.
이렇게 출력하기 위해서는 인덱스가 필요한데요.
인덱스를 강제적으로 만들어 주는 함수가 enumerate() 함수입니다.
example_list = ["요소A", "요소B", "요소C"]
print(list(enumerate(example_list))) # [(0, '요소A'), (1, '요소B'), (2, '요소C')]for i, value in enumerate(example_list):
print("{}번째 요소는 {}입니다.".format(i, value))
///
0번째 요소는 요소A입니다.
1번째 요소는 요소B입니다.
2번째 요소는 요소C입니다.
///
딕셔너리의 items() 함수와 반복문 조합하기
enumerate()함수가 리스트 형태로 반복문을 작성할 수 있는 것처럼
딕셔너리에는 items()함수로 키와 값을 조합해서 반복문을 작성할 수 있습니다.
리스트 내포
array = []
for i in range(0, 20, 2):
array.append(i * i)
print(array) # [0, 4, 16, 36, 64, 100, 144, 196, 256, 324]
리스트 이름 = [표현식 for 반복자 in 반복할 수 있는 것]
array = [i * i for i in range(0, 20, 2)]
print(array)
이렇게 코딩 할 수 있습니다.
리스트 이름 = [표현식 for 반복자 in 반복할 수 있는 것 if 조건문
array = [i * i for i in range(0, 20, 2)]
print(array) # [0, 4, 16, 36, 64, 100, 144, 196, 256, 324]# 조건 추가한 리스트
output = [num for num in array if num != 16]
print(output) # [0, 4, 36, 64, 100, 144, 196, 256, 324]
== 같음 x == y (True, 만약 x와 y가 같으면) != 같지 않음 x != y (True, 만약 x와 y가 다르면) < 작음 x < y (True, 만약 x가 y보다 작으면) > 큼 x > y (True, 만약 x가 y보다 크면) <= 작거나 같음 x <= y (True, 만약 x가 y보다 작거나 같으면) >= 크거나 같음 x >= y (True, 만약 x가 y보다 크거나 같으면)
숫자 이 외에도 문자와 범위로도 사용할 수 있습니다.
print("가방" == "책가방") # Falseprint("책가방" != "책가방") # False
x = 10
print(5 < x < 20) # True
불 연산자 : 논리 연산자
파이썬에서 논리 연산자는 불리언 값 (True 또는 False) 간의 논리적인 연산을 수행하는데 사용됩니다. 주요 논리 연산자는 다음과 같습니다.
and (논리곱): 두 조건이 모두 True일 때만 True를 반환합니다. True and True # True True and False # False False and True # False False and False # False
or (논리합): 두 조건 중 하나라도 True이면 True를 반환합니다. True or True # True True or False # True False or True # True False or False # False
not (논리부정): 주어진 조건의 반대를 반환합니다. not True # False not False # True
논리 연산자는 조건문, 반복문 및 다양한 프로그래밍 상황에서 조건을 평가하고 제어하는 데 사용됩니다. 논리 연산자를 조합하여 복잡한 조건을 만들 수 있습니다.
if 조건문
조건문에 따라 실행하거나 실행하지 않도록 할 때 사용됩니다.
if 조건: # 조건이 참(True)일 때 실행되는 코드 블록 # 이 코드 블록은 들여쓰기로 표시된다 (보통 4칸 또는 탭) else: # 조건이 거짓(False)일 때 실행되는 코드 블록 # 이 코드 블록도 들여쓰기로 표시된다
if 조건1: # 조건1이 참일 때 실행 elif 조건2: # 조건1이 거짓이고 조건2가 참일 때 실행 else: # 모든 조건이 거짓일 때 실행
number = input("숫자를 입력해 주세요 ")
number = int(number)
if number > 0:
print("양수입니다.")
if number < 0:
print("음수입니다")
if number == 0:
print("0입니다")
파이썬을 공부할 때 필요한 것은 뭐가 있을까요? 1. 파이썬 코드를 입력할 수 있는 텍스트 에디터 2. 파이썬 코드를 실행하는 파이썬 인터프리터 파이썬 프롬프트라 불리는 >>> 에 코드를 입력하면 바로 실행결과를 볼 수 있는데요. 이것을 상호작용하는 공간이라는 의미로 인터렉티브 셸 또는 한 마디씩 대화를 주고 받기 때문에 대화형 셸이라 부른다고 하네요. 키워드는 특별한 의미가 부여된 단어, 파이썬이 미리 예약한 단어이기 때문에 사용할 수 없다. 식별자는 프로그래밍 언어에서 이름을 붙일 때 사용하는 단어, 변수, 함수, 클래스로 사용된다. 키워드를 사용하면 안되고, 특수 문자는 _만 사용, 숫자를 가장 앞에 넣어서 사용할 수 없다. 공백 X
프로그램은 자료를 처리하는 역할을 합니다. 카메라로 사진을 찍으면 사진이 자료이고, 이를 카메라에 저장하는 것이 처리입니다. 카카오톡으로 친구에게 사진과 함께 "여기 어때?"라는 메시지를 보냈다면 사진과 메시지가 자료이고, 이를 친구에게 전송하는 것이 처리입니다.
자료의 형식을 확인할 때 type() 함수 사용 이스케이프문자는 역슬래시(\) 기호와 함께 조합해서 사용하는 특수한 문자를 의미한다. \n : 줄바꿈을 의미합니다. \r : 탭을 의미합니다.
문자열 연산자 문자열 연결 연산자 : + 문자열은 무조건 문자열끼리 + 기호를 사용해서 연결해야 한다. 숫자라 하더라도 문자열과 함께 + 연산하려면 ""로 붙여 주어야 한다. 문자열 반복 연산자 : * 문자열 * 숫자 숫자만큼 문자열을 반복해서 출력한다. 문자 선택 연산자(인덱싱) : [] 문자 선택 연산자는 문자열 내부의 문자 하나를 선택하는 연산자이다. []안에 선택할 문자의 위치를 지정하며 이 숫자를 인덱스라고 부른다. 파이썬은 제로 인덱스 문자열 범위 선택 연산자(슬라이싱) [:] 문자열의 범위를 선택할 때 사용하는 연산자 [] 기호를 이용해 문자열의 특정 위치에 있는 문자를 참조하는 것을 인덱싱이라 하고, [:]기호를 이용해 문자열의 일부를 추출하는 것을 슬라이싱이라 합니다;.
기본 미션: p. 101 3~5번 실행 결과 쓰고 인증하기 3번 문제 print("# 연습문제") print("\\\\\\\\") print("-" *😎
4번 문제 print("안녕하세요"[1]) print("안녕하세요"[2]) print("안녕하세요"[3]) print("안녕하세요"[4]) print("안녕하세요"[5])
5번 문제 print("안녕하세요"[1:3]) print("안녕하세요"[2:4]) print("안녕하세요"[1:]) print("안녕하세요"[:3])