Python(1) 데이터 타입

hyeeun·2025년 2월 8일

bootcamp

목록 보기
4/22
post-thumbnail

1. 변수와 객체

(1) 변수

  • 값을 저장하는 메모리 공간

  • 파이썬에서는 변수를 미리 선언하지 않는다.

  • 변수에 저장해서 사용하는 값의 자료형으로 변수의 자료형이 결정

(2) 객체

  • 변수 형태의 속성과 함수 형태의 메서드를 가진 것
  • 각 객체는 자기 의 속성 내부 데이터 과 메서드 내부 연산 를 가짐
  • 타 프로그래밍 언어와 달리 파이썬에서는 모든 변수와 자료형이 객체로 되어 있음
  • 원소를 어떻게 구조화 해서 담아놓는지, 어떤 규칙을 부여하는지에 따라 객체의 속성을 구분함
  • 특정 객체의 attribute에 접근하거나 메서드(method)를 사용하기 위해서 뒤에 온점(.)을 붙여서 작성


2. 자료형과 연산자

(1) 기본 자료형

  • 숫자형 : 정보의 속성에 따라 특성을 다르게 나눔
    • integer (정수)
      a = 12
    • float (실수)
      b = 12.04
    • complex (복소수)
      c = 3+4j
  • 논리형 : True or False 로 나뉘는 정보
    • and : 모두 참일 경우, True
    • or : 하나라도 참일 경우, True
  • 연산자
    • 사칙연산
    • 지수승 (제곱) : a**b
    • 나머지 : a%b
    • 몫 : a//b

(2) 그룹 자료형

  • 문자형
## 원하는 위치의 문자를 선택할 수 있다. index는 0부터 시작
tx = "Hello!"

# 인덱싱
tx[-1]

# 슬라이싱
tx[:2]

# 문자 개수 계산
tx.count('e')

# 문자 찾기
tx.find('e')
tx.index('e')

# 문자 삽입
tx.join('Python')

# 대문자 변환
tx.upper()

# 소문자 변환
tx.lower()

# 공백제거
t = "  Python is difficult.  "
t.lstrip()
t.rstrip()
t.strip()

# 문자열 수정
t[2] = "i"

# 문자열 변경
t = "Python is difficult."
t.replac("difficult", "easy")

# 문자열 나누기
ts = "a, b, c, d"
t.split()
ts.split(",")

# 문자열 길이
len(t)

(2)-1 List

  • 대괄호 [ ]로 정의
  • 원소 : 모든 데이터타입 가능, 원소의 데이터타입이 같지 않아도 됨
  • 원소 변경 가능 (추가, 삭제, 정렬)
    • 빈 리스트로 생성 가능

(2)-2 Tuple

  • 소괄호 ( )로 정의
  • 원소 : 모든 데이터타입 가능, 원소의 데이터타입이 같지 않아도 됨
  • 원소 변경 불가능

(2)-3 Dictionary

  • 중괄호{}로 정의
  • {key : value}의 형태로 이루어짐, key값 반복 불가
  • 인덱스 사용 불가, 인덱스 대신 key값 활용
  • key값은 변경 불가능한 데이터타입이어야 함
  • value는 모든 데이터타입 가능
  • 원소변경 가능
dic = {'name' : 'Hong', 'phone' : '01012345678', 'birth' : '1225'}

## 순서를 가지고 있지 않아 인덱스 사용 불가
# dic[-1]
dic['name']
# 원소 추가
dic['email']="@gmail.com"
# 원소 삭제
del dic['email']
# key의 value 구하기
dic['phone']

# value 변경
dic['name'] = 'lim'
# key값
dic.keys()
# value값
dic.values()
# key, value 쌍
dic.items()
# 딕셔러리 길이 계산
len(dic)
# 원소 전체 삭제
dic.clear()

(2)-4 Set

  • 중괄호 { }로 정의
  • 원소 : 모든 데이터 타입 가능
  • 원소 반복 불가
  • 인덱스 사용 불가
  • 집합으로 교집합, 합집합, 차집합 가능


3. 제어문

  • 들여쓰기 작성에 유의
    별도의 구분자가 없기 때문에 들여쓰기(indent)를 통해 인식

(1) 조건문

  • 참 또는 거짓을 판별하는 조건식을 검사하여 결과값이 참인지 거짓인지에 따라 실행할 문장을 선택하여 처리하는 제어문

(1)-1 if문

  • 단일 조건문
  • 조건식을 검사하여 결과가 참이면 명령문 1을 수행
  • 거짓이면 명령문 1은 건너뛰고 명령문 2를 수행
if <조건식>:
    명령문1
