techit aischool summary

김상민·2023년 1월 3일
0

aischool

목록 보기
4/9

식별자 n개, 데이터 n개 : tuple
tuple 데이터 타입은 여러개의 식별자로 받을수 있다.
튜플은 소괄호 생략 가능

data = 1, 2
print(type(data), data)
d1, d2 = data
print(d1, d2) 입력하세요

데이터 규모에 따른 스킬들

엑셀 : 사용 간편 : 데이터 100만개 : 만들어진 기능만 사용가능 : 속도 느림
파이썬 : 파이썬문법 : 데이터 RAM 용량만큼 : 기능을 만들어서 사용가능 : 속도 빠름
파이썬 : 가상메모리 : DASK
데이터베이스 : SQL문법 : 데이터 SSD(HDD) 용량만큼 : 속도 빠름
빅데이터 : 여러개의 컴퓨터를 1대의 컴퓨터처럼 사용 : SPARK : scala, python

연산자 : CPU를 사용하는 방법

산술 : +, - < *, /, //, % < ** : 데이터(int,str,list) + 데이터 = 데이터
할당 : 식별자 <산술>= 데이터
비교 : ==, !=, >, <, >=, <= : 데이터 + 데이터 = 논리값
논리 : not, and, or : 논리값 + 논리값 = 논리값
멤버 : 특정 데이터가 컬렉션 데이터에 포함되었는지 확인 : 결과 논리값 출력

논리연산자

논리값 + 논리값 = 논리값 : 논리값(데이터+데이터) + 논리값(데이터+데이터) = 논리값
비교연산자 : 조건1개, 논리연산자 : 조건2개이상
not, and(T: T and T = T), or(F: F or F = F)

우선순위 not > and > or

and 는 두개의 조건이 모두 True이여야 True
or 는 두개의 조건중 하나만 True이여도 True
not False, not (True and False), False or True, (10 > 5) or (10 > 15)

연산자 summary

산술 : +, - < *, /, //, % < ** : 데이터 + 데이터 = 데이터 : 데이터타입에 따라 다르게 연산수행
할당 : 식별자 <산술>= 데이터
비교 : ==, !=, >, <, >=, <= : 데이터 + 데이터 = 논리값 : 조건1개
논리 : not > and > or : 논리값 + 논리값 = 논리값 : 조건2개 이상
멤버 : in, not in : 컬렉션 데이터에서 특정 데이터가 있는 확인 : 결과 논리값

실수 할만한 코드 2

data1, data2 = 0.1, 0.2
(data1 + data2) == 0.3
False 결과값으로 나온다 이유는 컴퓨터 이진법에 있다. 이걸 정확하게보면 3.0000000004~~가 나온다 이진법으로 오류가 생길수 있다.

해결방법 1 : 반올림으로 해결 : round()

print(round(data1 + data2, 1))
round(data1 + data2, 1) == 0.3

0.3 True

해결방법 2 : 고정소수점 연산

from decimal import Decimal
print(float(Decimal(str(data1)) + Decimal(str(data2))))
float(Decimal(str(data1)) + Decimal(str(data2))) == 0.3

4. 조건문

특정 조건에 따라서 다른 코드를 실행
if, elif, else

조건문을 이용한 점수표 출력

# 점수를 입력받아 학점을 출력하는 코드 작성
# 90 >= A, 80 >= B, 70 >= C, 60 >= D, F

point = 87

if point >= 90:
   print('A')
elif point >= 80:
   print('B')
elif point >= 70:
   print('C')
elif point >= 60:
   print('D')
else:
   print('F')

조건문을 이용한 ATM

# 1. 계좌생성 : account : 10000
account = 10000
# 2. 입금, 출금 입력 : 입금(0), 출금(1) : command 변수에 저장
command = int(input('입금(0), 출금(1)을 입력하세요 : '))

# 3. 금액입력 : money 변수에 저장
money = int(input('금액을 입력하세요 : '))

# 4. 입금인 경우
if command == 0:

#   4-1. 입력받은 금액을 계좌에 추가
    account += money

# 5. 출금인 경우
else:

#   5-1. 잔액이 부족한 경우 : 'xx의 잔액이 부족합니다.' 출력
    if account < money:
        print(f'{money - account}의 잔액이 부족합니다.')

#   5-2. 잔액이 충분한 경우 : 'xx의 잔액이 출금되었습니다.' 출력
    else:
        account -= money
        print(f'{money}의 잔액이 출금되었습니다.')

# 6. 계좌 잔액 출력 : 'xx의 잔액이 남았습니다.' 출력
print(f'{account}의 잔액이 남았습니다.')

삼항연산자

  • 간단한 조건문을 한줄의 코드로 작성하는 방법이다. 코딩테스크할 때 유용하게 쓸것 같다.
balance, draw = 10000, 12000
if balance >= draw:
    print("인출가능")
else:
    print("인출불가")

이 코드를 삼항연사자로 활용해보자

balance, draw = 10000, 2000
result = "인출가능" if balance >= draw else "인출불가"
result

이렇게 바꿀 수있다. 확실히 줄어들었다. 파이썬은 인터프리티 언어라 연산시간이 줄어들었을 것 같다.

반복문

특정 코드를 반복적으로 실행 > 코드 유지보수 향상
while, for, break, continue, range(), enumerate(), zip()

# while
count = 3
while count > 0:
   print('python')
   count -= 1
for _ in range(3):
    print('jupyter')
# 30세 이상의 사용자 목록 출력
users = ['홍길동(32)', '김파이썬(27)', '정노트북(43)']
for user in users:
    # print(user, int(user[-3:-1]))
    if int(user[-3:-1]) >= 30:
        print(user)
# enumerate() : 반복문에서 리스트 데이터에 idx 숫자를 출력할때 사용
# user_id와 user를 출력 코드작성
users = ['홍길동(32)', '김파이썬(27)', '정노트북(43)']
idx = 0
for user in users:
    print(idx, user)
    idx += 1

위에서 설명한 enumerate()를 사용하면

이런식으로 나온다.

for문과 같이 활용해보면

이런식으로 결과값을 나타 낼 수 있다.

zip() : 같은 인덱스의 데이터끼리 튜플로 묶어서 리스트로 출력


※오늘의 평
강의를 듣다보면 강사님이 현업과 경험들을 짤막하게 말해주시는데 들으면 백엔드와 서버(리눅스)도 공부를 해야겠다는 생각이 든다. 아닌가...

  • 끝 이만 총총
profile
꾸준히 하고싶다

0개의 댓글