Python
파이썬 : 컴퓨터 프로그래밍 언어
컴퓨터 구성요소
- 연산처리장치
- 기억장치
- 입력 장치 -키보드 마우스 스캐너 마이크
- 출력 장치- 모니터 프린터 스피커
파이썬이라는 프로그래밍 언어로 컴퓨터와 의사소통
- 명령을 내린다
- 무엇을 입력받아라
- 무엇을 출력해라
- 무엇을 기억해둬라
- 무엇을 연산해라
프로그래밍: 프로그램을 만들다. -> 프로그램이란? 할 일들의 목록
컴퓨터 프로그램을 만든다. -> 컴퓨터가 할일들의 목록을 만든다.
언어 : 컴퓨터와 의사소통 하기 위한 중간 언어(공용 언어)
파이썬, C, C++, 자바 .......
파이썬을 데이터 분석하는데 왜 사용하느냐?
- 쉽다 - 문법적으로 쉽다
- 공용 - 데이터 분석용 언어로 정착
- 파이썬으로 데이터 분석, 코딩(프로그래밍)을 한다.
- IDE(통합개발환경) : VScode ->파이썬을 가지고 공용 프로그램을 만들때
- Jupiter Notebook, Colab -> 실시간으로 데이터 분석을 확인 가능
Jupiter Notebook 단축키
- 실행 단축키 ctrl + Enter, Alt + enter, Shift + Enter
- 추가 : A, B
- 삭제 : DD, X
- 복사 : C
- 붙여넣기 : V
- 출력결과 접기 : O
Python 기본 문법
print(1234)
1234
# sep=" " 사용하면 추가/제거 가능
print("1234", "Hi", 4444, 3.14, "Python",sep=" ")
>>> 1234 Hi 4444 3.14 Python
print("1234", "hi", 4444, sep="")
>>> 1234Hi44443.14Python
print("1234", "Hi", 4444, 3.14, "Python",sep=",")
>>> 1234,Hi,4444,3.14,Python
num = 1
num2 = 3.14
str1 = "hi"
str2 = 'hi'
str3 = """hi"""
sss = """hi
asdf
asdf
asdf"""
num = 1
num2 = '1'
- 대소문자 구분 : A, a
- 숫자로 시작 불가 : 7a(x), a7(o)
- 특수문자, 띄어쓰기 불가 : _(언더바만 가능)
- 예약어 사용 불가 : 문법 용어는 변수명으로 사용 금지
- 명사, 동사 사용(형용사 사용은 지양)
- 저장한 값의 의미를 명확히 나타내기
- 표기방법
- 카멜 : myNameIs (함수명)
- 파스칼 : MyNameIs (클래스명)
- 스네이크 : my_name_is (변수명)
- 헝가리안 : strMynameis (잘안씀)
intMynameis
저장 (변수)
출력 (print)
입력 (input) : 어떤 값을 입력 받아서 다음에 재활용하고 싶어서
# 아래쪽에 뭔가 값이 튀어 나온다면 실행 후 반환값이 있다는 것이다
name = input("이름을 입력하세요 : ") # 어떤 값을 입력 받아서 다음에 재활용하고 싶어서
이름을 입력하세요 : jinseongeun
print(name)
>>> jinseongeun
name
>>> out[]: 'jinseongeun'
Q1.
# 화면에 출력하는 프로그램을 작성하시오.
긴 문제를 만났을 때 내가 해야할 일들을 우선 한글로 정리한다.
1. input을 사용해서 취미를 입력받는다.
Hobby = input("취미를 입력하세요 : ")
print(Hobby)
취미를 입력하세요 : running
running
연산
산술연산 | 문자열 연산 | ||
+ | 더하기 | + | 합치기 |
- | 뺴기 | * | 이어 붙이기 |
* | 곱하기 | ||
/ | 나누기 | ||
특수연산 | 연산자의 우선순위 | ||
% | 나머지 | ** | |
// | 몫 | // % / * | |
** | 거듭제곱 | + - |
7 ** 2 # 거듭제곱
>>> 49
7 // 2 # 몫
>>> 3
7 % 3 # 나머지
>>> 1
할당 연산자
연산자 | 역할 |
= | 오른쪽 값을 왼쪽 변수에 할당함 |
+= | 기존 왼쪽 변수 값과 오른쪽 변수를 더한 후 재할당 |
-= | 기존 왼쪽 변수 값과 오른쪽 변수를 뺀 후 재할당 |
*= | 기존 왼쪽 변수 값과 오른쪽 변수를 곱한 후 재할당 |
/= | 기존 왼쪽 변수 값과 오른쪽 변수를 나눈 후 재할당 |
%= | 기존 왼쪽 변수 값과 오른쪽 변수로 나눈 나머지를 재할당 |
//= | 기존 왼쪽 변수 값과 오른쪽 변수로 나눈 후 내림한 값을 재할당 |
**= | 기존 왼쪽 변수 값에 오른쪽 변수만큼 제곱을 한 후 재할당 |
논리 연산자
연산자 | 역할 |
and | and를 두고 좌우 조건문이 모두 참이면 |
or | or을 두고 좌우 조건문중 하나라도 참이면 |
not | 조건문 자체가 거짓이라면 |
비교 연산자
연산자 | 역할 |
== | 같다면. |
!= | 같지 않다면 |
> | 왼쪽 값이 더 크다면 |
< | 오른쪽 값이 더 크다면 |
>= | 왼쪽 같이 크거나 같다면 |
<= | 오른쪽 값이 크거나 같다면 |
항등 연산자
a = [1, 3, 4, 5]
b = [1, 3, 4, 5]
print(a == b)
print(a is b)
print(a is not b)
>>> True
>>> False
>>> True
- a와 b는 같은 값의 리스트를 할당 받았다.
- == 연산자는 값이 같기에 True를 반환 한다,
- 반면 is 는 false를 리턴 한다.
- 같은 메모리 주소가 아니기 때문이다. is not 은 반대이기때문에 true를 리턴한다.
양식 문자열
- % 문법
- format 명령어
- f-string
% 문법
"내 이름은 %s입니다. %d, %.2f" % ("jake", 19, 3.14)
>>> '내 이름은 jake입니다. 19, 3.14'
format 명령어
"내 이름은 {0}입니다. {1}, {2}".format("jake", 19, 3.14)
>>> '내 이름은 jake입니다. 19, 3.14'
"내 이름은 {2}입니다. {1}, {0}".format("jake", 19, 3.14)
>>> '내 이름은 3.14입니다. 19, jake'
f-string
name = "jake"
f"내 이름은 {name}입니다."
>>> '내 이름은 jake입니다.'
number1 = 10
number2 = 30
f"{number1} + {number2} = {number1+number2} 입니다."
>>> '10 + 30 = 40 입니다.'
Q2
# 입력 + 연산
# 계산기
# 두개의 정수를 입력받아
# 두 숫자의 사칙연산을 하는 프로그램을 작성하시오.
a = int(input("정수 하나를 입력하시오 : "))
b = int(input("다음 정수를 입력하시오 : "))
print("a+b = ", a + b)
print("a-b = ", a - b)
print("a/b = ", a / b)
print("a*b = ", a * b)
정수 하나를 입력하시오 : 5
다음 정수를 입력하시오 : 3
a+b = 8
a-b = 2
a/b = 1.6666666666666667
a*b = 15
number1 = input("첫번째 정수 : ")
number2 = input("두번째 정수 : ")
number1 = int(number1)
number2 = int(number2)
# 파이썬의 input은 무조건 문자로만 입력 받아진다.
# 내가 숫자로 바꾸고자 하면 type castiong 형변환을 해서 사용해야 한다.
print(f"{number1} + {number2} = {number1 + number2} 입니다.")
print(f"{number1} - {number2} = {number1 - number2} 입니다.")
print(f"{number1} * {number2} = {number1 * number2} 입니다.")
print(f"{number1} / {number2} = {number1 / number2} 입니다.")
첫번째 정수 : 55
두번째 정수 : 35
55 + 35 = 90 입니다.
55 - 35 = 20 입니다.
55 * 35 = 1925 입니다.
55 / 35 = 1.5714285714285714 입니다.
비교 구문 if - elif - else
# if (조건문) : 만약 조건문이 참이라면, 실행문을 실행한다.
# elif if의 조건문이 거짓일때 elif의 조건문이 참이면 실행문을 실행한다.
# 조건문 혹은 조건식
# 명제 라고 할 수 있다.
# True, False 라고 결과값이 나오는 식
if (조건문 혹은 조건식):
# 꼭 한번은 나와야한다.
실행문
elif 조건문 혹은 조건식:
# 여러번 혹은 0번 나올 수 있다.
실행문
else:
# 0번 혹은 1번 나올 수 있다.
실행문
Q3
# BMI 계산기
# 체중(kg) / 신장(m)의 제곱
# 사용자의 체중과 신장을 입력받고
# BMI 를 계산하여 출력하시오.
# 단, 출력 문구는
# "체중 xx.xx kg, 신장 xxx.xx cm 일 때 BMI는 xxx.xx 입니다."
# 라고 출력하시오.
# 명기법
# 1. 체중을 입력받는다.
weight = input("체중을 입력하세요 : ")
# 1-1 실수형변환한다.
weight = float(weight)
# 2. 신장을 입력받는다.
height = input("신장을 입력하세요 : ")
# 2-1. 실수형변환한다.
height = float(height)
# 3. bmi를 계산한다.
bmi = weight / ((height/100) ** 2)
# 4. 양식문자열을 만든다.
msg = f"체중 {weight:.2f} kg, 신장 {height:.2f} cm 일 때 BMI는 {bmi:.2f} 입니다."
# 5. 만들어진 문자열을 출력한다.
print(msg)
if bmi < 18.5:
print("저체중")
elif 18.5 <= bmi < 23:
print("정상체중")
else:
print("과체중")
체중을 입력하세요 : 68.4
신장을 입력하세요 : 177.9
체중 68.40 kg, 신장 177.90 cm 일 때 BMI는 21.61 입니다.
정상체중
오류 처리
# 오류의 종류
# 문법(95%) : 오타
# 실행(4%) : 이미지 파일이 해당 위치에 없다
# 논리(1%) : 논리적으로 문제가 있는 경우(짝코딩 pair programming)
# 오류 처리 구문
# 오류처리
try:
오류가 발생할 수도 있는 실행문
except:
오류가 발생했을때 후속 처리할 실행문
# 정수타입으로 변환할 수 있는 타입을 입력해야 하지만, ab라는 문자열 타입을 입력하여 오류가 발생하였다.
int("ab")
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [61], in <cell line: 1>()
----> 1 int("ab")
ValueError: invalid literal for int() with base 10: 'ab'
try:
a = input("정수를 입력하세요")
a = int(a)
except ValueError:
print("값 변환 오류")
except:
print("오류 발생")
else:
print("오류 없음")
정수를 입력하세요 : asd
값 변환 오류
Q4
# 1. 메뉴를 구성한다.
# 1번을 선택하면 원을 입력받아서 -> 몇 달러인지 계산해주고
# 2번을 선택하면 달러를 입력받아서 -> 몇 원인지 계산해주는
# 프로그램을 작성하시오.
print("1. 원 -> 달러 환율 계산 ")
print("2. 달러 -> 원 환율 계산 ")
a = input("1번과 2번을 선택하시오. ")
a = int(a)
if (a == 1) :
try:
Won = input("원을 입력하세요")
Won = float(Won)
except:
Won = 0
print("숫자로 반환이 불가능 합니다.")
Dollar = Won / 1306.05
print(f"{Dollar: .2f}달러 입니다. ")
elif (a == 2) :
try:
Dollar = input()
Dollar = float(Dollar)
except:
Dollar= 0
print("숫자로 반환이 불가능 합니다.")
Won = Dollar * 1306.05
print(f"{Won: .2f}원 입니다. ")
1. 원 -> 달러 환율 계산
2. 달러 -> 원 환율 계산
1번과 2번을 선택하시오. 1
원을 입력하세요10000
7.66달러 입니다.
Futher reference
- 밑바닥 부터 딥러닝--> 수학 중심 머신러닝
- 혼자 공부하는 머신러닝+딥러닝 --> 혼자보는데 도움이 된다
- 혼자 공부하는 파이썬 --> 학구적으로 공부하고 싶다?
- 3회독 필수! 사자마자 일주일 안에 소설책 보듯이 읽자,
- 2회독째 코드만 실행이 되게만 하고 넘어감, 이해할 필요는 없다(한달 안 걸림)
- 3회독째에 이해 하면서 공부!
- 이외에 기본 책을 보지말고, 저자 깃허브에 소스 다있음.
'Python > Python Programming' 카테고리의 다른 글
Python_Basic_02 (0) | 2022.07.07 |
---|---|
Part 03 Ch01 파이썬 프로그래밍- 04. Data Type (실습) (0) | 2022.07.06 |
Part 03 Ch01 파이썬 프로그래밍- 03. Data Type(이론) (0) | 2022.07.05 |
Part 03 Ch01 파이썬 프로그래밍- 02. Python 소개 1 (0) | 2022.07.05 |
Part 03 Ch01 파이썬 프로그래밍- 01. 프로그래밍이란? (0) | 2022.07.05 |