728x90
반응형

자료구조

자료들을 저장하는 여러 가지 구조들을 자료구조(Data Structure), 또는 데이터구조라 부른다.

시퀀스

- 요소(element)로 구성
- 요소 간에는 순서가 있다
- 시퀀스의 요소들은 번호가 붙여져 있다.
- 내장 시퀀스 (str, bytes, bytearrary, list, tuple, range)
- 동일한 연산을 지원
     > 인덱싱(indexing),  슬라이싱(slicing), 덧셈연산, 곱셈연산
- 내장함수 적용가능 : 시퀀스의 길이를 반환하는 len()함수, 최대값과 최소값을 찾는 max()와 min()함수
 

튜플 패킹과 언패킹

- 패킹
     t = ('apple', 'banana', 'grape')
- 언패킹
     (s1, s2, s3) = t
- 결과
      s1 = 'apple'     s2 = 'banana'     s3 = 'grape'
 

enumerate함수

- 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력으로 받았을 때, index와 값을 포함하여 리턴
- for문과 함께 자주 사용
- index와 값을 동시에 접근하면서 루프를 돌리고 싶을 때 사용

["apple", "banana", "grape"] enumerate( ) 사용(1, "apple")
(2, "banana")
(3, "grape")

 
Site Package  위치 확인하기

- Python에서 Site Packages가 설치되어 있는 경로를 출력하는 방법
- Terminal에서 다음 명령을 입력

python -m site --user-site

 
라이브러리

- 다른 사람들이 만들어 둔 함수들의 모음
- 자주 사용하는 기능을 쉽게 재사용할 수 있고 다른 사람과도 공유
- 표준 라이브러리 :  파이썬이 설치 될 때 같이 자동으로 설치 되는 라이브러리
- 외부 라이브러리 : 기본 외에 별도로 설치해서 사용하는 라이브러리
- 외부 라이브러리 설치 : pip install 라이브러리명, conda install 라이브러리명
- 사용법 : import 라이브러리명
- 현재 설치 되어있는 라이브러리 확인 : pip list
- Pandas : 파이썬의 데이터 분석 라이브러리
 
- 표준 라이브러리 날짜/ 시간 함수 정리 
https://mzero.tistory.com/28

[Python] 파이썬 표준 라이브러리 (날짜/시간) - datetime, timedelta, relativedelta

datetime() 현재 시간, 날짜를 가져온다. from datetime import datetime print(datetime.now()) timezone() timezone으로 설정한 기준의 시간과 날짜를 가져온다. from pytz import timezone print(datetime.now(timezone('UTC'))) datetime.no

mzero.tistory.com

 

728x90
반응형
728x90
반응형

range()

- range()로 반복 횟수를 전달하면 range()가 자동으로 순차적인 정수들을 생성해준다.

 
- range( start = 0, stop, strp = 1 )
     > start : 시작값
     > stop : 종료값이지만 stop은 포함되지 않는다.
     > step : 한번에 증가되는 값이다.

 
조건제어반복

- 어떤 조건이 만족 되는 동안 반복한다.
- ex) 투자금이 목표에 도달하는 기간을 계산해보자

 
무한루프와 break, continue

- 무한루프는 실제코드에서 많이 사용된다. 특히 반복을 빠져나가는 조건이 까다로운 경우에 많이 사용된다. 예를 들어서 사용자가 입력한 수가 3의 배수이거나 음수의 경우에 while 루프를 빠져나가야 한다고 하자.
이는 다음과 같이 while 루프의 조건문을 만드는 것보다,

while (x%3 == 0) or (x < 0) :
    ...
    ...
    ...

 
 
아래 나온 것 처럼 루프를 만들고 그 안에서 루프를 벗어나는 조건을 검사하는 편이 이해하기 쉽다.

while True:
    if x%3 == 0:
        break
    if x<0 :
        break
    ...

 
리스트 내포

