Python _ basic

박다현·2023년 4월 1일
0

likelion

목록 보기
3/23
post-thumbnail

Python
간결하고 생산성 높은 프로그래밍 언어

장단점

  • 장점
    간결한 문법 / 사람의 사고 체계와 유사성을 지님
    확장성 용이 : 다양한 라이브러리 존재 및 활용 가능
    높은 생산성

  • 단점
    모바일 앱 개발 환경에서 사용하는 것에 어려움 존재


01 변수



a. 변수

값이 변할 수 있는 데이터 자체를 저장할 수 있는 공간 ( 정수 , 소수 , 문자열 etc )

b. 주의사항

1 ) 변수 사이 공백은 허용되지 않음

2 ) 예약어 (reserved words , keyword) 는 변수로 선언할 수 없음

3 ) 숫자 또는 특수 문자로 시작 불가능



02 자료형



a. 정수형 (int)

숫자들을 의미 (2진수, 8진수, 10진수, 16진수)

i = 23
print(type(i))

result

<class 'int'>


b. 문자형 (str)

문자열을 의미

s = 'arcenciel'
print(type(s))

result

<class 'str'>


c. 실수형(float)

소수점을 포함한 숫자들을 의미

f = 3.14
print(type(f))

result

<class 'float'>


d. 리스트 (list)

비슷한 성질을 가진 item들의 묶음으로 스택 (stack) 과 큐 (queue) 를 이해하는데 기초가 되는 자료 구조


1 ) 인덱싱 (indexing)

내부 요소의 값을 어떻게 찾을 것인지 의미
저장되어 있는 데이터를 호출할 때 사용

리스트 변수명 [인덱스 번호]

2 ) 슬라이싱 (slicing)

리스트를 자르는 것을 의미
각각의 요소를 자유롭게 추출하고자 할 때 사용

리스트 변수명[시작 인덱스 : 종료 인덱스 : step]
  • 종료 인덱스의 원소는 포함되지 않고 바로 앞 원소까지만 포함되는 방식

  • 음수 인덱싱 사용 가능


3 ) 리스트 함수

  • 리스트.append(값)
    맨 뒤에 값 추가
list.append(n)
  • 리스트.insert(인덱스, 값)
    인덱스에 값을 추가
list.insert(index, n)
  • 리스트.sort()
    리스트값 오름차순 정렬
list1 = [1,9,45,73,14]
list1.sort()
print(list1)

result

[1, 9, 14, 45, 73]


  • 리스트.reverse()
    리스트값 역순 정렬
list1 = [1,9,45,73,14]
list1.sort()
print(list1)

result

[73, 45, 14, 9, 1]


  • del 리스트[인덱스]
    인덱스에 있는 값 삭제
list1 = [1,9,45,73,14]
del list1[2]
print(list1)

result

[1, 9, 73, 14]


  • 리스트.remove(값)
    해당하는 값 삭제
list1 = [1,9,45,73,14]
list1.remove(9)
print(list1)

result

[1, 45, 73, 14]


  • 리스트.index(값)
    찾고자 하는 값의 위치를 알려줌
list1 = [1,9,45,73,14]
print(list1.index(45))

result

2


  • 리스트.pop()
    마지막 값 반환 후 리스트에서 제거
list1 = [1,9,45,73,14]
print(list1.pop())

result

14


  • len(리스트)
    리스트의 값 개수 반환
list1 = [1,9,45,73,14]
print(len(list1))

result

5


e. 튜플 (tuple)

리스트와 거의 유사하지만 수정이 안되는 형식을 지니는 자료구조

튜플 변수명 = ( 변수, 변수, 변수 .. )

f. 딕셔너리 (dictionary)

Key (불변)와 Value (가변)를 한 쌍으로 갖는 순서가 존재하지 않는 자료형

딕셔너리 변수명 = {'Key1' : 'Value1' ,'Key2' : 'Value2' ... }

ex _ 딕셔너리 추가하기
dic1 = {'name' : 'DH', 'age' : 23, 'phone' : '010-0000-1111'}
dic1['birth'] = '2/22'
print(dic1)

result

{'name': 'DH', 'age': 23, 'phone': '010-0000-1111', 'birth': '2/22'}


1 ) 딕셔너리 함수

  • del 딕셔너리명 [Key]
dic1 = {'name' : 'DH', 'age' : 23, 'phone' : '010-0000-1111'}
del dic1['age']
print(dic1)

result

{'name': 'DH', 'phone': '010-0000-1111'}


  • 딕셔너리명[Key] / 딕셔너리명.get(Key) /딕셔너리명.keys() / 딕셔너리명.values()
    딕셔너리 값 가져오기
ex_ 딕셔너리명[Key] 

dic1 = {'name' : 'DH', 'age' : 23, 'phone' : '010-0000-1111'}
print(dic1['name'])

result

DH


  • Key in 딕셔너리명
    in은 딕셔너리의 키에 한해서 동작
dic1 = {'name' : 'DH', 'age' : 23, 'phone' : '010-0000-1111'}
print('성별'in dic1)

result

False


  • 딕셔너리명.clear()
    딕셔너리 모두 지우기


03 조건문


상황에 따라 실행 흐름을 다르게 하는 문법


a. in / not in

  • in
    찾고자 하는 값(x)이 포함되어 있으면 True
  • not in
    찾고자 하는 값(x)이 포함되어 있지 않으면 True

b. if / elif / else

  • if
    조건식이 True 일 경우 실행 문장 실행
if 조건식:
    실행문장
    실행문장

  • elif
    조건식이 True일 경우 실행 문장 1 실행
    조건식이 False일 경우 다음 조건식 확인