명령문2

(1)-2 if-elif-else문

  • 다중 조건문
  • 조건식 1 이 거짓이면 elif 다음의 조건식 2 를 검사 elif 키워드 : else 와 if 를 결합
  • 참이면 명령문 2를 수행한 뒤 명령문 4를 수행
  • 거짓이면 명령문 3을 수행한 뒤 명령문 4를 수행
if <조건식1>:
    명령문1
elif <조건식2>:
    명령문2
else:
    명령문3
명령문4

(1)-3 조건식의 연산자

  • 비교 연산자 : ==, !=, <, >, <=, >=
  • 조건의 연결 : and, or, not
  • 그룹의 원소확인 : x in list, x in tuple, x in string
  • 아무것도 하지 않게 설정 : pass
  • 객체 비교 : is, isinstance()

(1)-4 연습문제

  • 대학교 학사 행정 시스템에 사용되는 코드라고 가정할 때 다음 코드는 올바르게 동작하는가?
    • level : 성적 정보
    • mine : 학생의 성적
    • 학점이 D인 경우 Retake, F라면 Fail
level = ['A', 'B', 'C', 'D', 'F']
pass_level =level[:3]
mine = "D"
if mine in pass_level:
    print("Pass")
elif mine ==  level[-1]:
    print("Fail")
else:
    print("Retake")

2. 반복문

  • 100개 이상의 파일을 읽어오는 코드를 간결하게 작성하는 등 반복이 필요한 곳에 사용
  • 구조가 매우 흡사한 코드가 여러 번 반복될 경우 주로 활용
  • 지정한 범위에 해당하는 만큼 명령문을 반복해서 실행

(2)-1 for문

  • 반복범위를 지정하여, 원소를 순서대로 반복변수에 대입하고 명령문 실행
for <반복변수> in <반복범위>:
    명령문
  • 반복범위는 리스트,튜플,문자열,range()를 통해 지정
range(start, stop, step)
  • 변수가 여러개일 경우, 함께 반복변수로 지정 가능
for (first, second) in <반복범위>:
    명령문
for (first, _) in <반복범위>:
    명령문
  • 중첩 for문 (중첩 반복문)
for <반복변수 1> in <반복범위>:
    for <반복변수2> in <반복범위>:
        명령문
  • 간단하게 반복하는 한줄 for문
    - 리스트, 세트, 딕셔러리 내에서 실행할 수 있는 for 문
    - 리스트 컴프리헨션(List Comprehension)
    [명령문 for <반복변수> in <반복범위> if <조건식>]
    - 세트 컴프리헨션(Set Comprehension)
    {명령문 for <반복변수> in <반복범위>}
    - 딕셔러리 컴프리헨션(Dictionary Comprehension)
    {key_expression: value_expression for item in <반복범위> if <조건식>}

(2)-2 for문 연습문제

  • for문을 사용하여 1에서 10까지 짝수만 출력
for i in range(1,11):
    if i%2 ==0:
        print(i)
for i in range(10):
    if (i+1)%2 ==0:
        print(i+1)
  • for문을 사용하여 구구단을 출력
for i in range(2,10):
    print(f"{i}단")
    for j in range(2,10):
        print(f"{i}*{j}={i*j}")

(2)-3 while문

  • 조건에 따라 반복 여부 결정, 조건이 참일 동안 반복 수행
  • 반복범위가 정해진 경우 for문, 반복범위가 없이 조건에 따라 수행하는 경우 while문 사용
while <조건식>:
    명령문
  • 반복문을 제어하는 break와 continue
# break : 반복문에서 빠져나옴
b=0
while True:
    b = b + 1
    print(b)
    if (b>3):
        break
    # print(b)
# continue : 처음으로 돌아가서 다음 반복을 실행
b=0
while b <= 5:
    b = b + 1
    if b==2:
        print("continue test")
        continue
     print("Add continue:",b)

(2)-4 연습문제

  • 1부터 100까지 곱을 출력
result = 1
for i in range(1,101):
    result *= i
print(result)

# math 라이브러리 이용한 코드
import math
math.factorial(100)
  • 1부터 10까지 제곱을 출력하는데, 제곱값이 30을 넘으면 중단
i =0
flag = True
while flag:
    i = i+1
    if i**2 > 30:
        flag = False
    print(i**2)
  • while문을 이용하여 아래와 같이 *을 나타내세요. (별이 1개부터 10개까지)
*
**
***
****
*****
******
*******
********
*********
**********
a = 0
while True:
    a = a +1
    # a +=1
    print("*"*a)
    if a==10:
        break
profile
hyeeun-techlog

0개의 댓글