Notice
Recent Posts
Recent Comments
Link
«   2026/07   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

비전공자 개발자 도전기

빅데이터 ai알고리즘 수업자료 3일차 필기 및 코드 (함수와변수) 본문

빅데이터 분석기반 AI알고리즘 개발과정

빅데이터 ai알고리즘 수업자료 3일차 필기 및 코드 (함수와변수)

Jun-de 2023. 3. 19. 13:27
 
파이썬 로보틱스(acorn+PACKT 시리즈)
더 이상 우리의 일상에서 로봇이 없는 삶을 생각할 수 없다. 로봇을 만드는 일은 하드웨어 부분이건 소프트웨어 부분이건 생각만큼 단순하지 않다. 하지만 파이썬을 활용하면 다양한 기능을 제공하는 로봇을 비교적 쉽게 만들 수 있다. 이 책은 파이썬, 로봇 OS(ROS), OpenCV 등을 활용해서 시각 알고리즘으로 주변을 인식하고, 자율적으로 주행하면서 사용자와 음성으로 대화할 수 있는 인공지능 로봇을 만드는 과정을 보여주는 소개서다. 하드웨어 설계, 시뮬레이션, 부품 선택 및 펌웨어 코딩, 주행에 필요한 기본적인 물리 지식, 로봇 운영체제 활용, 음성 인식과 합성을 통한 사용자 상호작용, OpenCV를 활용한 영상 처리 등에 대해 배우면서 로봇 제작 기초를 단단하게 다질 수 있을 것이다.
저자
렌틴 조셉
출판
에이콘출판
출판일
2016.05.20

 

필기 

 

-개발툴 

visual studio code->정말 기초적인 툴

pycharm-> 파이썬 기본 문법 및 머신러닝

나머지 툴은 시각화부터 사용
miniconda ->로컬에서 돌아가는 가상환경 (코렙과 비슷)
jupyter notebook

코렙(장점 gpu가 없을 때 구글의 gpu를 사용)
gpu->딥러닝할 때 필요


위키독스(e북 전자책들)

- 코딩테스트등 딥러닝 활용 
-꽤 쓸만한 것들도 있다.

Anaconda

coda env list 

conda create -n test (가상환경을 만든다)

conda activate test(열고 싶을 때)

conda deactivate(없애고싶을떄)

conda install jupyter 설치

jupyter notebook->쥬피터 노트 활성화

주피터 파일경로 설정

경로 파일에서 제목옆을 클릭하고 

컨트롤+c 하고 

우클릭은 누른 후 

cd+저장된 경로 파일 작업이 진행된다

주피터 사이트에서
new 누르고 새로 만들어야 작업이 진행된다 

주피터 폴더는 .py(설정이 되어 있다면 실행이 불가능하다 새로 생성을 해야 한다)

py.(파이썬, 비주얼스튜디오)
ipynb(주피터 노트 이름코드)

 

-프로그래밍 (함수와변수) 필기

 

 

프로그래밍은 무조건 함수,변수로 이루어진다.
화면에 출력하는 명령어는 print이고 () 안에는 출력하고 싶은 데이터를 넣는다.
문자열은,,, 문자들의 집합이고 ""로 둘러싼다
print("Hello" , "World!")

다음코드를 완성해서 "Hello. World!"와 "12345x7890" 이 각 줄에 출력되게 만드세요
ctrl + ? (주석추가 명령어)
세미콜론
-파이썬은 세미콜론을 붙이지 않음 #파이썬은 ', "" 구분하지 않음
print('Hello, World') -> 하나의 명령어
-보통 한 줄에 여러 구문을 사용할 때 세미콜론으로 구분해 줌
print("12345X7890") print("Hello" , "World!") # 문자열

주석
-코드 맨앞에 #을 사용하면 해당 줄은 주석이 됨.
더하기
a = 1+2
print('Hello, World!')
코드뒤에 주석을 작성할 수도 있음
a = 1+2 #더하기
들여 쓰기
파이썬은 들여 쓰기가 자체가 문법임
들여 쓰기 방법 탭(tab) 사용하기
== (같다)
a = 10 if a == 10: print('10입니다')

