*python
1-1-1. 리스트
aa = [30, 10, 20]
print("현재의 리스트 : %s" % aa)
# %d는 decimal , %s는 string을 의미
aa.append(40) // append : 요소추가
print("append 후의 리스트 : %s" % aa)
aa.pop() // pop : 리스트의 제일 마지막요소(방금집어넣은 것) 제거
print("pop 후의 리스트 : %s" % aa)
aa.sort() // sort : 요소 값들을 오름차순으로 정렬
print("sort 후의 리스트 : %s" % aa)
aa.reverse() // reverse : 요소 값들을 역순으로 정렬(내림차순)
print("reverse 후의 리스트 : %s" % aa)
aa.insert(2, 222) // insert : aa 리스트의 세 번째 위치에 222값을 추가
print("insert(2, 222) 후의 리스트 : %s" % aa)
print("20값의 위치 : %d" % aa.index(20)) // index : 20의 위치를 찾기
aa.remove(222) // remove : 요소 값 222을 제거
print("remove(222) 후의 리스트 : %s" % aa)
aa.extend([77,88,77]) // extend : 다른 리스트(배열) 생성(같이붙여서)
print("extend([77,88,77]) 후의 리스트 : %s" % aa)
print("77값의 개수 : %d" % aa.count(77)) // count : 리스트에 77이 몇개인지?
1-1-2. 2차원 배열
# 2차원 리스트(배열)
aa = [[1,2,3,4],
[5,6,7,8],
[9,10,11,12]]
print(aa[0][0]) # aa 리스트(배열)의 첫 번째 리스트[1,2,3,4]의 첫번째 요소(1) 출력
print(aa[0]) # aa 리스트 첫 번째 리스트 전체 출력 [1,2,3,4]
print(aa[1][2]) # aa 리스트의 두 번째 리스트[5,6,7,8]의 세 번째(7) 요소 출력
1-1-3. 튜플 : 리스트와 거의 같은 개념이지만 리스트는 요소 값을 변경할 수 있지만 튜플은 한 번 값이 정해지면 바꿀 수 없다. (읽기 전용)
str = "파이썬 문자열"
print(str[0])
print(str[-1])
# card 튜플 선언
card = 'red', 4, 'python', True
print(card)
print(card[1])
1-1-4. 문자열과 튜플의 관계
card = 'red', 4, 'python', True # card 튜플을 다양한 타입의 요소로 선언
a, b, c, d = card # card의 4개의 요소 값들을 a~d 변수에 할당
print(a)
print(b)
print(c)
d = False # d 변수의 값을 새로 만듬
# (수정의 개념이 아니라 새로 만든다)
print(d) # d값은 튜플이 아니라 bool 타입이므로 수정가능
print(card)
1-1-5. 딕셔너리 : key값과 value값이 한 쌍으로 저장되는 타입 , value값은 튜플과 다르게 변경이 가능함.
# 딕셔너리 = 작은DB라고 생각하자
# 딕셔너리 선언 > type , values
# :(콜론)을 기준으로 왼쪽에는 type, 오른쪽에는 value값이 들어가야한다.
dict = {'번호':10, '성명':'장동건', '나이':23, '사는곳':'서울'}
# [번호, 성명, 나이, 사는곳] = key / [10, 장동건, 23, 서울] = value
print(dict)
print(type(dict)) # dict 변수의 타입을 출력 > class?
print(dict['나이']) # 나이 key값으로 나이의 value값을 출력
dict['나이'] = 24 # 나이 key값의 value값 변경
print(dict['나이'])
dict['직업'] = '배우' # '직업'이라는 key값 추가, '배우'라는 value 추가
print(dict)
print(dict.keys()) # key 값 전체 반환
print(dict.values()) # value 값 전체 반환
print('사는곳' in dict) # '사는곳'이 key값인지?
del dict['사는곳'] # key 값 '사는곳' 제거
print('사는곳' in dict)
print(dict)
2-1-1. 제어문(if문)
a = 23
if a < 50:
print('50보다 작군요')
# if else 문
if a < 20:
print('20보다 작군요')
else:
print('20보다 크군요')
# elif문
# 사용자가 입력한 값(input)을 int형으로 casting하여 age에 대입
age = int(input('현재 나이를 입력하세요 : '))
if age < 10:
print('유년층 입니다.')
elif age < 20:
print('10대 입니다.')
elif age < 30:
print('20대 입니다.')
elif age < 40:
print('30대 입니다.')
else:
print('장년층 입니다.')
2-1-2. 반복문 (for문) 기초
# for문
# for문 선언 변수 i의 초기값은 0이고 범위는 5, 1씩 증가
for i in range(0, 5, 1):
# for문의 조건이 맞으면 실행되는 코드
print(i)
print('----------------')
# for문 처리할 목록에 리스트 변수 선언
for j in[1,3,5,7,9]:
print(j)
print('----------------')
for k in range(0, 3, 1):
print("꿈은 이루어 진다.")
2-1-3. for문을 이용하여 간단한 계산하기(들여쓰기 조심할 것!)
#for문을 이용하여 1~10까지 합을 구하시오.
sum = 0
for i in range(1,11,1):
sum+=i
print("sum : %d" %sum)
print("=================")
# for문을 이용하여 1~10까지의 식과 합을 구하시오
sum = 0
for j in range(1,11,1):
if j < 10:
print("%d + " % j, end="")
elif j == 10:
print("%d = " % j, end="")
sum+=j
print("%d" % sum)
2-1-4. While문
# while문 조건부 반복문
str = "꿈은 이루어 진다."
i = 0
while i < 3:
print(str)
i = i + 1
print("--------------------------")
i = int(input("반복 횟수 숫자를 입력합니다. "))
j = 1
flag = True
while flag:
j = j + 1
if i < j:
flag = False
print(str)
2-1-5. break문 & continue문 & 구구단(4~7단)
# break문
sum, i = 0, 0
for i in range(1, 20, 1):
sum+=i
if sum > 100:
break;
sum-=i
print("%d" % sum)
print("------------------")
sum, i = 0 , 0
j = int(input("숫자를 입력하세요 : "))
while True:
if i < j:
i = i + 1
sum+=i;
elif i == j:
break
print("1에서 %d까지의 합은 %d입니다." %(j,sum))
i = 0
while i < 100: # i가 100보다 작을 때 반복. 0부터 99까지 증가하면서 100번 반복
i += 1 # i를 1씩 증가시킴
if i % 2 == 0: # i를 2로 나누었을 때 나머지가 0이면 짝수
continue # 아래 코드를 실행하지 않고 건너뜀
print(i)
# 내가 한 것
for x in range(4, 10):
for y in range(1, 10):
print(x, "X", y, "=", x*y)
print("---------------------")
# 강사님 코드
for i in range (1,10,1):
for j in range (1,10,1):
if 4 > i:
break
if 7 < i:
break
print("%d * %d = %d" % (i,j,(i*j)))
*라즈베리파이
GND : 기준이 되는 전압(V) , 상대적 개념, 일반적으로 0V
저항이 0으로 수렴하면 > 합선 or 쇼트
가변저항 : 저항값이 변할수 있는 저항
풀업저항 : 측정하는 위치에서 완전한 0V입력을 감지하기 위해서
제3의 상태 : 3 states / High도 low도 아닌 제3의 상태
-pintout : 현재 연결된 라즈베리파이의 상태를 알려줌
1-1-1. 전류가 흐르지 않을 때 LOW 흐를 때 HIGH
*C# Review
1-1-1. ★MessageMap 기법/ 유지보수가 편리하다는 장점이 있음
using System;
delegate int CalcDelegate(int x, int y);
delegate void WorkDelegate(char arg1, int arg2, int arg3);
class MessageMap
{
public char opCode;
public CalcDelegate Calc;
public MessageMap(char opCode, CalcDelegate Calc)
{
this.opCode = opCode;
this.Calc = Calc;
}
}
public class Mathematics
{
MessageMap[] aMessageMaps;
static int Add(int x, int y) { return x + y; }
static int Sub(int x, int y) { return x - y; }
static int Mul(int x, int y) { return x * y; }
static int Div(int x, int y) { return x / y; }
static int Per(int x, int y) { return x % y; }
public Mathematics() // 생성자
{
aMessageMaps = new MessageMap[] { new MessageMap('+',Add), new MessageMap('-',Sub),
new MessageMap('*',Mul), new MessageMap('/',Div),
new MessageMap('%',Per) };
}
public void Calculate(char opCode, int operand1, int oprand2)
{
Console.Write(opCode + " : ");
foreach (MessageMap Temp in aMessageMaps)
{
if(Temp.opCode == opCode)
{
Console.WriteLine(Temp.Calc(operand1, oprand2));
}
}
}
class Program
{
static void Main(string[] args)
{
Mathematics mathematics = new Mathematics();
WorkDelegate workDelegate = mathematics.Calculate;
workDelegate('+', 10, 6);
workDelegate('-', 10, 6);
workDelegate('*', 10, 6);
workDelegate('/', 10, 6);
workDelegate('%', 10, 6);
}
}
}
'C#' 카테고리의 다른 글
2020.07.28(화) - 라즈베리파이 & C# (0) | 2020.07.28 |
---|---|
2020.07.27(월) - 라즈베리파이 & C# Review (0) | 2020.07.27 |
2020.07.23(목) - 라즈베리파이 & C# Review & python (0) | 2020.07.23 |
2020.07.22(수) - 라즈베리파이 & C# (0) | 2020.07.22 |
2020.07.21(화) - 라즈베리파이 (0) | 2020.07.21 |