Python 기초 1

Lilmeow·2023년 3월 14일
0

Python Basic

목록 보기
1/7
post-thumbnail

Jupyter Notebook으로 Python의 기초를 공부한다

먼저 Jupyter의 자주 쓰이는 명령어를 정리한다

Command + Enter : Run selected Cell
A : Create Cell Above Selected Cell
B : Create Cell Below Selected Cell
X : Cut Cell Selected Cell
Z : Undo Cell Delection
H : Show Keyboard Shortcuts
Command + / : 주석처리

숫자 자료형 / 문자열 자료형

print(5)
# 5
print('5')
# 5
print("가나다")
# 가나다
print('가나다')
# 가나다
print('123'*3)
# 123123123

print(type(4.3 + 5)) # float > int
# <class 'float'>

Boolean 자료형

print(5 > 10)
# False
print(True)
# True
print(False)
# False
print(not True)
# False
print(not False)
# True
print(not (5 > 10))
# True

변수 / 주석

변수명 규칙
1. 영문과 숫자, _로 구성
2. 대소문자를 구분
3. 문자나, _로 시작
4. 특수문자 사용불가(!, @ 등)
5. 키워드 사용불가(if, for 등)

name = "이름"
age = 15
boolean = age > 10

# '+'는 문자열로 변환
print("my name is" + name)
# my name is 이름
print("I'm " + str(age) + " years old")
# I'm 15 years old
print(str(boolean))
# True

# ','는 띄어 쓰기
print("my name is", name)
# my name is 이름
print("I'm", age, "years old")
# I'm 15 years old
print(boolean)
# True

ASCII CODE

print(ord('A'), ord('Z'), ord('a'), ord('z'))
print(chr(65), chr(90), chr(97), chr(122))
print('%d' % ord('A'))
# 65 90 97 122
# A Z a z
# 65

연산자

# 값 교환
a, b = 10, 20
print(a, b)
a, b = b, a
print(a, b)
# 10 20
# 20 10

print(1 + 1)
print(3 - 2)
print(float(5 * 2))
print(int(6/3))
# 2
# 1
# 10.0
# 2

