너무너무 멋져 눈이눈이 부셔

파이썬 기본 문법-변수와 연산자 본문

강한 파이썬

파이썬 기본 문법-변수와 연산자

강하다이녀석 2023. 8. 7. 07:11

 

프로그래밍:

소프트웨어를 개발하기 위한 과정. 컴퓨터에게 명령하는 적절한 수행절차를 정의하고

이를 프로그래밍 언어로 표현하는 과정,

과정:

  1. 컴퓨터에게 시키고 싶은 일을 정한다
  2. 컴퓨터가 이해할 수 있도록 수행 절차를 정의해서 표현한다
  3. 적절한 프로그래밍 언어를 선택, 언어를 이용해서 절차를 기술
  4. 오류 수정(디버깅)

구문오류->문법 x 실행 x

논리오류-> 문법 o 실행 o 결과 x

  • 2진수
  • 16진수 0~ 9 10-> a, 11-> b, 12-> c ...16->10
  • *작은 문제로 쪼개기

기초 문법

변수

데이터를 저장하기 위해서 사용

동일 변수에 다른 데이터를 할당 가능

  • 추상화.

| a = 1000

변수 = 값 a , b = 1000, 2000

| x,y = 10,20 tmp = x x= y y =tmp

print(x,y) 임시 변수 활용!

  • 식별자 : 변수의 이름

<자료형과 메모리>

데이터 10을 컴퓨터가 기억하는 과정

  1. 10을 저장할 공간을 메모리에 만들고
  2. 저장할 공간에 대한 주소를 할당받는다

3.할당 받은 주소를 기억했다가

  1. 10이라는 데이터를 해당 주소로 찾아가서 저장한다
  2. 이후에 10이 필요해지면 해당 주소로 가서 읽어온다
  • 주소를 기억하기가 어려움 ->변수 선언(주소값을 기억하기 쉬운 이름으로 바꿔서 부르자!~ 별명)

변수 = 메모리의 주소를 기억하는 이름.

우리는 변수를 이용해서 데이터를 기억.

자료형마다 차지하는 메모리의 크기가 다르다

  • 주소값 보여주는 함수 id() *동일한 데이터인지 비교하려면 주소를 비교할 필요가 있음

#주석->실행 x

연산자

  •  
Operator
+ 덧하기
- 빼기
* 곱하기
/ 나누기
** 제곱
// 정수 몫
% 나머지

~ a , +a, -a 단항 플러스와 마이너스

  • 연산자는 기본적으로 수학에서의 우선순위와 같음.
  • 괄호가 가장 먼저 계산됨
  • 할당 연산자가 우선순위가 낮음

자료형 분류

수치형

  • 진수표현 가능 : 0b2진수, 0o8진수 ,0x16진수
  • 정수 int(), 실수 float() (소수를 이진수로 변환하는 방법: x2 한 다음 그 값의 1의 자리를 보면 됨)
  • 실수 연산 시 주의 점(무한한 결과->부동 소수점): 매우 작은 수보다 작은지 확인하거나 math.isclose()활용

문자열 :

  • str '응애' "응애"_ 소스 코드 내에서 하나의 문장부호만 쓰기를 권장
  • 문자열 안에 작은 따옴표를 사용->" '응애'라고 말했다"
  • 문자열 안에 큰 따옴표 사용->'"응애"라고 말했다'
  • 삼중 따옴표 : 작은 따옴표나 큰 따옴표를 삼중으로 사용 ->여러 줄을 나눠 입력할 때 편리
  • 문자열도 덧셈, 곱셈 가능.
  • (문자열을 변수를 활용하여 만드는 법) f스트링: f'문자열{변수}'
  • find():문자열에 어떤 글자가 몇번째 자리에 있는지 알고 싶을 때

\n 줄바꿈

\t
\r 캐리지 리턴(커서를 맨 앞으로 가게 해줌)
\o
\\ \
\' 단일 인용부호'
\'' 이중인용부호"

None

  • 값이 없음. (ex) (a =None) != (a = '')