- 리스트 내포(List Comprehension)는 원하는 자료들을 조회 또는 추출하여 리스트로 변환하는 현식
- 리스트 내포는 조건식을 이용하여 같은 연산을 전체 항목이나 일부 항목에 적용할 수 있음
- 리스트 내포를 이용하여 항목들을 대문자나 소문자로 바꾸는 등의 작업을 처리할 수 있음
- 리스트 내포 처리 과정
     ① → ② → ③ 에서 ①로 이동하여 반복 수행, 더 이상 꺼내 올 항목이 없으면 종료함.
     ① 항목들에서 순차적으로 하나씩 꺼내온다.
     ② 조건식을 적용하여 해당 조건에 맞는 항목은 추출하고 조건에 맞지 않으면 무시한다.
     ③ 위에서 추출한 항목은 리스트에 추가한다.
- 기본적인 리스트 내포 형식
     > 항목들에서 순차적으로 꺼내 온 자료는 변수에 저장한 후 표현식에 적용하여 리스트에 추가함


함수

- 입력값, 출력값(반환값)이 있다.
- 코드의 반복을 줄이기 위해 사용한다.
- def 함수명(변수1, 변수2, ...): 실행문1 실행문2 ... return 결과값
- (변수1, 변수2) <= 변수 생략 가능
- return 문 생략 가능
- 함수명은 동사 + 명사 형태로 적는 것이 좋다.
- ex. getId, deleteId


- 함수에 return을 여러개 찍으면 첫번째 return까지만 실행되고 멈춘다. 즉, 함수의 중단지점을 선언 할때 return을 쓴다

def add_minus(x, y):
    return x + y
    return x - y

- 함수에 쓰는 변수의 범위


- 변수에 default 값 설정
     > default값을 지정한 파라미터가 먼저 나오면 오류가 난다. 즉, 파라미터 종류 별 순서가 중요하다


 

- global 변수 선언
     > 로컬 변수, 글로벌 변수 구분하는게 중요
     > 파이썬에서는 글로벌 변수일 경우 변수명에 global을 씀

     > 아래의 경우는 로컬변수와 글로벌 변수를 함께 사용 하였으므로 함수내에 글로벌 변수 선언을 해준다.


lambda 함수

- lambda 변수1, 변수2, …: 결과값


파이썬 내에서 파일 생성 및 읽어오기

 
Pickle 라이브러리 사용

- 텍스트 상태의 데이터가 아닌 파이썬 객체 자체를 파일로 저장
- 기존의 텍스트 파일 저장과 다른점
     > w, r 텍스트 모드
     > wb, rb는 바이너리 모드(텍스트가 아닌 상태)
     > 저장할 때는 wb 읽을때는 rb로 지정
     > pickle 쓸때는 무조건 wb랑 rb라고 작성
- Pickle 사용법

728x90
반응형
728x90
반응형

주제 : 고객 정보 관리 시스템

진행 인원  : 4명

진행 방법 : 짝 프로그래밍

 

짝 프로그래밍

- 중간 지점에 하나의 컴퓨터를 둔다.

- 10분 간격으로 서로 옮겨 가면서 코드를 작성한다. 

- 네비게이터(navigator)가 전략을 제시하고 드라이버(driver)가 실제 코드를 작성한다.

지금 까지 배운 내용을 토대로 고객의 정보를 관리하는 프로그램을 만듭니다.
고객의 정보를 관리하는 프로그램에서 사용하는 고객 정보를 저장하는 자료구조는 자신 있는 것을 이용합니다.
 
1. 주요 내용
- 고객의 정보는 이름, 성별, 이메일, 출생년도가 있습니다.
- 고객의 정보를 입력받아 본인이 선택한 자료구조에 저장해야 합니다.
- 이름은 문자열로 저장
- 성별은 남자는 M, 여자는 F로 저장
- 이메일은 문자열로 저장
- 태어난 연도는 정수로 저장
 
