👩🏻💻 아아 감사합니당 !!!
1주차에 비해 2주차는 좀 많이,, 어려워진 것 같다. 잘 이해되지 않는 부분도 많았지만, 확실히 더 흥미로워지긴 했다. 어려운데도 재밌다는 게 가능하구나ㅋㅋ
아무튼 2주차도 활기차게 스타뚜 ~ 🥰
02-3. 변수와 입력
▷핵심 키워드 - 변수 선언 / 변수 할당 / 변수 참조 / input() / int() / float() / str()
✍🏻변수: 값을 저장할 때 사용하는 식별자
-> 수학자들이 3.14159265라는 원주율 값을 π라는 기호로 정의해서 사용하는 것과 비슷하다
✏️변수 만들기/사용하기
👻변수를 활용하는 세 가지 방법
>>>pi=3.14159265
>>>pi
3.14159265
①변수를 선언하는 방법: 수학자들이 3.14159265라는 원주율 값을 π라는 기호로 정의 했듯이 pi를 "사용하겠다"라고 선언하는 것
②변수에 값을 할당하는 방법: π=3.14159265이듯이 변수로 사용하겠다고 선언한 pi에 값을 넣는 것, 즉 pi=3.14159265
👉🏻이 때 =기호는 우변의 값을 좌변에 넣겠다, 할당하겠다를 의미
③변수를 참조하는 방법: π라는 값을 직접적으로 입력하지 않고, π에 3.14159265...이 들어있을 것이라고 가정하는 것 👉🏻 π라고 쓰면 이 안에 들어 있는 값을 쓰겠다는 의미
📋변수를 사용하기 위해서는 변수를 선언해야 하는데, 변수 이름을 적으면 그 자체로 사용하겠다는 선언을 하겠다는 것이고, 여기에 =을 입력하고 값을 입력하면 값을 변수에 할당하는 것이 된다
변수=값 (값을 변수에 할당)
>>>pi=3.14159265 (3.14159265를 변수 pi에 저장)
📋변수를 참조할 때(선언한 변수를 사용하고 싶을 때)는 참조할 위치에서 변수 이름을 아래와 같이 써준다
👇🏻변수에 저장된 값을 출력한다
변수
👇🏻변수에 저장된 값으로 연산한다
변수+변수
👇🏻변수에 저장된 값을 출력한다
print(변수)
🖐🏻직접 해보는 손코딩🖐🏻
-결과
✏️복합 대입 연산자
-복합 대입 연산자: 변수를 활용할 때에 기존의 연산자와 조합해서 사용할 수 있는 연산자
+= | 숫자 덧셈 후 대입 |
-= | 숫자 뺄셈 후 대입 |
*= | 숫자 곱셈 후 대입 |
/= | 숫자 나눗셈 후 대입 |
%= | 숫자의 나머지를 구한 후 대입 |
**= | 숫자 제곱 후 대입 |
<예제>
-결과
📋문자열도 마찬가지로 복합 대입 연산자를 사용할 수 있다
+= | 문자열 연결 후 대입 |
*= | 문자열 반복 후 대입 |
<예제>
-결과
✏️사용자 입력: input()
-파이썬은 명령 프롬프트에서 사용자로부터 데이터를 입력받을 때 input() 함수를 사용한다
👻input() 함수로 사용자 입력받기
-프롬프트 문자열: input 함수 괄호 안에 입력한 내용 / 사용자에게 입력을 요구하는 안내 내용을 의미
>>>input("인사말을 입력하세요>")
-결과
👆🏻실행하면 다음과 같은 문자열이 뜬다. 이렇게 프로그램이 실행 도중에 잠시 멈추는 것을 블록(block)이라고 한다
👉🏻input() 함수가 사용자에게 자료 입력을 요구하면서 코드 진행을 블록하고 있는 것
>>>string=input("인사말을 입력하세요>")
print(string)
-결과
📋input과 같이 함수의 결과로 나오는 값을 리턴값이라고 한다
👻input() 함수의 입력 자료형
-자료형을 알아볼 때는 type() 함수를 사용한다
<앞의 예제 자료형 알아보기>
-결과
👆🏻문자열임을 나타내는 'str'
<자료형 알아보기2>
-결과
👉🏻input() 함수의 결과는 무조건 문자열 자료형
🖐🏻직접 해보는 손코딩1🖐🏻
-결과
🖐🏻직접 해보는 손코딩2🖐🏻
-결과
👉🏻input() 함수로 받은 자료는 모두 문자열로 저장되므로 "300"+100 (문자열+숫자)는 불가하여 발생한 오류
✏️문자열을 숫자로 바꾸기
-input() 함수의 입력 자료형은 항상 문자열이기 때문에 입력받은 문자열을 숫자로 변환해야 숫자 연산에 활용할 수 있다 : 캐스트(cast)
-문자열을 숫자로 변환할 때 사용하는 함수
- int() 함수: 문자열을 int 자료형으로 변환한다. (int는 정수형을 의미)
- float() 함수: 문자열을 float 자료형으로 변환한다. (float는 실수형 또는 부동 소수점을 의미)
🖐🏻직접 해보는 손코딩1🖐🏻
-결과
👉🏻변환하지 않은 상태에서는 문자열을 연결해 출력 / 정수로 변환한 값에서는 덧셈한 값으로 출력
🖐🏻직접 해보는 손코딩2🖐🏻
-결과
👉🏻"52"와 "52.273" 이었던 문자열이 52와 52.273이라는 int 자료형과 float 자료형의 숫자로 변환됨
🖐🏻직접 해보는 손코딩3🖐🏻
-결과
👻ValueError 예외
-자료형을 변환할 때 '변환할 수 없는 것'을 변환하려 할 때 ValueError 예외가 발생
①숫자가 아닌 것을 숫자로 변환하려고 할 때
int("안녕하세요")
float("안녕하세요")
👆🏻"안녕하세요"라는 문자열은 int() 함수로 변환할 수 없는 값
②소수점이 있는 숫자 형식의 문자열을 int() 함수로 변환하려고 할 때
int("52.273")
👆🏻int는 정수형. 부동 소수점이 있는 자료를 정수형으로 바꿀 수 없음
✏️숫자를 문자열로 바꾸기
-str() 함수: 다른 자료형의 값을 str() 함수의 매개변수에 넣으면 문자열로 변환된다
🖐🏻직접 해보는 손코딩🖐🏻
-결과
👆🏻숫자 52와 52.273이 str() 함수에 의해 문자열로 변환됨
✏️inch 단위를 cm 단위로 변경하기
-결과
2-3 chapter 마무리
🔎핵심 포인트
-변수 선언은 변수를 생성하는 것, 변수 할당은 변수에 값을 넣는 것
-변수 참조는 변수에서 값을 꺼내는 것
-input() 함수는 명령 프롬프트에서 사용자로부터 데이터를 입력받을 때 사용한다
-int() 함수는 문자열을 int 자료형으로, float() 함수는 문자열을 float 자료형으로 변환한다
-str() 함수는 숫자를 문자열로 변환한다
02-4. 숫자와 문자열의 다양한 기능
▷핵심 키워드 - format() / upper() / lower() / strip() / find() / in 연산자 / split() / f-문자열
✏️문자열의 format() 함수
-format() 함수로 숫자를 문자열로 변환할 수 있다
-format() 함수: 문자열이 가지고 있는 함수 / 중괄호{}를 포함한 문자열 뒤에 마침표(.)를 찍고 함수 사용 / 중괄호의 개수와 format 함수 괄호 안 매개변수의 개수는 반드시 같아야 한다
"{}".format(10)
"{} {}".format(10,20)
"{} {} {} {} {}".format(101,202,303,404,505)
🖐🏻직접 해보는 손코딩1🖐🏻
-결과
👆🏻숫자 10의 자료형이 문자열이 됨 / string_a에는 문자열 10이 들어있음
📋format이라는 함수는 {} 기호를 format의 괄호 안에 있는 매개변수로 대체하는 것 / {}의 앞뒤, 기호 사이에 다양한 문자열을 넣을 수 있다
🖐🏻직접 해보는 손코딩2🖐🏻
-결과
👻Index Error 예외
-IndexError: {} 기호의 개수가 format() 함수의 매개변수 개수보다 많으면 예외 발생
>>>"{} {}".format(1,2,3,4,5)
'1 2'
>>>"{} {} {}".format(1,2)
⚠️오류 발생
👆🏻{}가 매개변수보다 많음
✏️format() 함수의 다양한 기능
👻정수 출력의 다양한 형태
-format() 함수를 사용하면 출력할 정수에 기호를 넣어주거나, 숫자 형태를 다양하게 출력할 수 있다
🖐🏻직접 해보는 손코딩1🖐🏻
-결과
📋{:5d}는 5칸을 빈 칸으로 잡은 것, {:10d}는 10칸을 빈 칸으로 잡은 것
📋{05d}.format(52)는 5칸을 잡고 뒤에서부터 52숫자를 넣은 후, 앞의 빈 곳을 0으로 채운 것 (00052) / 부호가 있을 때는 맨 앞자리를 부호로 채우고 나머지 빈 곳을 0으로 채운다
🖐🏻직접 해보는 손코딩2🖐🏻
-결과
📋{:+d}처럼 d앞에 +기호를 붙이면 양수와 음수 기호를 표현할 수 있다
🖐🏻직접 해보는 손코딩3🖐🏻
-결과
📋기호와 공백을 조합할 때 =기호를 붙인다
👻부동 소수점 출력의 다양한 형태
-float 자료형 출력을 강제로 지정할 때는 {:f} 사용
🖐🏻직접 해보는 손코딩1🖐🏻
-결과
🖐🏻직접 해보는 손코딩2🖐🏻
-결과
👆🏻15칸을 잡고 소수점을 각각 3자리, 2자리, 1자리로 출력한다 (자동으로 반올림도 일어난다)
👻의미없는 소수점 제거
-의미 없는 0을 제거한 후 출력할 때 {:g}를 사용한다
🖐🏻직접 해보는 손코딩🖐🏻
-결과
✏️대소문자 바꾸기: upper()와 lower()
-upper() 함수: 저장된 문자열의 알파벳을 모두 대문자로 만든다
-lower() 함수: 저장된 문자열의 알파벳을 모두 소문자로 만든다
>>>a= "Hello Python Programming...!"
>>>a.upper()
'HELLO PYTHON PROGRAMMING...!'
>>>a= "Hello Python Programming...!"
>>>a.lower()
'hello python programming...!'
✏️문자열 양옆의 공백 제거하기: strip()
-strip() 함수: 문자열 양옆의 공백을 제거한다
- strip(): 문자열 양옆의 공백 제거
- lstrip(): 문자열 왼쪽의 공백 제거
- rstrip(): 문자열 오른쪽의 공백 제거
✏️문자열의 구성 파악하기: isOO()
-문자열이 어떻게 구성되어 있는지 확인 할 때 is로 시작하는 함수를 사용한다
- isalnum(): 문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인
- isalpha(): 문자열이 알파벳으로만 구성되어 있는지 확인
- isidentifier(): 문자열이 식별자로 사용할 수 있는 것인지 확인
- isdecimal(): 문자열이 정수 형태인지 확인
- isdigit(): 문자열이 숫자로 인식될 수 있는 것인지 확인
- isspace(): 문자열이 공백으로만 구성되어 있는지 확인
- islower(): 문자열이 소문자로만 구성되어 있는지 확인
- isupper(): 문자열이 대문자로만 구성되어 있는지 확인
✏️문자열 찾기: find()와 rfind()
-문자열 내부에 특정 문자가 어디에 위치하는지 확인할 때 find() 함수와 rfind() 함수를 사용한다
- find(): 왼쪽부터 찾아서 처음 등장하는 위치를 찾는다
- rfind(): 오른쪽부터 찾아서 처음 등장하는 위치를 찾는다
<예제>
-결과
📋문자열은 가장 앞글자를 0번째라고 센다. 처음 "안녕"은 0번째에 있는 것이고, 두번째 "안녕"은 2번째부터 등장하는 것
✏️문자열과 in 연산자
-in 연산자: 문자열 내부에 어떤 문자열이 있는지 확인하는 연산자 / 출력은 True(맞다) 또는 False(아니다)
>>>print("안녕" in "안녕하세요")
True
>>>print("잘자" in "안녕하세요")
False
✏️문자열 자르기: split()
-split(): 문자열을 특정한 문자로 자를 때 사용하는 함수
>>>a = "10 20 30 40 50".split(" ")
>>>print(a)
['10', '20', '30', '40', '50']
👆🏻실행 결과로 리스트가 나온다.
2-4 chapter 마무리
🔎핵심 포인트
-format() 함수를 이용하면 숫자와 문자열을 다양한 형태로 출력할 수 있다
-upper()와 lower() 함수는 문자열의 알파벳을 대문자 혹은 소문자로 변경한다
-strip() 함수는 문자열 양옆의 공백을 제거한다
-find() 함수는 문자열 내부에 특정 문자가 어디에 위치하는지 찾을 때 사용한다
-in 연산자는 문자열 내부에 어떤 문자열이 있는지 확인할 때 사용한다
-split() 함수는 문자열을 특정한 문자로 자를 때 사용한다
-f-문자열을 사용하면 문자열 안에 값을 format() 함수보다 간단하게 삽입할 수 있다
03-1. 불 자료형과 if 조건문
▷핵심 키워드 - 불 / 비교 연산자 / 논리 연산자 / if 조건문
✍🏻한국에서는 Boolean을 '불'이라고 표기한다. 불은 오직 True(참)와 False(거짓) 값만 가질 수 있다
✏️불 만들기: 비교 연산자
== | 같다 |
!= | 다르다 |
< | 작다 |
> | 크다 |
<= | 작거나 같다 |
>= | 크거나 같다 |
<예제>
-결과
✏️불 연산하기: 논리 연산자
not | 아니다 | 불을 반대로 전환한다 |
and | 그리고 | 피연산자 두 개가 모두 참일 때 True를 출력하며, 그 외는 모두 False를 출력한다 |
or | 또는 | 피연산자 두 개 중에 하나만 참이라도 True를 출력하며, 두 개가 모두 거짓일 때만 False를 출력한다 |
👻not 연산자
>>>print(not True)
False
>>>print(not False)
Ture
👆🏻실행하면 단순하게 True와 False가 서로 바뀐다
🖐🏻직접 해보는 손코딩🖐🏻
-결과
👻and 연산자와 or 연산자
-and 연산자: 양쪽 변의 값이 모두 참일 때만 True
좌변 | 우변 | 결과 |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
-or 연산자: 둘 중 하나만 참이어도 True
좌변 | 우변 | 결과 |
True | True | True |
Ture | False | True |
False | True | True |
False | False | False |
✏️if 조건문
-if 조건문: if 조건문은 조건에 따라 코드를 실행하거나, 실행하지 않게 만들고 싶을 때 사용하는 구문
-조건 분기: 조건을 기반으로 실행의 흐름을 변경하는 것
🖐🏻직접 해보는 손코딩🖐🏻
-결과
✏️날짜/시간 활용하기
🖐🏻직접 해보는 손코딩1🖐🏻
-결과
📋모듈이라는 기능을 활용해서 datetime 기능을 가져온다
📋그런 다음 datetime.datetime.now() 라는 함수로 현재의 시간을 구해 now라는 변수에 대입한다
🖐🏻직접 해보는 손코딩2🖐🏻
-결과
🖐🏻직접 해보는 손코딩3🖐🏻
-결과
🖐🏻직접 해보는 손코딩4🖐🏻
-결과
📋겨울의 경우 12월과 1~2월이므로 or 연산자를 사용해 범위를 연결함
✏️짝수와 홀수 구분하기
🖐🏻직접 해보는 손코딩1🖐🏻
-결과
📋52에서 number[-1]에 의해 문자열의 마지막 글자를 추출하여 last_character에는 2라는 문자열이 들어간다
📋2를 숫자 자료형으로 변환한 후 last_number에 넣고 비교를 한 뒤 짝수나 홀수 출력 / 2는 짝수이므로 "짝수입니다" 출력
🖐🏻직접 해보는 손코딩2🖐🏻
-in 연산자를 활용해 코드를 수정
-결과
🖐🏻직접 해보는 손코딩3🖐🏻
-숫자 연산으로 코드 수정
-결과
3-1 chapter 마무리
🔎핵심 포인트
-불은 True or False를 나타내는 값
-비교 연산자는 숫자 또는 문자열에 적용하며, 대소를 비교하는 연산자
-논리 연산자는 not, and, or 연산자가 있으며 불을 만들 때 사용함
-if 조건문은 조건에 따라 코드를 실행하거나 실행하지 않을 때 사용하는 구문
[선택 미션]
03-2. if~else와 elif 구문
▷핵심 키워드 - else 구문 / elif 구문 / False 값 / pass 키워드
✏️else 조건문의 활용
-else 구문은 if 조건문 뒤에 사용하며, if 조건문의 조건이 거짓일 때 실행되는 부분
🖐🏻직접 해보는 손코딩🖐🏻
-결과
📋조건문이 오로지 두 가지로만 구분될 때 if else 구문을 사용하면 이전의 코드보다 두 배 효율적이다.
✏️elif 구문
-세 개 이상의 조건을 연결해서 사용하는 방법
🖐🏻직접 해보는 손코딩🖐🏻
-결과
✏️if 조건문을 효율적으로 사용하기
🖐🏻직접 해보는 손코딩1🖐🏻 (학점 조건문 ㅋㅋㅋㅋ😂)
-결과
👆🏻비효율적인 조건문이다. 위에서 이미 제외된 조건을 한 번 더 검사할 필요는 없다.
🖐🏻직접 해보는 손코딩2🖐🏻
-결과
👆🏻이미 한 번 비교한 것은 제외하고 작성한 코드 / 하위 값만 검사하고 상위 값은 검사를 생략한 것
✏️False로 변환되는 값
-if 조건문의 매개변수에 불이 아닌 다른 값이 올 때는 자동으로 이를 불로 변환해서 처리한다. 따라서 어떤 값이 True로 변환되고, 어떤 값이 False로 변환되는지 알고 있어야 코드를 이해할 수 있다.
🖐🏻직접 해보는 손코딩🖐🏻
-숫자 0과 빈 문자열을 if else 조건문의 매개변수에 넣으면 무엇이 실행되는가
-결과
✏️pass 키워드
-프로그래밍은 전체 골격을 잡아 놓고 내부에서 처리할 내용을 차근차근 만들어 코딩하는 경우가 많다 / 이때 골격은 일반적으로 조건문, 반복문, 함수, 클래스 등의 기본 구문을 말한다
if zero == 0
빈 줄 삽입
else:
빈 줄 삽입
🖐🏻직접 해보는 손코딩🖐🏻
⚠️if 조건문 사이에는 무조건 들여쓰기 4칸을 넣고 코드를 작성해야만 구문이 성립되기 때문에 위와 같이 작성한 경우에는 IndentationError 발생
✍🏻(164페이지) 파이썬에서 들여쓰기를 할 때에는 '띄어쓰기 4번'을 한다. Tab 키를 누르면 자동으로 띄어쓰기 네 개를 넣어주는 기능이 있다.
📋pass 키워드 사용 - '아무것도 안 함', '곧 개발하겠음'의 의미
🖐🏻직접 해보는 손코딩2🖐🏻
[기본 미션]
Q3. 사용자에게 태어난 연도를 입력받아 띠를 출력하는 프로그램
<결과 화면>
3-2 chapter 마무리
🔎핵심 포인트
-else 구문은 if 조건문 뒤에 사용하며, if 조건문의 조건이 거짓일 때 실행
-elif 구문은 if 조건문과 else 구문 사이에 입력하며, 세 개 이상의 조건을 연결해서 사용
-if 조건문의 조건식에서 False로 변환되는 값은 None, 0, 0.0과 빈 문자열, 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕셔너리 등이다
-pass 키워드는 프로그래밍의 전체 골격을 잡아놓고, 내부에 처리할 내용은 나중에 만들고자 할 때 pass라는 키워드 입력
'코딩 공부 > 파이썬 (혼공단 11기)' 카테고리의 다른 글
[혼공파] 6주차_07-2 ~ 08 (0) | 2024.02.07 |
---|---|
[혼공파] 5주차_06 ~ 07-1 (0) | 2024.02.01 |
[혼공파] 4주차_05 (0) | 2024.01.24 |
[혼공파] 3주차_04 (0) | 2024.01.21 |
[혼공파] 1주차_01-1 ~ 02-2 (0) | 2024.01.03 |