자료구조, 자료형, Data Type
리스트(list) 변경O
- 배열(array)
- 순서열(sequance)
튜플(tuple) ----> 튜플은 리스트와 다르게 변경이 불가.
- 문자열
ex).
"Hello, World!"
*차이점
-순서열내의 데이터를 변경할 수 있는가
없는가.

list1 = [1, 2, 3, 4, 5] 리스트
tuple1 = (1, 2, 3, 4, 5) 튜플
순서는 C와같이 0번부터 매겨짐 (튜플 리스트 둘다)
첫번째 저장값을 나타낼때
list1[0]
tuple1[0] - 이땐 대괄호

list1[2] = 10 O
tuple1[2] = 19 X

리스트는 문자를 변경이 가능하나, 튜플형 자료형은 바뀌지가 않는다.
string = "Hello, Korea" - 문자형
string = list( str ) - 형변환 문자형 -> 리스트
print( string )
string[0] = 'H'
print( string )
string = str( string )
print( string )

num_list = [ 1, 2, 3, 4, 5]
num_tuple = ( 1, 2, 3, 4, 5)
string = "Hello, korea"
# slice //사용시 마지막 수는 항상 제외됨 주의
num_list [1:4]
: = to (여기서 여기까지)
print( num_list )
num_tuple = num_tuple[1:4] 새로만들어진다는 개념 따라서 기존메모리는
낭비되는상태로 계속 존재
print( num_tuple )
string = string[0:5]
print( string )

#slice
num_list2 = num_list
num_list2[2] = 10
print( num_list2 )
print( num_list )
리스트(다른변수가아닌 리스트만) 일경우 같은자료형을 참조하는 여러개의
리스트가 존재 가능(한곳에서 변화를주면 2개다 적용↖)

num_list2 = num_list[:]
num_list2[2] = 15
print( num_list )
print( num_list2 )
이런경우 slice를이용하였기때문에 새로 생성되어 영향을 끼치지 않는다.

num_list = input()
print( type( num_list ) )
print( num_list )
int( num_list[0] ) 이렇게 해주지 않고 그냥 밑부분처럼 더할시 1+2 가 3
int( num_list[2] ) 이 아닌 1+2 가 12가 된다.
print( num_list ) // 위에 말대로 int형으로 바꾸지 않을시 아래에 식은 12가 나온다.
print( num_list[0] + num_list[2] ) // num_list = list( num_list ) 이부분에서 리스트로 교체
a = int( num_list[0] )
b = int( num_list[2] )
c = a+b
print(c)