2. 요구사항
- 고객 관리 프로그램은 고객의 정보를 저장, 조회, 수정, 삭제 할 수있는 기능이 있어야 합니다.
- 고객 정보를 파일에 저장하는 기능을 구현하지 않아도 됩니다.
- “ I ”를 눌러 고객의 정보를 입력받도록 합니다.
- 저장된 고객 정보는 “ P ” 또는 “ N ”을 눌러 이전 고객정보 또는 다음 고객정보를 조회할 수 있어야 합니다.
- 조회한 고객 정보는 “ U ”를 눌러 새로운 정보로 수정할 수 있어야 합니다.
- “ D ”를 누르면 조회한 고객 정보를 삭제해야 합니다.
- 프로그램의 종료는 “ Q ”를 누릅니다.
 

실습 시작 전 주요내용 정리하기

# 이름, 성별, 이메일, 출생년도
# 이름 - 문자열
# 성별 - M / F
# 이메일 - 문자열
# 출생년도 - 정수

# 저장, 조회, 수정, 삭제
# I - 사용자가 이름, 성별, 이메일, 출생년도를 순차적으로 입력할 수 있게한다.
# P, N - 입렭받은 여러명의 정보를 조회 (이전, 이후)
# U - 현재 위치의 고객정보를 수정해야 한다.
# D - 현재 위치의 고객정보를 삭제해야 한다.
# Q - 종료
 
 

작성한 코드

import re

# clientData = list()
# 기본으로 입력된 데이터 입니다.
clientData = [{'name' : 'aaa', 'gender' : 'M', 'email' : 'abc@gmail.com', 'birth' : '2000'},
              {'name' : 'bbb', 'gender' : 'F', 'email' : 'bbb@gmail.com', 'birth' : '2001'},
              {'name' : 'ccc', 'gender' : 'M', 'email' : 'ccc@gmail.com', 'birth' : '2002'}]
gender_pattern = re.compile(r'^[MFmf]$')

while True:
    yourInput = input('I, R, U, D, Q 중에 입력하시오 : ')
    
    if 'I' == yourInput:
        while True:
            name = input('이름을 입력하세요 : ')
            if name.isalpha():
                pass
            else:
                print('올바른 이름을 입력하세요.')
                continue
            gender = input('성별을 입력하세요(M / F) : ')
            if gender_pattern.match(gender):
                pass
            else:
                print('올바른 성별을 입력하세요.')
                continue
            email = input('이메일을 입력하세요 : ')
            if email.isalpha():
                pass
            else:
                print('올바른 이메일을 입력하세요.')
                continue
            birth = input('태어난 연도를 입력하세요 : ')
            if birth.isdecimal():
                pass
            else:
                print('올바른 태어난 연도를 입력하세요.')
            dic = {'name' : name, 'gender' : gender, 'email' : email, 'birth' : birth}
            clientData.append(dic)
            print('입력완료 되었습니다.')
            break
            
    elif 'R' == yourInput:
        count = -1
        print('고객 정보를 조회하세요.')
        while True:
            search = input('이전정보를 조회하려면 P 다음 정보를 조회하려면 N을 입력하세요 : ')
            if 'N' in search:
                count += 1
                print(clientData[count], f'당신의 번호는 {count}')
                continue
            elif 'P' in search:
                count -= 1
                print(clientData[count], f'당신의 번호는 {count}')
                continue
            elif 'Q' in search:
                break
            else :
                print('N, P, Q중에 입력하세요 : ')
                continue
                
    elif 'U' == yourInput:
        print('고객 정보를 수정하세요.')
        user_count = input('당신의 번호를 입력하세요 : ')
        print(f'현재 당신이 가지고있는 고객정보{clientData[int(user_count)]}')
        rename = input('변경할 이름을 입력하세요 : ')
        regender = input('변경할 성별을 입력하세요(M / F) : ')
        reemail = input('변경할 이메일을 입력하세요 : ')
        rebirth = input('변경할 태어난 연도를 입력하세요 : ')
        dic = {'name' : rename, 'gender' : regender, 'email' : reemail, 'birth' : rebirth}
        clientData[int(user_count)]=dic
        print('입력완료 되었습니다.')
        break
        
    elif 'D' == yourInput:
        print('삭제하시겠습니까?')
        userDelCount=input('삭제할 번호를 입력하세요. 나가시려면 Q를 입력해주세요 : ')
        if 'Q' in userDelCount:
            continue
        print(f'당신의 개인정보는 다음과 같습니다{clientData[int(userDelCount)]}')
        real = input('정말 지우겠습니까?(Y / N) : ')

        if 'Y' in real:
            del clientData[int(userDelCount)]
        continue

    elif 'Q' == yourInput:
        break

