이것저것 공부기록

1. 변수, 숫자, 문자열 본문

언어/Python

1. 변수, 숫자, 문자열

채도리 2020. 5. 18. 23:04

인터프리터 방식: IDLE에서 한 줄씩 명령어를 입력하고 실행하는 방식

스크립트 방식: 텍스트 에디터를 이용하여 명령어들을 파일에 저장한 후에 파일을 읽어서 명령어들을 하나씩 실행하는 방식

변수

변수: 값을 저장하는 장소

 

· 변수는 컴퓨터 메모리에 저장되며 컴퓨터 메모리에 있는 값(Value)을 참조하기 위한 이름이다.

· 변수는 사용 전에 반드시 값을 할당(assign)해야 한다.

· 연속된 값 할당이 가능하다.

a = b = c = d = 100
a, b, c = 0, 0, 0

* 변수 이름에 관한 규칙

1. 첫 글자는 영어 대소문자, 언더스코어(_)만 사용 가능하다.

2. 두 번째 글자부터 영어 대소문자, 언더스코어, 숫자를 조합하여 사용할 수 있다.

3. 변수 이름은 대소문자를 구별한다.

4. 예약어는 변수 이름으로 사용할 수 없다.

 

예약어

 

· type() 함수: 변수의 종류를 확인하는 함수

ex) type(a) → <class 'int'> 출력

문자열