코드 블록 특정한 동작을 위해서 코드가 모여 있는 상태
파이썬은 들여쓰기를 기준으로 코드 블록을 구성
정수 계산하기
정수 (-1-2....)
덧셈
3.5+2.1

5.6
뺼셈과 곱셈
4.3-2.7

1.5999999999996
나눗셈
5/2

2.5
파이썬 3은 정수끼리 나눗셈을 해도 실수가 나옴
실수 계산하기
4.2+5#(연산자)

표현 범위가 넓은 쪽으로 계산됨(실수+정수)
피연산자의 범위가 안 맞으면 알아서 맞춰줌.
오버플로우(범위보다 크면 다른 값이 나옴) 언더플로우(범위보다 작으면 다른 값이 나옴)
연습문제 #print 명령어를 쓰면 된다
print(225+0.6*102);print(10+20)

225+0.6*102, 10+20

변수 규칙 (변하는수)(이름을 가지게 하는 수)
영문 문자와 숫자를 사용할 수 있다
대소문자를 구분한다
문자부터 시작해야 하며 숫자부터 시작하면 안 된다
_(밑줄 문자)로 시작할 수 있다
특수문자(+,-,*,/,$,@,&,%등)는 사용할 수 없다
(중요) 파이썬의 키워드(if, for, while, and, or 등)는 사용할 수 없다.(예약어)
print("hello world") #TypeError: 'str' object is not callable (호출할 수 없다)

print(함수)
print = '프린트'(절대하면안됨) #(변수명을 재할당)(기능을 바꿔서)
변수 만들기
빈 변수 만들기
None 할당
x = None
print(x)
대입 연산자
x =10 print(x)

x = 20 print(x)

x = 30 + 40 print(x)

x, y, z = 10,20,30

x = y = z = 10

파이썬은 변수에 다른 변수 할당할 수 있다(파이썬의 장점)
값뿐만 아니라 다른 변수도 할당할 수있음
del 변수
(변수 삭제하기) (많이쓰지않는다) (자원을 반납한다) (메모리를 확보)
연습문제 변수만들기
a = b = 10 c, d = 20, None

print(a) print(b) print(c) print(d)

문자열을 변수에 저장하기
hello1 = 'Hello, world' print(hello1)

hello = '''Hello, world! 안녕하세요 python입니다.'''

print(hello)

문자열의 길이 구하기
len 함수
공백까지 포함하여 계산함
문자열을 묶은 따옴표는 제외
hello ='안녕하세요' len(hello)

문자열을 연결하고 반복하기
(예시) 문자열1 +문자열 2
hello = 'Hello' world = 'world' hello + world

문자열 * 정수
hello * 3

예시
print(1+2) print("-"*30) print(10+20)

-> 30
문자열을 연결하고 반복하기
문자열에 숫자를 더하는 방법
문자열 + str(정수)
문자열 + str(실수)
예시
s = 'hello, python' print("s의 길이는 13입니다")

문자열 입력받기
input 함수
변수 = input()
변수 = input(문자열)
예시
data1 = print ("값을 출력하세요 : ") data2 = input ("값을 입력하세요 : ") print(data1) print(data2)

data + str(10)

숫자 입력받기
각각의 문자열을 합쳐서 만든다.
a = input ('첫 번째 숫자를 입력하세요:') b = input ('두 번째 숫자를 입력하세요:')

print(a + b)

정수 입력받기
문자열 상태가 아닌 숫자로 변화해주어야 함
변수 = int(input())
a = int(input('첫 번쨰번째 숫자를 입력하세요:')) b = int(input('두 번째 숫자를 입력하세요:'))

print(a + b)

 

 

 

 

 

 

#int와 변수


a, b = input('숫자 두 개를 입력하세요: ').split()
a = int(a)
b = int(b)

print(a + b)



"1234"[0]:"1234" [1]