오류사항

- 고객 정보 조회 시 List에 존재하는 데이터 count을 넘어가면 오류가 난다.

- 이메일 입력시 isalpha()함수를 써서 문자형인지 확인하는데 정확한 이메일 형식을 입력하면 '@'와 '.' 등의 기호가 들어가기 때문에 문자 형식에 맞지 않아 오류가 난다.

 

 

728x90
반응형
728x90
반응형

지난 주 정리

 

제어문

 - 문장들이 실행되는 순서를 제어하는 문장을 제어문(Control Statement)라고 한다.

 

조건문의 중요성

- 만약 프로그램에 조건문이 없다면 프로그램은 항상 동일한 동작만을 되풀이 할 것이다.

 

3가지의 제어구조

- 순차구조

- 선택구조

- 반복구조

 

if - else

if 조건식 :
                문장 1
     else : 
                문장 2

- else는 없을 수도 있다.

- 파이썬에서는 들여쓰기가 아주 중요하다.

 

논리 연산자

연산 의미
x and y x와 y가 모두 TRUE여야 TRUE
x or y x와 y 중 하나만 TRUE 여도 TRUE
not x TRUE > FALSE, FALSE > TRUE 

 

중첩 if 문

if 문 안에 다른 if 문이 들어갈 수 있다.

연속되는 범위 안에서 값을 도출하려 할 때 사용.

 

반복의 중요성

우리들의 생활에서는 반복적인 작업들이 필요하다. 

반복적이고 단순한 작업은 컴퓨터를 이용하여 자동화 하면 된다.

 

반복의 종류

- 횟수 반복(for 문) : 정해진 횟수만큼 반복한다.

- 조건 반복(while 문) : 특정한 조건이 성립되는 동안 반복한다. 조건이 변경되는 로직이 안에 꼭 있어야 한다. 없으면 무한반복하기 때문이다.


지난 주) 예제 풀어보기

문제 : 콘테스트 평가
7명의 심판들의 점수를 입력받아 리스트에 저장하고 최소값과 최대값을 리스트에서 제거하는 프로그램을 작성해보자
제거 전 [10.0, 9.0, 8.3, 7.1, 3.0, 9.0]
제거 후 [9.0, 8.3, 7.1, 9.0]

 

내가 적어본 코드

score = [10.0, 9.0, 8.3, 7.1, 3.0, 9.0]
print(score)
score.remove(min(score))
score.remove(max(score))
print(score)

 

코드실행 결과


강사님이 알려주신 코드

- 점수를 직접 입력하여 리스트에 추가할 수 있도록 설정함 

- 점수가 숫자일 경우에만 입력가능하도록 설정함

- 점수가 실수일 경우에는 소숫점이 존재하기 때문에 숫자로 인식되지않아 오류가 날 수 있음. 그렇기 때문에 replace함수로 '.'을 삭하여 조건문을 실행시킴

- 최솟값과 최댓값을 제거한 리슽의 평균을 구할 수 있도록 로직을 구현함

scores = list()
count = 0
while count < 7:
    count += 1
    score = input(f'{count}번째 심사위원 점수를 입력하세요. : ')
    # 소수점 입력시 체크 확인
    if score.replace('.', '').isnumeric():
        scores.append(float(score))

