#if문
x = -10

if x < 0:
print('x는 0보다 작다.')

x = 10

#else문
if x < 0:
print('x는 0보다 작다.')
else:
print('x는 0보다 크다.')

#if else문
x = 0
b = 5
if x < 0:
print('x는 0보다 작다.')
elif x == 0:
print('x는 0이다.')
#if문 안의 if문 사용법
if b == 5:
print('b는 5이다.')
else:
print('x는 0보다 크다.')

"""
if문 출력결과
x는 0보다 작다.
x는 0보다 크다.
x는 0이다.
b는 5이다.
"""

#in,not의 쓰임
#숫자사용할때는 비추천한다.
#아래 코드는 테스트용
a = [1,2,3]
b = 1
if b in a:
print('in')

if 100 not in a:
print('not in')

boolean = False
if not boolean:
print('True가아니다')

#Flase로 판정되는 것들
#Flase, 0, 0.0, '', [], (), {}, set()
str = ''
if str:
print('OK!')
else:
print('NO')

#리스트가 빈값인지 확일할때
str = []
#len(str) 할 필요없다.
if not str:
print('리스트가 비어있다.')



#while문
count = 0;
while count < 5:
print(count)
count += 1

#break문사용
count = 0;
while True:
if count == 5:
break;
print(count)
count += 1

#continue문사용
#2가출력 안된다.
count = 0;
while True:
if count == 5:
break;

if count == 2:
count += 1
continue
print(count)
count += 1

#while else문
#break가 없을때 else문을 실행해라
count = 0
while count < 5:
print(count)
count += 1
else:
print('끝났다')


#집합형
print('---------------')
a = {1,2,3,4,4,4,5,6}
print(a)
print(type(a))
b = {3,4,5,7}
print(a)
print(b)
#a집합에서 b집합을 뺸것
print('---------------')
c = a - b
print(c)
#b집합에서 a집합을 뺀것
print('---------------')
c = b - a
print(c)
#a와 b집합에 모두 있는것(교집합)
print('---------------')
c = a & b
print(c)
#a와 b집합 합친것(합집합)
print('---------------')
c = a | b
print(c)
#a에만 들어있는것
print('---------------')
c = a ^ b
print(b)


#집합의 메소드
s = {1,2,3,4,5,6}
#집합의 값추가하기
print('---------------')
s.add(7)
print(s)
#집합에 값제거하기
print('---------------')
s.remove(1)
print(s)
#집합에 값모두제거
print('---------------')
s.clear()
print(s)

"""
출력결과
---------------
{1, 2, 3, 4, 5, 6}
<class 'set'>
{1, 2, 3, 4, 5, 6}
{3, 4, 5, 7}
---------------
{1, 2, 6}
---------------
{7}
---------------
{3, 4, 5}
---------------
{1, 2, 3, 4, 5, 6, 7}
---------------
{3, 4, 5, 7}
---------------
{1, 2, 3, 4, 5, 6, 7}
---------------
{2, 3, 4, 5, 6, 7}
---------------
set()
"""


#사전형
#{} 중괄호를 사용한다.
#사전형은 해쉬테이블을 가지고 있어서 검색이 쉽다.
d = {'x': 10, 'y':20}
print(d);
#x값 출력
print(d['x'])
#y값 출력
print(d['y'])

#변경 추가는 숫자,문자 다가능
#x값 변경
d['x'] = 'test'
#z값 추가
d['z'] = 123
print(d)

#다양한 사전형 생성방법
d = dict(a=10,b=20)
print(d)
d = dict([('a',50),('b',40)])
print(d)

print('---------------------')
"""
출력결과
{'x': 10, 'y': 20}
10
20
{'x': 'test', 'y': 20, 'z': 123}
{'a': 10, 'b': 20}
{'a': 50, 'b': 40}
---------------------
"""
#사전형 메소드
print(help(d))
print('키,값 보기 ------------------')
#사전 키값만 보기
print(d.keys())
#사전 값만 보기
print(d.values())
print('업데이트하기 ------------------')
#업데이트하기
d2 = {'a':1000,'z':2000}
print(d)
d.update(d2)
print(d)
print('값출력,꺼내기 ------------------')
#사전에 값출력하기
#값이 없으면 에러난다
#print(d['ss'])
#None이 나오고 에러나지 않는다.
print(d.get('ss'))
print(d.get('a'))

#사전값 꺼내기 값이 없어진다.
print(d)
#d사전에서 a값 꺼내기
a = d.pop('a')
print(a)
print(d)

print('값삭제 ------------------')
del d['b']
print(d)
#값 전체삭제
d.clear()
print(d)

print('사전안에 값검색 ------------------')
d = {'x': 10, 'y':20}
print('x' in(d))

