Python 1일차 :: 변수와 자료형

2021. 7. 11. 16:50
변수와 자료형

주석

1
2
3
4
5
'''작은따옴표 
주석'''
"""큰따옴표
주석 둘다 여러줄 됨"""
# 한줄주석~ 한줄만됨~~
cs

개발자끼리 소통할 때나 나처럼 말많은 사람이 코드쓸때 정말 필수적인 주석이다. 프로그램에 영향을 주지 않는다.

왜 작은따옴표랑 큰따옴표 기능이 같은걸까? 아무래도 한줄주석을 가장 많이 쓰게 된다.

변수

데이터를 저장할 수 있는 공간.

변수 이름 = 저장할 값

변수 이름 생성규칙 

1. 영문, 한글, 숫자, 밑줄로 구성

2. 특문 사용불가 (_제외)

3. 대소문자 구분

4. 첫 글자 숫자 안댐

5. 지정된 키워드 사용불가 ( if같은거)

 

기본 자료형

구분 자료형 함수
int 정수 int()
float 실수 float()
bool true / false bool()
str 문자열 str()

tuple, dictionary, set, list와 같은 컬렉션도 자료형으로 표현된다.

C나 java같은 언어와 달리 파이썬은 변수 선언시 자료형을 명시하지 않아도 되므로 보다 쉽게 코딩할수 있으나, 오류가 떴을 때 찾아내기 힘들다는 단점이 있다!

때문에 input으로 받아오거나 기존 자료의 자료형을 확인하는 단계가 필요한데,

type() 함수가 가능케 합니당

type 함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
= input("문자열 입력 : ")
= "문자열임당"
= input("숫자 입력 : ")
= 123
= True
 
 
print(type(a))
print(type(b))
print(type(c))
print(type(d))
print(type(e))
 
 
>> 문자열 입력 : 애앵
>> 숫자 입력 : 12356
>> <class 'str'>
>> <class 'str'>
>> <class 'str'>
>> <class 'int'>
>> <class 'bool'>
cs

type()함수를 사용하면 변수가 어떤 자료형인지 알 수 있다.

여기서 중요한 점은 input으로 받아온 입력은 무조건 '문자열'이 되므로 연산할수 없다. 그래서 숫자형으로 바꿔서 연산해야댐!

그리고 참거짓은 꼭 True / False 처럼 대문자로 시작해야댐

 

문자열 인덱싱 & 슬라이싱

C에는 '배열'이라는 개념이 있는데, 한 개 한 개의 주머니가 있다고 보면댐.

파이썬에서 문자열도 이 배열처럼 한글자 한글자가 주머니에 각각 담겨있다. (숫자형은 안댐)

배열과 비슷하게 호출가넝.. 보시죠

 

1
2
3
4
5
6
7
8
9
10
11
= '가나다라'
= 'abcd'
 
print(a[0]) # 0번째 인덱스
print(b[:3]) # 처음부터 세번째글자까지
print(b[1:]) # 1번째 인덱스부터 끝까지
 
 
>> 가
>> abc
>> bcd
cs

번호를 생략하면 처음 또는 끝을 의미한다~

여기서 주의할 점은 [인덱스 번호 n : n번째 글자] 라는 거시다... 몬말인지 헷갈릴 수 있다 그럴수있다

더쉽게 말하면 [012345... : 123456...] 이거다.. 첫번째엔 0부터 세고 두번째엔 1부터 센다..(글자 수를 센다고 생각) 왜이렇게 만들었나요? 코린이는 모르겟샤  배열에서도 이랬던거가틈
[2:3]이라고 하면 같은 위치의 글자를 말하는거시다.. [2:3]=[2]인거시다..
글고 웃긴게 0이하로도 숫자가 부여된다..? 012345 세다가 0이하로는 -1 -2 -3 .. 일케댐
0   1   2  3  4 5
-6 -5 -4 -3 -2 -1
같다 이거시다... [0] = [-6] 크흡..

 

이스케이프 문자

이미 예약되어있는 확장 문자들.
문자 역할 문자 역할 문자 역할
\' 작은 따옴표 \n 줄 바꿈 \t
\" 큰 따옴표 \\ 역슬래시 \r 캐리지 리턴(맨앞)

 

\' : print("여기 안에서 작은따옴표를 출력하고 싶을 때 쓰기좋아 ")

\" : 이하동문.. 큰/작 따옴표는 문자열 선언이나 print 출력에 쓰이니까 이스케이프 문자 사용한당

print() 함수

c로 언어를 처음 배워서 printf라고 자꾸 치게 되지만 파이썬은 print다.

print("어쩌구 저쩌구") 요래요래 씀

화면에 어쩌구 저쩌구 적은 내용을 출력해준다.

1
print(value, ..., sep="", end="\n"file=sys.stdout, flush=False)
cs

print 함수 내에도 여러가지 매개변수값이 있는디

보통은 value값만 입력하지만

sep : 출력할 value의 구분자, 기본값은 "" - 암것도 없는값 인거시다

말그대로 print(value, value1, value2) 여러가지 value를 출력할 수 있는데 이 value 사이의 구분자를 의미

print(value, value1, value2, sep = "/") 이렇게하면 value/value1/value2 일케출력됨~~

end : value 다~출력하고 맨 끝에 출력할 문자, 기본값은 "\n" 그래서 우리가 일일히 \n안쳐줘도 되는거시다.

file : 출력할 방향을 지정, 기본값은 sys.stdout(모니터) 모니터에 출력하는거라 저러케씀 파일에 출력하고 그럴때도있는디 잘모룸..ㅈㅅ

flush : flush, 스트림을 강제로 flushing 해준다는데 출력값이 buffer 상태일때 clear해주어 바로 출력해준다는 뜻인듯?

 

help() 함수

앞서 말했던 print()의 매개변수.. 이런거 궁금할수있지 그럴때는

help(print) 이렇게 하면 터미널 창에서 알랴준다~

 

format() 메소드

{}를 사용해서 변수나 값을 출력하는 방법

.format으로 사용되고

1
2
3
4
5
6
print("{}도 먹고싶고 {}도 먹고싶고 나는 {}가 분명해." .format("삼겹살""오리고기""돼지"))
print("{2}도 먹고싶고 {1}도 먹고싶고 나는 {0}이/가 분명해." .format("삼겹살""오리고기""돼지"))
 
>> 삼겹살도 먹고싶고 오리고기도 먹고싶고 나는 돼지가 분명해.
>> 돼지도 먹고싶고 오리고기도 먹고싶고 나는 삼겹살이/가 분명해.
 
cs

이런식으로 인덱싱도 가능하다.

여기서 더 응용한게

f-string

가독성이 좋아서 주로 사용한다(내가)

파이썬 3.6 버전 이상에서 사용됨(예전에 배울땐 그래서 없었나봐)

{} 안에서 변수 연산도 됨! ""앞에 f붙여줘야 {}가 활성화된다

1
2
3
4
5
6
= "물"
= "인간"
= "70%"
print(f"{a}은 {b}의 몸 {c}를 차지한다.")
 
>> 물은 인간의 몸 70%를 차지한다.
cs

 

input()

사용자로부터 키보드로 입력 받을 때 사용한다.

scanf 같은거임

age = input("나이를 알려주세용 : ") 일케하면 age에 입력값이 담긴당

주의) 입력값은 모두 문자열로 담긴당~ 숫자로 자료형 변환하고 연산해야햄