print(scores, min(scores), max(scores))
min = min(scores)
max = max(scores)
scores.remove(min)
scores.remove(max)
print(f'최솟값과 최댓값을 제거한 리스트 : {scores}')
avg = sum(scores)/len(scores)
print(f'평균은 : {avg}입니다.')

 

코드 실행 결과


(3일차 이어서)

제어문

 

3. for

- 횟수 반복문
- 가장 많이 쓰임.
- 리스트/튜플/문자열의 요소의 갯수만큼 반복한다.
- for 변수 in 리스트/튜플/문자열: 실행문...

 

- continue, break, pass
     > continue : 해당 조건에서 그 루프가 끝나고 다음 루프로 넘어간다.



     > pass : 실행할 코드가 없는 것을 뜻함.(모두 다 실행하고 그 다음 루프로 넘어간다.)


   

 > break : 반복문 자체를 중단한다.


 - List에서 for 문 쓰기


- Dictionary에서 for 문 쓰기


- Tuple에서 for 문 쓰기


- 구구단 생성하기


4.  List Comprehension(List 내 for 문 쓰기)

- 리스트 안에 for문을 포함하여 한줄로 편하게 코드를 작성하는 문법.

- [표현식 for 항목 in 반복가능객체 if 조건문]


- 조건문이 여러개 들어갈 경우

     > [for 항목1 in 반복가능객체1 if 조건문1 for 항목2 in 반복가능객체2 if 조건문 2...]

 

 

5.  Dictionary Comprehension


- Dictionary Comprehension에서 zip으로 표현하기

728x90
반응형
728x90
반응형

변수

 

변수의 이름

- 의미 있는 이름을 사용한다.

- 소문자와 대문자는 서로 다르게 취급된다.

- 변수의 이름은 영문자와 숫자, 밑줄(_)로 이루어진다.

- 변수의 이름 중간에 공백이 들어가면 안 된다. 단어를 구분하려면 밑줄(_)을 사용한다.

- 파이썬의 예약어(파이썬이 사용하는 특수한 언어)를 변수로 사용할 수 없다.

 

변수 예시

- 올바른 예 : size, cloud9, max_size, _count- 올바르지 않은 예     >> 6pack : 숫자가 앞에 오면 안 된다.     >> mid score : 중간에 공백이 있으면 안 된다.     >> class : 예약어를 변수로 사용할 수 없다.     >> money# : 특수문자 사용할 수 없다.

 

낙타체낙타체는 변수의 첫 글자는 소문자로, 나머지 단어의 첫 글자는 대문자로 적는 방법이다. 예를 들어, myNewCar처럼 'm'은 소문자로, 나머지 단어들의 첫 글자는 대문자로 표기한다.

 

Python PEP

파이썬 코드를 어떻게 구상해야 할지 알려주는 스타일 가이드

https://peps.python.org/pep-0008/

 

PEP 8 – Style Guide for Python Code | peps.python.org

PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Alyssa Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Contents This document gives coding conventions for the Python

peps.python.org


(2일 차 이어서)

변수의 유형

 

5. 딕셔너리

- key : value 쌍이 모여있는 형태 => property 형식
- key : value 들을 {}로 감싼다.
- 변수명 = { 'key' : 'value', ... , 'keyX' : 'valueX'}
- key는 중복될 수 없다.

- 위치도 인덱싱이 되지 않는다.
- 사용 이유 : 데이터에 이름을 붙여 더욱 명시적으로 사용하기 위함

- 함수로 가져오고 싶은 key를 정확히 명시하지않고, key 이름에 오타가 나면 에러가 나지 않고 새로운 key로 생성 될 수 있으니 주의해야 한다.

- list를 key로 사용할 수 없다.

Key가 List로 올 수 없음을 보여주는 예


- 딕셔너리 생성해보기

딕셔너리 생성하기

 