number = input("숫자를 입력하세요 : ") #12345
# code..

print(number) #54321

print (number[4]+number[3]+number[2]+number[1]+number[0])


a, b = map(int, input('숫자 두 개를 입력하세요: ').split())
print(a + b)

a, b, c = map(str,["111","222","333"])
print(a+b+c)

a, b = map(int,input('숫자 두 개를 입력하세요: ').split(','))
print(a+b)

a, b, c = map(int,input('숫자를 세 개를 입력하세요: ').split() )

print(a + b + c)

#sep 예시

print(1, 2, 3, sep=', ')

print(4, 5, 6, sep=', ')


#중간 점검
변수

만드는규칙

빈 변수 만들기(None)

여러개 한번에 할당

문자 <-> 숫자 (정수, 실수)

입력 받기

문자열 같이 구하기

문자열 분리하기

분리된 문자열에 특정함수 일괄 적용하기 map

출력에 옵션정하기

변수 swap

문자열 연결 + , 반복 * (문자열 연산)

응용문제

타인의 BMI를 구해봅시다
BMI (kg/m2)를 구하는 방법은 (몸무게) / (키)2 로서, 단위에서 알 수 있듯이 몸무게는 kg, 키는 m이다
키와 몸무게를 입력받아서 구해봅시다.


#문제

kg, cm = map(int,input('몸무게와 키를 입력하세요: ').split())

BMI = kg / (cm/100**2)

print(f"당신의 BMI는{BMI}")

#단나누기

특수기호 /n,/t 단을나누거나

줄바꿈 활용하기

print를 여러 번 사용해서 print(1,2,3,)처럼 한 줄에 여러 값을 출력할 수는 없을까?


print(1, end='')
print(2, end='')

print("avc\ndef")

#print(value, ... sep=' ',) #디폴드 밸류
print('a','b','c',sep='111', end='213')
print('a','b','c',sep='')

#날짜 계산하기

yeat = 2000
month = 10
day = 27
hour = 11
minute = 43
second = 59

print(f'yeat,month,day', sep=' / ', end= " ")
print(f'hour,minute,second', end=":")

#산술 연산자 사용하기 -기본 산술 연산자 -덧셈, 곱셈, 뺼셈 -나눗셈

print("a","b","c",sep="ii", end="여기까지")

print("100동101호의 관리비는 210000원 입니다.")
print("100동102호의 관리비는 110000원 입니다.")
print("200동301호의 관리비는 210000원 입니다.")

dong,ho,price = 100,101,210000

print(dong,"동 ",ho, "호의 관리비는 ",price, "원 입니다.", sep="")

print(f"{dong}동 {ho}호의 관리비는 {price}원 입니다")

print(f"{3.14657:.2f}")

#정수와 실수

# 5나누기 2의 정수느 000이고 실수는 000입니다.
5 // 2


#사용자로부터 2개의 숫자를 입력받게 해서 두 숫자를 나눈결과를
#정수와 실수로 구분해서 출력할것
number1,number2 = map(int. input("두개의 정수를 공백을 기준으로 입력").split())
reult1 = number1 / number2
result2 = number1 // number2

print("정수:".result2)
print("실수",result1 - result2)


data = 12.56634
# 반올림 없이 소수점 둘쨰자리까지 구해서 새로운 변수에 할당
#print(f"{data:.2f}")
newData = f"{data:.2f}"
print(newData)


# 반올림 미적용
data = 12.56634
int(data*100)/100

# 반올림 적용
data = 12.56634
int(data*100+0.5)/100
# 12.57

# // ->몫
# %  ->나머지

 

 

- 후기

 

파이썬 함수와 변수를 배워보앗다. 

 

수학이 많이 부족해서 그런지 수업도중 이해 안 되는 부분이 잇었지만

옆에 잇는 동료로 인해 도움을 많이 받았다.

이러한 커뮤니케이션은 중요하다고 생각한다

하지만 계속 의존하지 말고 최대한 나 스스로 노력을 해봐야 된다고 생각한다.