· 문자열은 따옴표로 싸여지는데, 큰따옴표("), 작은 따옴표(') 모두 사용 가능하다.

· 따옴표 자체 출력 → 역슬래쉬 사용 or 다른 종류의 따옴표로 묶어주기

· 여러 줄 입력 → 큰따옴표 세 개 연속(""") 사용

print("I love \"you\"") # I love "you" 출력
print('I love "you"') # 위와 동일하게 출력

print("""
How
are
you
""") # How
     # are
     # you 출력

 

· 문자열의 덧셈 → 두 개의 문자열 결합

· 문자열*숫자 → 문자열이 숫자만큼 반복되어 출력됨

** 문자열은 문자열끼리, 숫자는 숫자끼리만 덧셈 가능

 

 

· 문자열 여러 개 출력 시 콤마(,) 혹은 +로 연결 가능. 차이점은 공백 유무이다.

print("안녕","반가워") # 안녕 반가워 출력
print("안녕"+"반가워") # 안녕반가워 출력

· 문자열에 변수의 값을 삽입하여 출력하고 싶다? → 서식(%) 기호 사용 (콤마 쓰지 않도록 주의)

price = 20000
print("상품 가격은 %s원입니다." %price)
# 상품 가격은 20000원입니다.
서식 값의 예 설명
%d, %x, %o 10, 100, 1234 정수(10진수, 16진수, 8진수)
%f 0.5, 1.0, 3.15=4 실수(소수점이 붙은 수)
%c "b", "한" 문자 한 글자
%s "안녕", "abcdefg", "a" 한 글자 이상의 문자열

주석

· 파이썬의 주석은 # (단축키 Alt+3 주석 달기, Alt+4 주석 제거 (드래그해서 여러 줄 주석 한 번에 입력 가능))

· 들여쓰기 블록이 맞지 않으면 주석 때문에 오류가 생기기도 한다.

· """ ··· """ 여러 줄 주석 입력 가능 

 

낙타체

· ex) myNewCar / 낙타체가 싫다면 my_new_car 이런 방식으로!

어느 방식이든지 상관은 없으나 일관성은 갖출 것

 

산술 연산자

· 다른 연산자는 C와 같은데, / 의 쓰임이 다르다.

· 파이썬은 자료형을 지정하지 않기 때문에(?) / 를 쓰면 실수로 연산 결과가 출력된다.

** 제곱 a=6**2
/ 나누기 a=6/7
// 나누기(몫) a=6//7
% 나누기(나머지) a=6%7

 

시간을 분과 초로 변환하는 예제

sec = 1000
min = 1000//60
remainder = 1000%60
print(sec,"초는",min,"분",remainder,"초이다.")
# 1000 초는 16 분 40 초이다. 출력

복합 연산자, 관계 연산자, 비트 연산자

C언어와 같음 (밑의 표는 참고할 만한 연산자만 적어놓음)

대입 연산자 사용 예 예 설명
//= a//=3 a=a//3과 동일
**= a**=3 a=a**3과 동일

논리 연산자

논리 연산자 의미 설명 사용 예
and 그리고 둘 다 참이어야 참 (a>100) and (a<200)
or 또는 둘 중 하나만 참이어도 참 (a==100) or (a==200)
not 부정 참이면 거짓, 거짓이면 참 not(a<100)

2진수, 16진수 표시

· 2진수 입력: 0b or 0B 붙여서 입력 / int('숫자', 진수) → 10진수로 변환되어 출력

0b11
int('11', 2) # 둘 다 3 출력

· 16진수도 위와 마찬가지

0x93
int('93', 16) # 둘 다 147 출력

input() 함수

· 사용자의 입력을 받기 위해 사용

· () 안의 메시지를 화면에 출력하고 사용자의 입력을 기다림

· 사용자가 뭔가를 입력해야지만 종료함

· string = input([prompt])

 

**주의 input 사용 시 사용자가 입력한 값은 모두 문자열로 취급된다.

 

<문자열 → 숫자>

· int(): 인자로 주어진 값을 정수값으로 변환 ex) intValue = int(숫자 또는 문자열)

· 사용자 입력값을 정수로 받으려면 intValue = int(input([prompt])) 와 같이 사용

· float(): 문자열을 실수로 변환

a = input() # 100 입력
b = input() # 200 입력
print(a+b)  # 100200 출력

a = int(input()) # 100 입력 
b = int(input()) # 200 입력
print(a+b)       # 300 출력

 

<숫자 → 문자열>

· str() 함수 사용

· 숫자와 문자열은 + 로 연결할 수 없다.

print('나는 현재 '+25+'살이다.' # 오류 발생!

print('나는 현재 '+str(25)+'살이다.')
# 나는 현재 25살이다.
print('원주율은 '+str(3.14159)+'입니다')
# 원주율은 3.14159입니다.

슬라이싱 - 문자열에서 문자, 부분 문자열 추출

· 한 문자를 추출하기 위해 문자열 뒤에 대괄호([])와 첨자 지정

· 문자열의 인덱스는 0부터 시작 / 0, 1, 2, 3, ···

· 오른쪽 끝은 -1이고 그 다음은 -2, -3, ··· 으로 진행 

alphabet = 'abcdefghijklmnopqrstuvwxyz' # 알파벳 26글자
alphabet[0] # 'a'
alphabet[1] # 'b'
alphabet[-1] # 'z'
alphabet[-2] # 'y'
alphabet[25] # 'z'

 

· sub_string = string[시작:끝:스텝] → 스텝만큼 건너뛰면서 시작부터 (끝-1)까지 부분 문자열 추출

· sub_string = string[시작:끝] → 시작부터 (끝-1)까지 부분 문자열 추출

· 시작 또는 끝을 생략할 수 있지만 중간에 콜론(:)은 무조건 있어야 한다.

alphabet = 'abcdefghijklmnopqrstuvxyz'
alphabet[20:] # 'uvwxyz'
alphabet[10:] # 'klmnopqrstuvwxyz'
alphabet[12:15] # 'mno', alphabet[12]~alphabet[14] 출력
alphabet[-3:] # 'xyz'
alphabet[:5] # 'abcde'
alphabet[:] # 'abcdefghijklmnopqrstuvxyz'

 

문자열 함수

함수 기능
len(s) 문자열 길이 (공백 포함)
split() 문자열을 나눠서 리스트 반환, default 구분자는 공백 문자(줄바꿈, 스페이스, 탭)
join() 문자열 리스트를 하나의 문자열로 결합 후 반환, 구분자를 중간에 삽입
capitalize() 첫 글자를 대문자로 만들기
title() 모든 단어의 첫 글자를 대문자로 만들기
upper() 소문자 -> 대문자
lower() 대문자 -> 소문자
swapcase() 소문자 -> 대문자, 대문자 -> 소문자
center() 숫자만큼 전체 자릿수를 잡은 후 문자열을 가운데 배치
ljust() 숫자만큼 전체 자릿수를 잡은 후 문자열을 왼쪽에 배치
rjust() 숫자만큼 전체 자릿수를 잡은 후 문자열을 오른쪽에 배치
count(s) 문자열 중 s와 일치하는 갯수
find(s) 문자열 중 s가 처음으로 나온 위치 반환, 없으면 -1
index(s) 문자열 중 s가 처음으로 나온 위치 반환, 없으면 에러
lstrip() 왼쪽 공백 모두 삭제
rstrip() 오른쪽 공백 모두 삭제
strip() 양쪽 공백 모두 삭제
replace(s,r) s를 r로 치환

 

'언어 > Python' 카테고리의 다른 글

[소창] 10주차 응용 실습 복습  (0) 2020.05.31
5. 함수, 파일, 모듈, 패키지  (0) 2020.05.20
4. 리스트, 튜플, 딕셔너리  (0) 2020.05.19
3. 반복문  (0) 2020.05.19
2. 조건문  (0) 2020.05.19