5-1. 딕셔너리 함수

- keys() : 딕셔너리에 들어있는 key들을 반환

- values() : 딕셔너리에 들어있는 value들을 반환

- items() : key와 value를 tuple로 반환

- get(‘value를 알고 싶은 key’) : key에 대응하는 value를 반환

- zip(unpack의 반대) : tuple/list 두개를 하나의 딕셔너리로 변환

     >> a, b = (1, 2) 1, 2 로 묶는것을 zip 그 반대가 unpack

- del() : 메모리 상의 변수를 지우는 함수 (다른 변수에도 사용 가능)

del() 사용

 

# 파이썬의 반복문

 

# 파이썬은 변수를 정할 때 타입을 따로 정하지 않는다. 그래서 변수가 어떤 타입인지 잘 모를 경우 나중에 변수끼리 연산할 때 타입이 달라 오류가 난다. 그렇기 때문에 변수의 타입을 잘 알고 가는 것이 중요하다.

 

6. boolean

- 참 또는 거짓을 나타내는 자료형

- True, False처럼 첫 글자가 대문자여야 함

- True인 것들, False인 것들

 

7. 값 변수, 참조 변수

- 값 변수 :  기본 타입

- 참조 변수 : 기본 타입 이외의 것


- copy() : 값을 받아오는 변수가 참조 변수일 경우에도 copy()로 값을 받아오면 값 변수가 된다.

copy()로 값 변수 받아오기


- Python Tutor

언어가 동작되는 것을 시각화 해주는 사이트

https://pythontutor.com/

 

Online Python Tutor - visualize, debug, get AI help for Python, Java, C, C++, and JavaScript

Online Compiler, Visual Debugger, and AI Tutor for Python, Java, C, C++, and JavaScript Python Tutor helps you do programming homework assignments in Python, Java, C, C++, and JavaScript. It contains a unique step-by-step visual debugger and AI tutor to he

pythontutor.com

 

8. 집합(set)

- set([]) << 이런 식으로 선언

- 요소에 접근할 때 list()로 변환해서 인덱스로 접근한다.

- 순서가 없고, 중복이 없다.

 

8-1. 집합에 사용되는 연산

- 교집합 : intersection (&)
- 차집합 : difference (-)
- 합집합 : union (|)


제어문

 

1. if

- 참, 거짓에 따라 동작을 수행

- 들여쓰기를 잘 해야 해!

들여쓰기 잘못했을 시 발생하는 오류


- pass : 조건문은 있지만 실행할 문장이 없을 경우, 오류를 무시하기 위해서 if 문에 작성하여 조건문을 넘기는 기능


- 숫자에서 0 은 False이며  나머지 숫자는 True의 값을 갖는다.

 

2. while

- 조건이 True일 동안 무한히 반복한다.

- 조건에 대한 탈출문 꼭 적어야 한다.

- break : 탈출문을 안적었을 때 break를 사용해 강제로 종료한다.


- countinue : 조건에 해당하는 경우 그 값을 출력하지 않고 건너뛴다.

 

예제 풀어보기

문제

콘테스트 평가
7명의 심판들의 점수를 입력받아 리스트에 저장하고 최소값과 최대값을 리스트에서 제거하는 프로그램을 작성해보자
제거 전 [10.0, 9.0, 8.3, 7.1, 3.0, 9.0]
제거 후 [9.0, 8.3, 7.1, 9.0]

 

내가 적어본 코드

score = [10.0, 9.0, 8.3, 7.1, 3.0, 9.0]
print(score)
score.remove(min(score))
score.remove(max(score))
print(score)

 

코드실행 결과

정답은...!!

다음주에 공개 됩니다...!

728x90
반응형
728x90
반응형

들어가기 전  

 

PyCharm