사전(dictionary)
집합(set)
converter
- 화씨 => 섭씨
( 5 * 화씨 - 160 ) / 9.0
- 섭씨 => 화씨
9.0 / 5.0 * 섭씨 + 32
실행화면
변경할 타입을 입력해주세요: F/C
*C를 입력했다면
-변환할 섭씨 온도를 입력해주세요: 0
-입력한 섭씨 0도는 화씨로 32도 입니다.
*F를 입력했다면
-변환할 화씨 온도를 입력해주세요: 32
-입력한 화씨 32도는 섭씨로 0도 입니다.
조건문(분기문/branch)
if expression;(만약 이 표현식이 참이면)
//then block (블록을 실행한다.)
파이썬의 블록은 들여쓰기로 구분 (매우중요)
ex).
if 1 == 1: // C랑은다르게 콜론을 붙임
print("True")
print("here is then block")
print("here is not if block")
애매한 띄어쓰기 안됨 무조건 맞춰줄것
ㅁㄴㅇㄹ
ㅁㄴㅇㄹ X
ㅁㄴㅇㄹ
ㅁㄴㅇㄹ O
다른 조건에서 실행시킬때는 C랑 똑같게 else사용
if 1 == 1: // C랑은다르게 콜론을 붙임
print("True")
print("here is then block")
else:
print("here is not if block")
만약 분기점을 하나더 늘리고 싶다면else를 하나더 쓰느것이아닌
elif를 추가한다.(c언어의 else if)
만약 elif의 조건이 첫번째 if와 동일하다면 첫번째로만난 조건이 성립할시 나머지 조건은
실행시키지 않는다.
구성 문자열 판별
s.isdigit() -> 숫자여부 파악, 리턴 : True, False
s.isalpha() -> 영문자 여부 파악 ,리턴 : True, False
s.isalnum() -> 숫자 혹은 영문자 여부파악, 리턴 : True, False
s.islower() -> 소문자 여부 파악, 리턴 : True, False
s.isupper() -> 대문자 여부 파악, 리턴 : True, False
s.isspace() -> 공백 문자여부 파악, 리턴 : True, False
s.istitle() -> 제문 문자열 여부 파악, 리턴 : True, False
u’string‘ -> 유니코드 표현 문자열
unicode(‘한글’) -> 유니코드 문자열로 변환
포맷 문자열 |
설명 |
%s |
문자열 혹은 임의의 객체를 문자열로 변환 한다(str()함수를 이용함) |
%r |
문자열 혹은 임의의 객체를 문자열로 변환한다(repr()함수를 이용함) |
%c |
길이가 1의 문자 ‘%c’, ‘%A’ |
%d |
10진수 정수 |
%i |
정수(%d와 별 차이가 없다 ) |
%u |
부호 없는 정수 ‘%u’ %-12의 결과는 ‘42949967284’ 양수 그래로 음수는 양수적 해석을 적용한다. |
%o |
8진수 |
%x |
16진수를 소문자 출력 ex)12의 결과는 ‘c’ |
%X |
16진수를 대문자로 출력 ex) 12의 결과는 ‘C’ |
%e |
부동 소수점(실수)를 지수 형태로 표현, 유효숫자는 7자리로 표현한다.
‘%e’ %123.45678 의 결과는 1.234568e+002 |
%E |
%e와 동일 함. 단,지수 표현을 대문자 E로 표현 |
%f |
부동소수점(실수)을 표현. %f ‘%123.45678’ 결과는 123.456780 |
%g |
부동소수점을 편의 따라서 소수점 형식 혹은 지수 형식으로 변환함.
6자리의 유효숫자로 표현한다. |
%G |
%g와 동일 단, 지수 표현을 대문자 E로 표현 |
반복문(loop) : while, for
-기본 형태-
while 반복문실행조건 :
반복할 코드
반복문 실행 조건을 제대로 작성하지 않을 경우 반복문이 실행되지 않거나 무한 루프에 빠질 수도 있습니다.
-예시-
>>> count = 1
>>> while count <=9 :
print("Count = ", count)
count += 1
Count = 1
Count = 2
Count = 3
Count = 4
Count = 5
Count = 6
Count = 7
Count = 8
Count = 9
for문
C의 for문과 큰 차이를 보여줍니다.
파이썬의 for문의 기본 형태는
for 타깃식별자 in 문자열or리스트or튜플 :
반복할 코드
로 나뉘게 됩니다.
'in' 뒤에 있는 항목의 첫번째부터 마지막까지 순서대로 타깃 식별자에 대입됩니다.
각각의 경우에 대해 알아보겠습니다.
(1) for 타깃식별자 in 문자열
타깃식별자에 문자열의 첫번째 글자부터 마지막 글자까지 순서대로 대입됩니다.
-예시-
>>> for i in "hello" :
print(i)
h
l
l
o
(2) for 타깃식별자 in 리스트
리스트의 첫번째 항목부터 마지막 항목까지 순서대로 타깃식별자에 대입됩니다.
-예시-
>>> for i in ["aa", 1, "bb", 2, "c", 3] :
print(i)
aa
1
bb
2
c
3
(3) C와 유사하게 사용하기 - range() 함수 사용
for문을 C와 유사하게 사용하기 위해선 range() 함수를 사용하면 됩니다.
range의 함수의 원형은 다음과 같습니다.
range(stop)
range(start, stop[, step])
인자는 정수를 입력합니다.
정수를 하나만 입력할 경우 (stop)
0 ~ 입력한 정수-1 까지 1씩 증가하며 반복되고,
정수를 두개 입력할 경우 (start, stop)
start ~ stop-1 까지 1씩 증가하며 반복되고,
정수를 세개 입력할 경우 (start, stop, step)
start ~ stop-1 까지 step 씩 증가하며 반복됩니다.
즉, 파이썬의
for i in range(0, 10, 1):
과 같은 for문은, C의
for (i=0; i<10; i++)
와 같은 의미입니다.
-예시-
>>> for i in range (5):
print(i)
0
1
2
3
4
>>> for i in range (1,5):
print(i)
1
2
3
4
>>> for i in range (1,5,2):
print(i)
1
3