불린형 (참 거짓)

  • 논리 자료형으로, 참과 거짓을 표현하는 자료형.
  • True or False 값을 가짐.
  • 비교 / 논리 연산에서 활용
  • 비교 연산자 -> 주로 조건문에 사용.
  • 연산을 할 때는 동일 자료형 끼리 연산.
  • 그리고 이런 애들이 모여있음( 리스트, 튜플, 세트, 딕셔너리...)

<비교 연산자>

print(3 > 6) → False

<논리 연산자>

True and True ->True

나머지 -> False

둘 다 참이여야 참

True or False -> 둘 중 최소 하나만 참이면 참

not : 피연산자의 논리값을 반대로

not True -> False

  • Falsy: False는 아닌데 논리값으로 사용될 때 False취급됨.

<falsy> 0, 0.0, (),[],{} ,' ',None

<trusy> 값이 있으면
  • 논리 연산자도 우선순위가 존재. : not, and, or 순
  • (괄호 필 사용)

단축 평가 예시

ex) 3 and 5 = 5

0 and 3 = 0

0 or 3 = 3

5 or 3 = 5

5 or 0 = 5

*프로그래밍은 위에서 아래로, 왼쪽에서 오른쪽으로 계산.

컨테이너

  • 데이터 덩어리.(모아서 관리하겠다)
  • 여러 개의 값(데이터)를 담을 수 있는 것(객체). 서로 다른 자료형을 저장할 수 있음.

EX)list,dict...

  • type() :자료형 확인 함수
  • 시퀀스: 순서 o != 정렬되어있다
    • 리스트(가변형)
      • 여러 값을 순서가 있는 구조로 저장하고 싶을 떄 사용.
      • 대괄호 사용 []
    • 튜플(불변형)
      • 여러 개의 값을 순서가 있는 구조로 저장하고 싶을 때 사용.
      • 생성 후 담고 있는 값 변경 불가.
      • 소괄호 사용()
      • 원소 하나 짜리를 튜플로 만들고 싶을 때 (1,) 콤마 찍기 ->안 하면 정수로 인식
      • 빈 괄호 만들고 값 집어넣기 불가(불변형이니까)
    • 레인지 (불변형)
      • 숫자의 시퀀스를 나타내기 위해 사용
      • list(range(n,m,s)) = n ~ m-1 까지 숫자를 s의 간격만큼 뛴 시퀀스
      • ex) list(range(0,4)) = [0,1,2,3]

인덱스 접근법 <슬라이싱 연산자>-시퀀스를 특정 단위로 잘라낼 수 있음

box = ['a', 'b', [ '바나나', '사과','체리']]  
len(box) =3box[2] =['바나나', '사과', '체리']  
box[-1][1][0] ='사'*문자열도 시퀀스라 인덱스 접근 가능. 시퀀스 [start:end:step] → 새로운 시퀀스 만들어냄
[start:end:step][:] →전체  
[::-1] → 거꾸로  
  • 논시퀀스형: 순서 x
    • 세트(가변형)
      • 집합 자료형
      • 중복되지 않는 데이터를 가짐
      • a = set() {}<<<얘는 딕셔너리
    • 딕셔너리(불변형)
      • 키-값의 쌍으로 이뤄진 자료형 (3.7부터는 ordered)
      • 키는 변경 불가능한 데이터만 활용가능, 키 값 중복 불가능
      • 값은 어떠한 형태는 상관없음
      • {},dict()

형 변환

  • 데이터 형태는 서로 변환할 수 있음.
  • 암시적 형 변환 : 사용자 의도x, 파이썬 내부적으로 자료형 변환
    • print( 3 + 5.0) -> 8.0 #3.0 + 8.0 정수 + 실수->실수
    • 기준은 데이터의 무손실.
  • 명시적 형 변환: 사용자가 특정 함수를 활용하여 의도적으로 변환
    • 실수 :float(), 정수 int(), 문자열 str()

 

'강한 파이썬' 카테고리의 다른 글

파이썬_함수  (0) 2023.02.06
파이썬_재미있는 제어문  (0) 2023.02.03