PyCharm은 전문 개발자를 위한 전체 스택 Python 통합 개발 환경(IDE)이다. Python 개발, 전체 스택 웹 개발, 데이터 과학 등 모든 Python 워크플로우를 지원한다. 지능형 Python 및 R 코드 지원, Python 웹 개발 프레임워크, javaScript 및 TypeScript, HTML/CSS, 데이터베이스, Jupyter Notebook에 대한 광범위한 지원을 한다.

 

DataSpell

DataSpell은 탐색적 데이터 분석 및 머신 러닝 모델 프로토타이핑을 위해 특별히 설계된 IDE이다. Jupyter Notebook의 대화형 기능과 지능형 Python 및 R코딩 지원을 하나의 사용자 친화적인 환경에 결합했다.

지능적인 코딩 지원, 버전 관리 및 기타 IDE 관련 기능은 물론 데이터를 시각화하고 데이터에서 인사이트를 얻는 데 도움이 되는 테이블, 플록 및 위젯 같은 대화형 출력기능이 있다.

 

추천사이트

1. MDN

https://developer.mozilla.org/ko/

 

MDN Web Docs

The MDN Web Docs site provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and progressive web apps.

developer.mozilla.org

 

2. SDKMAN (Java 개발환경 관리 Tool)

JVM 기반 언어와 프레임워크를 쉽게 관리할 수 있게 해주는 도구. 이 도구를 사용하면, JDK, Groovy, Scala, Kotlin 등과 같은 JVM 기반의 언어와 Gradle, Maven 등의 빌드 도구를 손쉽게 설치하고 관리할 수 있도록 도와준다.

https://sdkman.io/

 

Home - SDKMAN! the Software Development Kit Manager

SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems.

sdkman.io

 

Settings에서 세부설정 바꾸기

1. Font 변경

2. 각 주석들의 폰트 색상 변경

3. 테마

 

플러그인 옵션 추천

1. CodeGlance3 (코드 미니맵을 생성해주는 플러그인)

2. Tabnine AI Code Compieton (코드 자동 완성) - 유료

 

Run Time Data Areas

자바 가상 머신의 메모리 모델

자바 기술 문서 : https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-2.html#jvms-2.5


Python

-Python에서는 들여쓰기Indent가 문법으로 여겨진다.

-파이썬은 세미콜론을 붙이지 않는다. 단, 세미콜론을 붙여도 문법 에러는 발생하지 않는다. 보통 한 줄에 여러 구문을 사용할 때 세미콜론으로 구분해준다.

-terminal 에서 pwd 검색 시 경로를, dir 검색 시 세부정보를 알려준다.

-실행 단축키 : Ctrl + Shift + F10

 

Jupyter Notebook

-단축키

ESC : 셀 선택 상태

M : Markdoum 모드로 변경

Y : Code 드로 변경

DD : 셀 삭제

Shift + Enter : 입력 셀 실행 후 아래 셀로 이동 (없으면 새로운 셀 추가)

Ctrl + Enter : 입력 셀 실행

Ctrl + Shift + Enter :  이전으로 돌아감

 

-상단 카테고리 변경 (Code/Markdown)

Code - 코드 작성

Markdown - 메모

Markdown 사용법

https://heropy.blog/2017/09/30/markdown/ 

 

MarkDown 사용법 총정리

마크다운(MarkDown)에 대해서 알고 계신가요?파일 확장자가 .md로 된 파일을 보셨나요?웹 개발을 하면서 아마 README.md라는 이름의 파일을 한 번은 보셨을텐데, ...

heropy.blog


Python

 

변수

#정의

- 데이터를 저장하고, 변하는 수
- 이름과 값으로 구성

# 변수는 왜 필요한가
- 데이터는 계속 변화하기 때문에, 데이터를 변수로 지정해 놓고 변수 값만 변경하면 된다.

# 변수 이름 규칙
- 영문자로 + 숫자 + underbar의 형식을 사용한다. ex) a, a1, a1_
- 공백이 있으면 안된다 
- 대소문자 구분한다
- 특수문자가 있으면 안된다

