Python

Python 기초 1 - 자료형과 연산자

yuzumuzu 2023. 4. 8. 15:22

1. 기본 출력

(1) print() 함수 사용

print()

#변수 출력
print(st)

#문자열 출력
print("I'm Python")

#콤마로 연결하면 띄어쓰기 생성
print("Hello","I'm Python")

 

(2) 표현식 문자열 출력

: " ~ %s %d", %("Lina", 20)

- %s -> string 문자열 자리다.

- %d -> digit (0~9) 숫자 자리다.

- %f -> float 실수 자리다.

print('My friend is %s is %d years old'%("Leo",20))

 

 * python에서 쌍따옴표("")와 따옴표('') 사이에는 큰 차이가 없음. 조직, 관습에 따라 사용하면 됨

 

 

2. 기본 입력

(1) input() 함수 사용

- 기본적으로 문자열을 받음 = 숫자를 입력해도 문자열로 입력됨

#숫자로 입력받기

int(input("몇살이니:"))

 

 

3. 주석

(1) 한 줄 주석: #

(2) 여러 줄 주석: ''' ~ '''

 

 

4. 자료형

(1) 숫자 자료형

- int: 정수형

- float: 실수형

 

(2) 문자형

- str: 작은 따옴표나 큰 따옴표로 묶어 표현

- 다중열로 저장하려면 \n 개행 문자 포함하거나 """ """ 따옴표 세개로 줄바꿈해 묶으면, 변수 안에는 \n과 함께 저장된다. (print하면 줄바꿈 되어 보여진다)

- \n을 개행 문자로 쓰고 싶지 않다면 이스케이프 문자인 역슬래시로 처리한다. 

- 문자열 자체는 immutable object이다.

- str() 함수를 이용해 다른 객체를 문자열로 바꿀 수 있다. 

#줄바꿈을 유지하면서 변수 선언하기

string= """안녕 첫번째 줄이야
안녕 두번째 줄이야"""

- 문자열을 합치려면 + 연산자를 쓴다.

str1='Python'
str2='is fun'


#결괏값은 Pythonis fun
str1+str2

- 표현식 기반하여 문자열 표현할 수 있다.

s = "I love %s." % 'yuzumuzu'   
print(s)

 

(3) f-string vs .format vs %operator

- %operator: 타입을 정확히 알고 코딩해야 한다는 단점, 오래된 방식

- .format: 파이썬 3부터 적용된 비교적 최신 방식

'__{ }__{ }__'.format(value, value)
#방법1 - 위치 지정
template='{0} {1} are worth US${2}'
template.format(1200, 'won', 1.00)

#방법2 서식 제어 - 위치, 자료 타입 지정
template='{0:d} {1:s} are worth US${2:.2f}'
template.format(1200, 'won', 1.00)

#방법3 - 아무것도 지정하지 않음
template='{} {} are worth US${}'
template.format(1200, 'won', 1.00)

- f-string: 파이썬 3.6부터 적용, f'~{}'

 

 

5. 변수

변수 s가 문자열 Hello를 참조한다. 자바의 경우 변수 s는 데이터에 맞춰져서 메모리를 차지하는데 파이썬은 sd에 대한 참조값만 바뀐다. 

s='Hello'

객체 삭제는 다음과 같은 방법으로 진행한다. 

del s

 

 

6. 리스트

- 인덱싱을 통해 각 원소에 접근 가능하다. 

 

(1) 인덱싱: list[index]

- 값을 꺼내오므로 차원 축소함

 

(2) 슬라이싱: list[ start : end ]

- [] 유지하여 가져오므로 차원 축소하지 않음

 

(3) 리스트 함수 

- append 함수: 리스트 데이터의 마지막에 값을 추가함

- pop 함수: 리스트 데이터의 원소를 삭제

- reverse 함수: 리스트 원소 순서 뒤집기

# append 함수
lst.append(tinylist[0]) 
print(lst)


# pop 함수
popped = lst.pop(0)
print(lst)
print(popped)

# reverse 함수 
lst.reverse()

 

 

7. 2차원 리스트

https://iq.opengenus.org/2d-array-in-numpy/

#ouput [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
lst_1=[1,2,3]
lst_2=[4,5,6]
lst_3=[7,8,9]
lst_4=[10,11,12]

lst=[lst_1,lst_2,lst_3,lst_4]
print(lst)

- 인덱싱을 통해 차원을 -1, -2 할 수 있다.

#인덱싱해 차원 축소하기
lst[0]
print(lst[0])

#인덱스 1 자리의 리스트 내 인덱스 2 값 가져오기 - 차원 두 번 축소
lst[1][2]
print(lst[1][2])

#리스트 크기 체크
print(len(lst[0]))
print(len(lst))

###

[1, 2, 3]
6
3
4

###

 

 

7. 튜플

- sharing same grammar with list, but immutable

- 단일 튜플 사용시 값 뒤에 콤마 반드시 찍어줘야 함

- tuple()

 

8. range

- [규칙] step 미지정시 기본값 1, start 미지정시 기본 출발값 1, stop 값은 포함하지 않음

range(<start>,<stop>,<step>)

 

9. 형변환

- list(X): X로 채워진 리스트를 만듬

- tuple(X): X로 채워진 튜플을 만듬