print(2 ** 3)
print(5 % 3)
print(11 // 3) # 몫
# 8
# 2
# 3

print(10 > 3)
print(4 >= 7)
print(5 <= 5)
print(3 == 2)
# True
# False
# True
# False

print(1 != 3)
print((3 > 0) and (3 + 5 == 8))
print((3 > 0) & (3 + 5 == 8))
print((3 > 0) or (3 + 5 != 8))
print((3 > 0) | (3 + 5 != 8))
# True
# True
# True
# True
# True

print(5 > 4 > 3)
print(5 > 4 > 7)
# True
# False

print(2 + 3 * 4)
print((2 + 3) * 4)
# 14
# 20
num = 3
num = num + 2
print(num)
# 5

num += 2
print(num)
# 7
num *= 2
print(num)
# 14
num /= 2
print(num)
# 7
num -= 2
print(num)
# 5
num %= 2
print(num)
# 1.0

숫자 처리 함수

print(abs(-5))
print(pow(4, 2))
print(max(5, 12, 14))
print(min(5, 12, 14))
print(round(3.5))
print(round(3.49))
# 5
# 16
# 14
# 12
# 4
# 3

from math import *
print(floor(4.99))
print(ceil(3.01))
print(sqrt(16))
# 4
# 4
# 4.0

랜덤 함수

from random import *
print(random())
print(random() * 10)
print(int(random() * 10)
print(int(random() * 10) + 1)
# 0.0 ~ 0.999..의 임의의 값 생성
# 0.0 ~ 9.999..의 임의의 값 생성
# 0 ~ 9의 임의의 정수 생성
# 1 ~ 10의 임의의 정수 생성

print(range(1, 3), type(range(1, 3)), list(range(1, 4)))
print(int(random() * 45) + 1, type(random()))
print(randrange(0, 100, 3), type(randrange(0, 100, 3)))
print(randint(1, 45))
# range(1, 3) <class 'range'> [1, 2, 3]
# (1 ~ 45의 임의의 정수 생성) <class 'float'>
# (0 ~ 99의 임의의 3의 배수 생성 : 0, 3, 6, ... , 99) <class 'int'>
# (1 ~ 45의 임의의 정수 생성)

문자열

sentence = 'abc'
print(sentence)
# abc
sentence = """

ab
cd
"""
print(sentence)
#

ab
cd

슬라이싱

s = "123456789abcd"
##	 012345678..12 index
##	 -13-12-11..-1 index

print(s[7])
print(type(s[7]))
# 8
# <class 'str'>

print(s[0:3]) # 0 ~ 2
print(s[:6]) # ~ 5
print(s[8:]) # 8 ~ 
# 123
# 123456
# 9abcd

print(s[-7:]) # -6 ~ # = s[6:]
print(s[:-7]) # ~ -6 # = s[:7]
# 789abcd
# 123456

print(s[::-1]) # -1 ~ -13
print(s[4:1:-1) # 4 ~ 2
print(s[:0:-1] # ~ 1
print(s[::2] # 0 ~ 12 by 2step
print(s[::-2] # -1 ~ -13 by 2step
# dcba987654321
# 543
# dcba98765432
# 13579bd
# db97531

문자열 처리 함수

s = "aBCdaBCd"

print(s.lower())
print(s.upper())
print(s[0].islower()) # 소문자인지 확인
print(s[0].isupper()) # 대문자인지 확인
print(s.isupper()) # 전부 대문자인지 확인
print(s.isalpha()) # 전부 알파벳인지 확인
print('abcd'.isalpha())
print('ab cd'.isalpha())
print(len(s))
print(s.replace("a", "z")
# abcdabcd
# ABCDABCD
# True
# False
# False
# True
# True
# False
# 8
# zBCdzBCd

index = s.index("B")
print(index)
# 1
index = s.index("B", index + 1) # index + 1 = 2, s[2]부터 "B"를 찾는다, 없으면 오류, 그리고 종료
print(index)
# 5

print(s.find("C")) # 없으면 -1 반환
print(s.count("d"))
# 2
# 2

문자열 포맷

print("%d" % 20)
print("%s" % "abc")
print("%c" % "A")
print("%s %s" % ('A', "B"))
# 20
# abc
# A
# A B

print("{}".format(20))
print("{} {}".format('A', 'B'))
print("{0} {1}".format('A', 'B'))
print("{1} {0}".format('A', 'B'))
# 20
# A B
# A B
# B A

print("{a} {b}".format(a = 20, b = 'abc'))
print("{a} {b}".format(b = 'abc', a = 20))
# 20 abc
# 20 abc

a = 20
b = 'abc'
print(f"{a} {b}")

탈출 문자

print("ab/ncd")
# ab
# cd

print("a'bc'd")
print('a"bc"d')
print("a\"bc\"d")
print('a\'bc\'d')
# a'bc'd
# a"bc"d
# a"bc"d
# a'bc'd

print("\\a\\b\\c\\")
# \a\b\c\
print("123 45678\rabcd") # (123 ) > (abcd)
# abcd45678
print("abcc\bd")
# abcd
print("abc\td")
# abc	d

리스트

s1 = [10, 20, 30]
s2 = ['abc', 'A', '123']
print(s1, s2)
# [10, 20, 30], ['abc', 'A', '123']

print(s2.index('abc'))
# 0

s2.append('DDD')
print(s2)
# ['abc', 'A', '123', 'DDD']

s2.insert(1, 'III') # s2[1]에 III삽입
print(s2)
# ['abc', 'III', 'A', '123', 'DDD']

print(s2.pop()) # 뒤부터 하나 제거 후 제거한 값을 반환
# DDD
print(s2)
# ['abc', 'III', 'A', '123']

print(s2.count('abc'))
# 1

s3 = [5, 4, 3, 2, 1]
s3.sort() # 오름차순 정렬
print(s3)
# [1, 2, 3, 4, 5]

s3.reverse() # 내림차순 정렬
print(s3)
# [5, 4, 3, 2, 1]

s4 = [1, 2, 3]
s4.clear() # 리스트 비우기
print(s4)
# []

mix = ['abc', 20, True]
print(mix)
# ['abc', 20, True]

s3.extend(mix) # s3 + mix
print(s3)
# [5, 4, 3, 2, 1, 'abc', 20, True]

2차원 리스트 생성과 접근

a = [0] * 10 # 1차원
print(a)
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
aa = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 2차원
print(aa)
# [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
aaa = [[[1, 2, 1], [3, 4, 3]], [[5, 6, 5], [7, 8, 7]]] # 3차원
print(aaa)
print(aaa[0][1][1])
# [[[1, 2, 1], [3, 4, 3]], [[5, 6, 5], [7, 8, 7]]]
# 4

a = [[0] * 3 for i in range(3)] # [0] * 3 = [0, 0, 0] / 3번 반복한 걸 리스트로 -> [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
print(a)
# [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
# 값 수정
a[1][2] = 12
a[1][0] = 10
a[2][0] = 20
# a = [[0, 0, 0], [10, 0, 12], [20, 0, 0]]
for i in a: # 0 : [0, 0, 0] / 1 : [10, 0, 12] / 2 : [20, 0, 0]
    for j in i: # i=0 -> j=0 (0), j=1 (0), j=2 (0) / i=1 -> j=0 (10), j=1 (0), j=2 (12) / i=2 -> j=0 (20), j=1 (0), j=2 (0)
        print(j, end = ' ') # j(가로) -> 띄어쓰기로 처리
    print() # 가로 작성 끝나면 다음 행으로 이동
# 0 0 0 
# 10 0 12 
# 20 0 0 

딕셔너리

dic = {3 : 'a'} # item : (3 : 'a') / key : (3) / value : ('a')
dic = {3 : 'a', 100 : 'b'}
print(dic[3], dic[100])
# a b

print(dic.get(5)) # key값에 해당하는 value를 반환한다, key가 없다면 None을 반환하고 다음문장을 실행
print('hi')
print(dic.get(3))
print(dic.get(5, 'aaa') # 5라는 key가 없다면 'aaa' 반환
# print(dic[5]) : 5라는 key가 없다면 오류 발생 후 실행 종료
# None
# hi
# a
# aaa

print(3 in dic)
print(5 in dic)
# True
# False

dic = {'aa' : 'abab', 'bb' : 'bababa'}
print(dic['aa'])
# abab

dic['cc'] = 'cccc' # item 추가
print(dic)
# {'aa' : 'abab', 'bb' : 'bababa', 'cc' : 'cccc'}

dic['aa'] = 'aaaa'
print(dic)
# {'aa' : 'aaaa', 'bb' : 'bababa', 'cc' : 'cccc'}

del dic['bb']
print(dic)
# {'aa' : 'aaaa', 'cc' : 'cccc'}

print(dic.keys())
print(dic.values())
print(dic.items())
print(dic.clear()) # None 반환
print(dic)
# dict_keys(['aa', 'cc'])
# dict_values(['aaaa', 'cccc'])
# dict_items([('aa', 'aaaa'), ('cc', 'cccc')])
# None
# {}

dic2 = {}
print(dic2)
# {}

튜플

t1 = ('a', 'b')
print(t1[0], t1[1])
# a b

(aaa, bbb, ccc) = ('abc', '123', 456)
print(aaa, bbb, ccc)
# abc 123 456

# enumerate(sequence) : (index, item)형태의 tuple을 반환
alist = [23, 12, 36, 53, 19]
for i in enumerate(alist): # '(index, value)' 형태의 튜플을 반환
    print(i)
# (0, 23)
# (1, 12)
# (2, 36)
# (3, 53)
# (4, 19)
    
for index, value in enumerate(alist):
    print(index, value)
# 0 23
# 1 12
# 2 36
# 3 53
# 4 19

집합

set1 = {1, 2, 3, 9, 3, 3, 4}
print(set1) # 중복값은 한번 출력, 오름차순, 영어나 한글은 애매함
# {1, 2, 3, 4, 9}

set2 = {'a', 'b', 'c'}
set3 = set(['a', 'd']) # 형 변환 : 리스트 > 집합

print(set2 & set3) # 교집합
print(set2.intersection(set3))
# {'a'}
# {'a'}
print(set2 | set3) # 합집합
print(set2.union(set3))
# {'d', 'b', 'a', 'c'}
# {'d', 'b', 'a', 'c'}
print(set2 - set3) # 차집합
print(set2.difference(set3))
# {'c', 'b'}
# ['c', 'b'}

set2.add('z') # 원소 추가
set2.remove('a') # 원소 제거
print(set2)
# {'b', 'z', 'c'}

자료구조의 변경

set1 = {'a', 'b', 'c'}
print(set1, type(set1))
# {'c', 'b', 'a'} <class 'set'>

set1 = list(set1)
print(set1, type(set1))
# ['c', 'b', 'a'] <class 'list'>

set1 = tuple(set1)
print(set1, type(set1))
# ('c', 'b', 'a') <class 'tuple'>

set1 = set(set1)
print(set1, type(set1))
# {'c', 'b', 'a'} <class 'set'>

0개의 댓글