# 데이터의 종류
-숫자형 : 정수, 실수
-문자형 : 문자, 문자열
-복합형 : 클래스, 리스트, 딕셔너리

# print 함수
-기본 출력 장치로 결과를 출력
-print(변수 or 출력하고 싶은 결과물)

 

1. 숫자

- 숫자 형태로 이루어진 자료형

- 정수(int) : 1, 2, -1, 0

- 실수(float) : 1.11, -1.000, 10e5, 10e-5

 

1-1. 숫자 변수 예제

# 과일 가게의 총 매출
품목 :
    바나나 (1000원)
    사과 (500원)
    체리 (5000원)
    
고객  
손씨 : 사과 (2)
손씨 : 체리 (3)
김씨 : 사과 (4)
박씨 : 바나나 (1)
박씨 : 사과 (2)
박씨 : 체리 (1)

# 객단가(고객 1명당 평균 매출)를 구해보시오.
바나나 = 1000
사과 = 500 
체리 = 5000

손씨 = (사과 * 2) + (체리 * 3)
김씨 = 사과 * 4
박씨 = (바나나 * 1) + (사과 * 2) + (체리 * 1)
sum = 손씨 + 김씨 + 박씨
print('총 매출 : ', sum)
print('객 단가 : ', sum/3)

결과

총 매출 :  25000
객 단가 :  8333.333333333334

 

2. 문자

-문자 형태의 데이터

-" " 이용하거나 ' ' 로 감싸준다.

- 인덱싱

     >>슬라이싱 : 인덱스의 시작 ~ 끝(범위, 간격)을 지정하는 방법

- java에서 문자열 곱하기는 불가능했지만 파이썬에서는 가능하다

- 문자열 포맷 : 문자열 내에서 변수, 값 또는 표현식을 삽입하거나 형식을 지정하는 방법

 

2-1. 문자열 함수

- upper() : 대문자 바꾸기

- lower() : 소문자 바꾸기

- count() : 문자열 안의 특정 문자열 개수 반환

- join() : 특정 문자열을 기준으로 문자열을 삽입

- split() : 특정 문자열을 기준으로 문자열을 나눈다

- replace() : 특정 문자열을 지정 문자열로 반환

- strip() : 공백제고 (lstrip, rstrip)

- find() : 특정 문자열을 찾아준다

- input() : 기본 입력 장치로 부터 입력된 정보를 반환한다.변수 = input()의 형식으로 사용

 

3. 리스트

- 요소들의 모음을 나타내는 자료형

- 요소들은 []로 감싼다

- 모든 자료형을 담을 수 있다

- 리스트 연산

     >> + 연산자 : 순서대로 연결하여 하나의 리스트로 만든다
     >> * 연산자 : 곱하는 수 만큼 반복하여 하나의 리스트로 만든다

 

3-1. 리스트 함수

- len() : 리스트의 길이를 반환
- sum(), min(), max() 함수 : 리스트 요소의 총합, 최솟값, 최댓값 (문자의 경우도 코드가 있기 때문에 코드가 가장 작은 값, 큰 값 반환)
- in() : 특정 요소가 리스트에 있는지 확인하는 함수
- append() :  맨 마지막에 요소 추가
- extend() :  맨 마지막에 다른 리스트를 추가
- insert() : 특정 위치에 요소를 삽입한다
- remove(), pop() : 리스트의 요소를 삭제
- join() : 리스트의 요소들을 하나의 문자열로 합침
- split() : 문자열 리스트의 요소들로 나눈다

- range() : range(시작, 끝, 간격)을 리스트로 반환해준다.

 

4. 튜플

- 리스트와 같다
- 수정 불가능 (불변성)
- 리스트보다 빠르다
- []가 아닌 () 사용
- append, insert, extend, remove, pop, sort 사용할 수 없다
- 튜플은 항목 할당을 지원하지 않는다. 즉, 대입 연산자가 먹히지 않는다.

 

728x90
반응형

+ Recent posts