#사전 복사하기
print('사전복사하기 ------------------')
d2 = d.copy()
d2['x'] = 12333
print(d)
print(d2)
"""
출력결과
키,값 보기 ------------------
dict_keys(['a', 'b'])
dict_values([50, 40])
업데이트하기 ------------------
{'a': 50, 'b': 40}
{'a': 1000, 'b': 40, 'z': 2000}
값출력,꺼내기 ------------------
None
1000
{'a': 1000, 'b': 40, 'z': 2000}
1000
{'b': 40, 'z': 2000}
값삭제 ------------------
{'z': 2000}
{}
사전안에 값검색 ------------------
True
{'x': 10, 'y': 20}
{'x': 12333, 'y': 20}
"""


#리스트 복사
i = [1,2,3,4,5]
j = i
print('j = ',j)
print('i = ',i)
print('--------------')
j[0] = 100
#i,j의 주소값이 같으므로 값이 모두 변한다.
#참조전달
print('id(j) = ',id(j))
print('id(i) = ',id(i))
print('j = ',j)
print('i = ',i)
print('--------------')

#리스트 복사하기(두개다 가능)
#copy가 명시적으로 더 잘보임
#수치전달
x = j.copy()
x = j[:]
x[0] = 200
print('id(j) = ',id(j))
print('id(x) = ',id(x))
print('j = ',j)
print('x = ',x)
print('--------------')

"""
출력결과
j = [1, 2, 3, 4, 5]
i = [1, 2, 3, 4, 5]
--------------
id(j) = 4499210056
id(i) = 4499210056
j = [100, 2, 3, 4, 5]
i = [100, 2, 3, 4, 5]
--------------
id(j) = 4499210056
id(x) = 4735167240
j = [100, 2, 3, 4, 5]
x = [200, 2, 3, 4, 5]
--------------
"""

#튜플
#()로 표현한다
#데이타 조작 보다는 읽어 쓸때 사용한다.
#질문 보기등에 사용하기 유용하다.
print(help(tuple))
t = (1,2,3,4,1,2)
print(type(t))
print('--------------')
#값변경 안됌
#t[0] = 100
#에러남

#튜플안에 배열을 넣을수 있다
#배열은 수정가능하다
t = ([1,2,3],[4,5,6])
print(t)
t[0][0] = 200
print(t)
print('--------------')

#튜플의 언패킹
t = (10,20)
print(t)
x, y = t
#x, y = 10,20 과 같다.
print(x, y)
#대표적인 사용예
min, max = 0, 100
print(min, max)
#값변경도 가능
min, max = max, min
print(min, max)
print('--------------')
"""
출력결과
<class 'tuple'>
--------------
([1, 2, 3], [4, 5, 6])
([200, 2, 3], [4, 5, 6])
--------------
(10, 20)
10 20
0 100
100 0
--------------
"""


from typing import List

num = 1
name = '1'

#형변환
num = int(name)

print(num , type(num))
print(name, type(name))

#리스트 메소드 정보보기
#print(help(list))

#배열생성
n = [1,2,3,4,5]
#배열 마지막 값 꺼내기
print(n.pop())
#배열 첫번째 값 꺼내기
print(n.pop(0))
#배열 값 보기
print(n[0])
#배열에 값 추가
n.insert(0,100)
print(n)

#배열에 값 제거
del n[0]
print(n)

#배열에 특정 값 첫번째 제거
n.remove(2)
print(n)

a = [1,2,3,4,5]
b = [6,7,8,9,10]

#새로운 배열에 배열 더하기
x = a + b
print(x)

#기존 배열에 배열 더하기
a += b
print(a)

r = [1,2,3,4,5,1,2,3]

#배열안에 값 위치 확인하기
print(r.index(3))

#배열안에 3 갯수 확인
print(r.count(3))

#두번째 3 위치 확인하기
print(r.index(3,r.index(3)+1))

#if문 배열안에 숫자 있나 확인하기
if 5 in r:
print('5가 있다')

#배열 정렬하기
r.sort()
print(r)
#배열 반대로 정렬하기
r.sort(reverse=True)
print(r)
#한단계 전으로 돌리기
r.reverse()
print(r)

#문자열 특정문자 기준으로 배열만들기
s = 'a b c d'
splitTest = s.split(' ')
print(splitTest)

#배열 문자열로 만들기(특정문자 추가가능)
s = ''.join(splitTest)
print(s)

"""
배열 리스트 출력결과
1 <class 'int'>
1 <class 'str'>
5
1
2
[100, 2, 3, 4]
[2, 3, 4]
[3, 4]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2
2
7
5가 있다
[1, 1, 2, 2, 3, 3, 4, 5]
[5, 4, 3, 3, 2, 2, 1, 1]
[1, 1, 2, 2, 3, 3, 4, 5]
['a', 'b', 'c', 'd']
abcd
"""


+ Recent posts