728x90
반응형
📂자료
📝chapter1.py
2+3
5-3
2*3
6/2
1/3
4//3
2//3
6//3
5%3
4%2
5%2
2**8
2**10
2**16
print(“Hello World!”) #에러
print("Hello","World!")
print()
print("Hello",end=' ');print("World!")
📝chapter2.py
print(type(12))
print(type("hello"))
a=12.3
print(type(a))
#문자열
print('나는 파이썬을 배웁니다.\n파이썬은 생각보다 훨씬 쉽습니다.')
print('Name: 문유정\tAge: 51')
print('긴 문장은 공간에 비해 너무 길어 쓰기가 힘듭니다. \
그래서 \\Enter키를 이용해 문장을 다음줄과 연속되도록 했습니다.')
print('''긴 문장은 공간에 비해 너무 길어 쓰기가 힘듭니다.
그래서 \\Enter키를 이용해 문장을 다음줄과 연속되도록 했습니다.''')
print('작은따옴표(\')와 큰 따옴표(")는 문자열을 정의할 때 사용합니다.')
print("작은따옴표(')와 큰 따옴표(\")는 문자열을 정의할 때 사용합니다.")
# indexing
li = [0, 1, 2, 3]
li[1]
li[3]
li[-1]
# Slicing
li[:]
li[:2]
li[:-1]
li[0:]
li[1:]
li[0:-1]
li[::-1]
#문자열의 길이
print(len("hello"))
print(len(10))
#숫자의 종류
print(type(12))
print(type(12.3))
print(type(12.0))
#연산자 우선순위
10+3*(5-2)
#변수 만들기
num = 12
strName = "Konan"
#복합 대입 연산자
num += 1
num -= 2
num *= 3
num /= 2
num %= 2
num **= 2
num //= 3
strName += "Boy"
strName *= 2
#사용자 입력
print(type(input("User Input : ")))
#문자열을 숫자로 바꾸기
int("7")
int("10.2")
float("20")
#숫자를 문자열로 바꾸기
str(12)
str(10.7)
num1 = 10.7
print("Value : "+num1)
print("Value : "+str(num1))
#문자열 지정(%s , %d , %f , %c , %%)
txt1 = 'JAVA';txt2='Python'
num1=2; num2=4
print('우리는 %s와 %s을 배웁니다.' %(txt1, txt2))
print('%s는 %s보다 %d배는 더 쉬운것 같습니다.' %(txt2, txt1, num1))
print('%d + %d = %d' %(num1, num2, num1+num2))
print('월급이 전년에 비해 %d%% 포인트 증가했다.' %num1)
#문자열의 format() 함수
strName = "Konan {} is {}"
strName.format("Animation","funny")
strName
"{:d}".format(8)
"{:5d}".format(8)
"{:05d}".format(8)
"{:+d}".format(8)
"{: d}".format(8)
"{:+5d}".format(8)
"{:=+5d}".format(8)
"{:+05d}".format(8)
"{:=+05d}".format(8)
"{1} || {0}".format(8, 4)
"{1:05d} || {0:05d}".format(8, 4)
"{}".format(15.176)
"{:f}".format(15.176)
"{:10.4f}".format(15.176)
"{:10.3f}".format(15.176)
"{:10.2f}".format(15.176)
"{:10f}".format(15.176)
"{:5f}".format(15.176)
"{:g}".format(15.176)
"{:10g}".format(15.176)
"{:10.2g}".format(15.176)
"{:10.3g}".format(15.176)
"{:10.4g}".format(15.176)
"{:10.5g}".format(15.176)
#2,8,16진수 <-> 10진수
h1 = hex(97) # h1은 문자열 ‘0x61’
h2 = hex(98) # h2는 문자열 ‘0x62’
print(h1+h2) # ‘0x610x62’ 가 출력됨
a = int(h1, 16)
b = int(h2, 16)
print(a + b) # 10진수 195가 됨
print(hex(a + b)) # ‘0xc3’ 가 출력됨
b1 = bin(97) # b1은 문자열 ‘0b11000001’
b2 = bin(98) # b2는 문자열 ‘0b11000010’
print(b1+b2) # ‘0b110000010b11000010’가 출력됨
a = int(b1, 2)
b = int(b2, 2)
print(a+b)
print(bin(a+b)) # ‘0b11000011’ 이 출력됨
bnum = 0b11111100; bstr = '0b11111100'
onum = 0o241; ostr = '0o241'
hnum = 0xf2; hstr = '0xf2'
b1 = int(bnum)
b2 = int(bstr, 2) # b2 = int(bstr, 0)
o1 = int(onum)
o2 = int(ostr, 8) # o2 = int(ostr, 0)
h1 = int(hnum)
h2 = int(hstr, 16) # h2 = int(hstr, 0)
print(b1)
print(b2)
print(o1)
print(o2)
print(h1)
print(h2)
#대소문자 바꾸기
"Hello Python".upper()
"Hello Python".lower()
#문자열 양옆의 공백 제거하기
" Hello Python ".strip()
" Hello Python ".lstrip()
" Hello Python ".rstrip()
#문자열의 구성 파악하기
"HelloPython".isalnum()
"HelloPython1".isalnum()
"Hello Python1".isalnum()
"Hello Python".isalpha()
"HelloPython1".isalpha()
"HelloPython1".isdecimal()
"123".isdecimal()
"123".isdigit()
"123.4".isdecimal()
"123.4".isdigit()
"123.4".isalnum()
"Hello Python".lower().islower()
"HelloPython".count("o")
"HelloPython".replace('o', 'a')
#문자열 찾기
"Hello Python".find("o")
"Hello Python".rfind("o")
#문자열과 in 연산자
"o" in "Hello Python"
"llo" in "Hello Python"
"ol" in "Hello Python"
#문자열 자르기
"Hello Python".split(" ")
"Hello Python".split(" ")
📝chapter3.py
# 날짜/시간 활용하기
import datetime
datetime.datetime.now() # datatime 폴더 안의 datatime 클래스의 now함수 사용하
import datetime as dt
dt.datetime.now()
dt. + TAB
dt._ + TAB
dt.__all__
dt.datetime. + TAB
dt.datetime.__dict__
from datetime import datetime # dataetime 폴더
start = datetime.now()
import time
time.sleep()
print('1 ~ 백만')
ret = 0
for i in range(1000000):
ret += i
print('1 ~ 백만 SUM : %d' %ret)
end = datetime.now()
elapsed = end - start
print('Total Time : ', end='')
print(elapsed)
elapsed_ms = int(elapsed.total_seconds()*1000)
print('Total Time : %dms' %elapsed_ms)
# False로 변환되는 값
if 0:
print("True")
else:
print("False")
📝chapter4.py
◾ 중복이 사라진 리스트를 만들기 위해서는 set()으로 감싸고, list()로 만든다.
# indexing
li = [0, 1, "Hell0", 3]
li[1]
li[3]
li[-1]
li[2]
li[2][1]
li[2][2:4]
li[2][2:4]+" !!"
li[2][2:4]*2
li[3]*4
# Slicing
li[:]
li[:2]
li[:-1]
li[0:]
li[1:]
li[0:-1]
#리스트에 요소 추가하기
li.append(4)
li.append("STATE")
li.insert(1,5)
li.insert(-1,"END")
a = [1,2,3]
b = [4,5,6]
a+b
a.extend(b)
a
#리스트에 요소 제거하기
del a[1]
del a
b.pop()
b.pop(0)
b = [4,5,6,7,5]
b.remove(5)
b.clear()
#리스트 내부에 있는지 확인하기
b = [4,5,6,7,5, "Sample01"]
5 in b
"Sample01" in b
"01" in b
"Sample01" not in b
"01" not in b
b.index(5)
b.index("Sample01")
# for 반복문
for idx in range(8):
print(idx)
#for 반복문: 리스트와 함께 사용하기
li = [1,3,5]
for idx in li:
print(idx)
#딕셔너리 선언하기
dict_user = {
"name":"홍길동",
"age": 15,
"item": ["dagger","sword","arrow"],
"follower":[{"name":"Robin"},
{"name":"임꺽정"},
{"name":"문유정"}]
}
#딕셔너리의 요소에 접근하기
dict_user["follower"]
#딕셔너리에 값 추가하기/제거하기
dict_user["follow"] = "NewOne"
dict_user["age"] = 19
dict_user
del dict_user["follow"]
del dict_user
dict_user
#딕셔너리 내부에 키가 있는지 확인하기
dict_user = {
"name":"홍길동",
"age": 15,
"item": ["dagger","sword","arrow"],
"follower":[{"name":"Robin"},
{"name":"임꺽정"},
{"name":"문유정"}]
}
"age" in dict_user
"follow" in dict_user
dict_user["follow"]
followVal = dict_user.get("follow")
followVal
print(type(followVal))
#딕셔너리의 크기 : 키 갯수
print(len(dict_user))
print(len(dict_user.keys()))
#for 반복문: 딕셔너리와 함께 사용하기
for keyVal in dict_user:
print(keyVal,dict_user[keyVal])
print("Key : {} ==> Value : {}".format(keyVal,dict_user[keyVal]))
#범위
range(10)
range(5,10)
range(2,10,2)
#for 반복문: 범위와 함께 사용하기
for i in range(10):
print(i)
#for 반복문: 리스트와 범위 조합하기
li = [0,1,2,3,4]
for i in range(len(li)):
print(li[i])
#for 반복문: 반대로 반복하기
li = range(4, 0-1, -1)
for i in range(len(li)):
print(li[i])
li = [0,1,2,3,4]
for i in reversed(li):
print(li[i])
li = [0,1,2,3,4]
for i in li[::-1]:
print(li[i])
li = list(range(4, 0-1, -1))
li = [0,1,2,3,4]
li.reverse()
idx = 0
for i in li:
print(li[idx])
idx += 1
#리스트에 적용할 수 있는 기본 함수
li = [13, 25, 77, 3, 66, 99, 11]
min(li)
max(li)
sum(li)
li2 = sorted(li) # 오름차순
li
li3 = sorted(li,reverse=True) # 내림차순
li
li.sort() # 오름차순
li
li.sort(reverse=True) # 내림차순
li
#reversed() 함수로 리스트 뒤집기
reversed(li) #iterator
for el in reversed(li):
print(el)
#enumerate() 함수와 반복문 조합하기
li = [13, 25, 77, 3, 66, 99, 11]
for i,val in enumerate(li):
print(i,val)
#딕셔너리의 items()
dict_user = {
"name":"홍길동",
"age": 15,
"item": ["dagger","sword","arrow"],
"follower":[{"name":"Robin"},
{"name":"임꺽정"},
{"name":"문유정"}]
}
dict_user.items()
dict_user.keys()
dict_user.values()
#리스트 내포(list comprehensions)
li = [i*2 for i in range(6)]
li1 = [i*2 for i in range(10) if i<8]
dict_user.keys() # 키 가져오기
dict_user.values() # 값 가져오기
📝chapter5.py
# 함수에 매개변수 만들기
def print_n_times(value, n):
for i in range(n):
print(value)
print_n_times("안녕하세요", 5)
print_n_times("안녕하세요")
print_n_times("안녕하세요", 5, 10)
# 가변 매개변수
def print_n_times(n, *values):
# n번 반복합니다.
for i in range(n):
# values는 리스트처럼 활용합니다.
for value in values:
print(value)
# 단순한 줄바꿈
print()
print_n_times(3, "안녕하세요", "즐거운", "파이썬 프로그래밍")
print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", 3)
# 기본 매개변수
def print_n_times(value, n=2):
# n번 반복합니다.
for i in range(n):
print(value)
print_n_times("안녕하세요")
print_n_times("안녕하세요", 3)
# 키워드 매개변수
def print_n_times(*values, n=2): # 기본 매개변수
# n번 반복합니다.
for i in range(n):
# values는 리스트처럼 활용합니다.
for value in values:
print(value)
# 단순한 줄바꿈
print()
print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", n=3) # 키워드 매개변수
# 리턴
def return_test():
print("A 위치입니다.")
return # 리턴합니다.
print("B 위치입니다.")
return_test()
# None
def return_test():
return
value = return_test()
print(value)
# 기본 피보나치
def fibonacci(n):
if n == 1:
return 1
if n == 2:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
print("fibonacci(1):", fibonacci(1))
print("fibonacci(2):", fibonacci(2))
print("fibonacci(3):", fibonacci(3))
print("fibonacci(4):", fibonacci(4))
print("fibonacci(5):", fibonacci(5))
# global
counter = 0
def fibonacci(n):
# 어떤 피보나치 수를 구하는지 출력합니다.
print("fibonacci({})를 구합니다.".format(n))
global counter
counter += 1
# 피보나치 수를 구합니다.
if n == 1:
return 1
if n == 2:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
fibonacci(10)
print("---")
print("fibonacci(10) 계산에 활용된 덧셈 횟수는 {}번입니다.".format(counter))
# 메모화
dictionary = {
1: 1,
2: 1
}
def fibonacci(n):
if n in dictionary:
# 메모가 되어 있으면 메모된 값을 리턴
return dictionary[n]
else:
# 메모가 되어 있지 않으면 값을 구함
output = fibonacci(n - 1) + fibonacci(n - 2)
dictionary[n] = output
return output
print("fibonacci(10):", fibonacci(10))
print("fibonacci(20):", fibonacci(20))
print("fibonacci(30):", fibonacci(30))
print("fibonacci(40):", fibonacci(40))
print("fibonacci(50):", fibonacci(50))
# 조기 리턴
dictionary = {
1: 1,
2: 1
}
def fibonacci(n):
if n in dictionary:
# 메모가 되어 있으면 메모된 값을 리턴
return dictionary[n]
# 메모가 되어 있지 않으면 값을 구함
output = fibonacci(n - 1) + fibonacci(n - 2)
dictionary[n] = output
return output
print("fibonacci(10):", fibonacci(10))
print("fibonacci(20):", fibonacci(20))
print("fibonacci(30):", fibonacci(30))
print("fibonacci(40):", fibonacci(40))
print("fibonacci(50):", fibonacci(50))
# 평탄화
def flatten(data):
output = []
for item in data:
if type(item) == list:
output += flatten(item)
else:
output.append(item)
return output
example = [[1, 2, 3], [4, [5, 6]], 7, [8, 9]]
print("원본: ", example)
print("변환: ", flatten(example))
# 튜플
[a, b] = [10, 20]
(c, d) = (10, 20)
tuple_test = 10, 20, 30, 40 # 괄호가 없는 튜플
type(tuple_test)
a, b, c = 10, 20, 30 # 괄호가 없는 튜플
a, b = 10, 20
a, b = b, a # 값을 교환
def test():
return (10, 20)
a, b = test() # 여러 개의 값을 리턴
# 함수 매개변수
def call_10_times(func):
for i in range(10):
func()
def print_hello():
print("안녕하세요")
call_10_times(print_hello)
# map(함수명, 리스트)
def power(item):
return item * item
#power = lambda x: x * x #람다
list_input_a = [1, 2, 3, 4, 5]
output_a = map(power, list_input_a)
#output_a = map(lambda x: x * x, list_input_a)
# filter(함수명, 리스트)
def under_3(item):
return item < 3
#under_3 = lambda x: x < 3 #람다
list_input_a = [1, 2, 3, 4, 5]
output_b = filter(under_3, list_input_a)
#output_b = filter(lambda x: x < 3, list_input_a)
# 파일 처리
file = open("basic.txt", "w")
file.write("Hello Python Programming...!")
file.close()
with open("basic.txt", "w") as file:
file.write("Hello Python Programming...!")
with open("basic.txt", "r") as file:
contents = file.read()
print(contents)
#######
import random
hanguls = list("가나다라마바사아자차카타파하")
with open("info.txt", "w") as file:
for i in range(1000):
name = random.choice(hanguls) + random.choice(hanguls)
weight = random.randrange(40, 100)
height = random.randrange(140, 200)
file.write("{}, {}, {}\n".format(name, weight, height))
################
with open("info.txt", "r") as file:
for line in file:
(name, weight, height) = line.strip().split(", ")
if (not name) or (not weight) or (not height):
continue
bmi = int(weight) / ((int(height) / 100) **2)
result = ""
if 25 <= bmi:
result = "과체중"
elif 18.5 <= bmi:
result = "정상 체중"
else:
result = "저체중"
print('\n'.join([
"이름: {}",
"몸무게: {}",
"키: {}",
"BMI: {}",
"결과: {}"
]).format(name, weight, height, bmi, result))
print()
############
# 제너레이터
def test():
print("A 지점 통과")
yield 1
print("B 지점 통과")
yield 2
print("C 지점 통과")
output = test()
print("D 지점 통과")
a = next(output)
print(a)
print("E 지점 통과")
b = next(output)
print(b)
print("F 지점 통과")
c = next(output)
print(c)
next(output)
# key 키워드 매개변수
books = [{
"제목": "혼자 공부하는 파이썬",
"가격": 18000
}, {
"제목": "혼자 공부하는 머신러닝 + 딥러닝",
"가격": 26000
}, {
"제목": "혼자 공부하는 자바스크립트",
"가격": 24000
}]
def 가격추출함수(book):
return book["가격"]
print("# 가장 저렴한 책")
print(min(books, key=가격추출함수))
print(min(books, key=lambda book: book["가격"]))
print()
print("# 가장 비싼 책")
print(max(books, key=가격추출함수))
print(max(books, key=lambda book: book["가격"]))
print("# 가격 오름차순 정렬")
books.sort(key=lambda book: book["가격"])
for book in books:
print(book)
# 메모리(스택,힙)
a = 10
def 함수(b):
b = 20
print(a)
함수(a)
print(a)
c = [1,2,3]
def 함수(d):
d.append(4)
print(c)
함수(c)
print(c)
e = [1,2,3]
def 함수(f):
f = [4,5,6]
print(e)
함수(e)
print(e)
a = 10
def 함수():
print(a)
a = 20
함수()
a = [1,2,3]
def 함수():
print(a)
a.append(4)
함수()
a = [1,2,3]
def 함수():
print(a)
a = [4,5,6]
함수()
📝chapter6.py
🔸숫자 추가 예외처리
◾ 에러가 발생하면 append하지 않고 pass한다.
◾ 숫자만 추가하고, "스파이" 문자열은 추가되지 않는다.
# try except 구문
try:
# 숫자로 변환합니다.
number_input_a = int(input("정수 입력> "))
# 출력합니다.
print("원의 반지름:", number_input_a)
print("원의 둘레:", 2 * 3.14 * number_input_a)
print("원의 넓이:", 3.14 * number_input_a * number_input_a)
except:
print("무언가 잘못되었습니다.")
# try except pass 구문
list_input_a = ["52", "273", "32", "스파이", "103"]
list_number = []
for item in list_input_a:
try:
float(item) # 예외가 발생하면 알아서 다음으로 진행은 안 되겠지?
list_number.append(item) # 예외 없이 통과했으면 리스트에 넣어줘!
except:
pass
print("{} 내부에 있는 숫자는".format(list_input_a))
print("{}입니다.".format(list_number))
# try except else 구문
try:
number_input_a = int(input("정수 입력> "))
except:
print("정수를 입력하지 않았습니다.")
else:
print("원의 반지름:", number_input_a)
print("원의 둘레:", 2 * 3.14 * number_input_a)
print("원의 넓이:", 3.14 * number_input_a * number_input_a)
# finally 구문 1
try:
number_input_a = int(input("정수 입력> "))
print("원의 반지름:", number_input_a)
print("원의 둘레:", 2 * 3.14 * number_input_a)
print("원의 넓이:", 3.14 * number_input_a * number_input_a)
except:
print("정수를 입력하지 않았습니다.")
else:
print("예외가 발생하지 않았습니다.")
finally:
print("일단 프로그램이 어떻게든 끝났습니다.")
# finally 구문 2
def test():
print("test() 함수의 첫 줄입니다.")
try:
print("try 구문이 실행되었습니다.")
return
print("try 구문의 return 키워드 뒤입니다.")
except:
print("except 구문이 실행되었습니다.")
else:
print("else 구문이 실행되었습니다.")
finally:
print("finally 구문이 실행되었습니다.")
print("test() 함수의 마지막 줄입니다.")
test()
# finally 구문 3
print("프로그램이 시작되었습니다.")
while True:
try:
print("try 구문이 실행되었습니다.")
break
print("try 구문의 break 키워드 뒤입니다.")
except:
print("except 구문이 실행되었습니다.")
finally:
print("finally 구문이 실행되었습니다.")
print("while 반복문의 마지막 줄입니다.")
print("프로그램이 종료되었습니다.")
# 예외 객체 1
try:
file = open("info.txt", "w")
예외.발생해라()
file.close()
except Exception as e:
print(e)
print("# 파일이 제대로 닫혔는지 확인하기")
print("file.closed:", file.closed)
# 예외 객체 2
try:
file = open("info.txt", "w")
예외.발생해라()
except Exception as e:
print(e)
finally:
file.close()
print("# 파일이 제대로 닫혔는지 확인하기")
print("file.closed:", file.closed)
# 예외 객체 3
try:
file = open("info.txt", "w")
예외.발생해라()
except Exception as e:
print(e)
file.close()
print("# 파일이 제대로 닫혔는지 확인하기")
print("file.closed:", file.closed)
# 예외 구분하기
list_number = [52, 273, 32, 72, 100]
try:
number_input = int(input("정수 입력> "))
print("{}번째 요소: {}".format(number_input, list_number[number_input]))
except ValueError as exception:
print("정수를 입력해 주세요!")
print("exception:", exception)
except IndexError as exception:
print("리스트의 인덱스를 벗어났어요!")
print("exception:", exception)
# 모든 예외 잡기
list_number = [52, 273, 32, 72, 100]
try:
number_input = int(input("정수 입력> "))
print("{}번째 요소: {}".format(number_input, list_number[number_input]))
예외.발생해주세요()
except ValueError as exception:
print("정수를 입력해 주세요!")
print(type(exception), exception)
except IndexError as exception:
print("리스트의 인덱스를 벗어났어요!")
print(type(exception), exception)
except Exception as exception:
print("미리 파악하지 못한 예외가 발생했습니다.")
print(type(exception), exception)
728x90
반응형
'HW > Raspberry Pi | Arduino' 카테고리의 다른 글
라즈베리파이 - 실습 (0) | 2022.08.17 |
---|---|
라즈베리파이 - 삼바 구축, 공유폴더 생성, 원격 접속 서비스(RDP) 설치 (0) | 2022.08.17 |
라즈베리파이 - 라즈비안 설정(raspi-config) (0) | 2022.08.17 |
라즈베리파이 - SSH 클라이언트 사용하여 라즈베리파이에 접속 (0) | 2022.08.16 |
라즈베리파이 - 설치 (0) | 2022.08.16 |
댓글