if 조건식:
    실행 문장 1
elif 실행 문장 2

  • if else
    조건식이 True일 경우 실행 문장 1 실행
    조건식이 False일 경우 실행 문장 2 실행
if 조건식:
    실행 문장 1
else:
    실행 문장 2

조건문 작성시 들여쓰기에 항상 유의할 것

ex _ 조건문 _ if else

a = int(input("돈을 입력하세요 : "))

if a >= 10000:
    print("택시를 탄다.")
else:
    print("버스를 탄다.")
ex _ 조건문 _ elif _ 학점

jumsu = int(input("점수를 입력하세요 : "))

if 90 <= jumsu <= 100:
    print("A학점입니다.")
elif 80 <= jumsu < 90:
    print("B학점입니다.")
elif 70 <= jumsu < 80:
    print("C학점입니다.")
elif 60 <= jumsu < 70:
    print("D학점입니다.")
elif jumsu < 60:
    print("F학점입니다.")

c. 삼항 연산자

a if 조건식 else b
조건식이 True 이면 a, False 이면 b

ex_ 삼항 연산자

score = int(input("점수를 입력하세요 : "))
print("합격" if score >= 60 else "불합격")


04 연산자



a. 산술 연산자

  • 더하기 +
  • 빼기 -
  • 곱하기 *
  • 나누기 /
  • 나누기 (몫) //
  • 나누기 (나머지) %

ex _ 산술 연산자 _ 1

a = input("정수를 입력하세요 >> ")
b = input("정수를 입력하세요 >> ")
c = int(a) + int(b)
d = int(a) - int(b)
e = int(a)*int(b)
f = int(a)/int(b)
print("더하기 결과 :  %d " , c)
print("빼기 결과 : " %d , d)
print("곱하기 결과 : " %d , e)
print("나누기 결과 : " %d , f)

포맷팅 방식 (formating)
%d : 정수
%f : 실수
%s : 문자
%c : 문자 1 개
%o : 8진수
%x : 16진수
%% : 문자 %

ex _ formating

print('%d' % 1234.56) # 1234
print('%d' % 1234.56) # 1234.56
print('%s' % 'python') # python

print('%4d' % 1234.56) 
print('%08.2f' % 1234.567) 
print('%5s' % 'python')

%4d
4자리 정수 의미

%08.2f
. 을 포함한 8자리의 실수, 빈 자리는 0으로 대체 , 소수점 아래 2자리 의미
result > 01234.56

%5s
5자리 문자열 출력 , 공백에 0을 넣는 것이 아닌 공란으로 자리 대체
result > ' abc'

ex _ 산술 연산자 _ 2

a = int(input("국어 점수를 입력하세요 >> "))
b = int(input("수학 점수를 입력하세요 >> "))
c = int(input("영어 점수를 입력하세요 >> "))

hap = a+b+c 

print("합계 : %d" % hap)
print("평균 : %d" % (hap/3))

b. 지수 연산자 / 복합 대입 연산자

  • 지수 연산자 **
정수 ** 지수

  • 복합 대입 연산자
    1 ) +=
    a += b -> a = a + b
    2 ) -=
    a -= b -> a = a - b
    3 ) =
    a
    = b -> a = a * b
    4 ) /=
    a /= b -> a = a / b
    5 ) %=
    a %= b -> a = a % b

c. 비교 연산자

기본적으로 알고 있는 수학 비교 연산자와 r거의 동일한 형태

  • a > b
    a가 b보다 큼을 의미
  • a >= b
    a가 b보다 크거나 같음을 의미
  • a < b
    a가 b보다 작음을 의미
  • a <= b
    a가 b보다 작거나 같음을 의미
  • a == b
    a와 b가 같음을 의미
  • a != b
    a와 b가 같지 않음을 의미

d. 논리 연산자

  • not
    논리값을 뒤집는 역할을 하는 연산자
  • and
    두 값이 모두 True 일 때만 True를 명시하는 연산자
  • or
    두 값 중 하나라도 True 이면 True 를 명시하는 연산자
ex _ 논리 연산자

a = 1
b = 2
c = 3

print(not a < b)
print(a < b and b < c)
print(a < b and c > b)
print(a < b or c > b)

result

False
True
True
True



05 반복문


프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문


a. while문

조건문이 True일 경우 실행 문장 반복
어떠한 특정 조건을 만족할 때까지 무한 반복되며 새로운 변수가 생성되지 않음
(반복 횟수의 명확성 X)

while 조건식 :
    실행 문장
    실행 문장

b. for문

문자열 또는 리스트 / 튜플이 들어갔을 때 안에 있는 요소를 하나씩 반복
반복하길 원하는 범위를 주고 새로운 변수값을 생성
(반복 횟수의 명확성 O)

for 변수 in 문자열 (or 리스트 or 튜플):
    print(변수)

range() 함수

range(시작할 숫자, 종료할 숫자, 증가량)
range(기본값 0, 종료할 숫자, 기본값 1)

ex _ for문 _ 1

score_list = [90,45,70,60,55]
number = 1

for s in score_list :
    if s >= 60 :
        print('%d번 학생은 합격입니다' % number)
    else:
        print('%d번 학생은 불합격입니다' % number)

    number += 1
ex _ for문 _ range()

for i in range(0,10,1):
    print(i, end = '')



python 에 대한 가장 기초적인 부분들에 대해 전반적으로 개념을 훑고 간단하게 예제 프로그램을 작성해보며 스터디 진행


0개의 댓글