rueki

day1. 파이썬의 기초 - 변수와 문자열, 연산자 본문

python

day1. 파이썬의 기초 - 변수와 문자열, 연산자

륵기 2020. 1. 1. 15:30
728x90
반응형

첫 날의 수업은 파이썬 설치부터 시작해서 변수명 선언, 연산, 문자열 내용에 관련해서 진도를 나갔다.

 

프로그래밍에 있어서 제일 먼저 알아야 할 것은 주석달기이다.

파이썬에서의 한 줄 주석과, 전체 주석을 알아보자

#한 줄 주석 달기 (단축키 : ctrl + /)

#전체 주석
'''
내용
'''

C나 C++에서는 '//' 을 한 줄 주석으로 사용하지만, 파이썬은 #을 사용한다.

그리고 전체주석은 ''' ''' 을 사용하면 된다.

 

다음 알아볼 내용으로는 입출력문이다.

print 명령어는 출력 명령어이다. 기본 구조로는 print(값 / 수식 / 변수, end = '대체문자나 공백') 이다.

 

print('Hello World!')
#Hello World

print(100 + 200)
#300

print(100,' + ',200, '=',100+200)
#100 + 200 = 300

다른 프로그래밍 언어와 큰 차이는 없지만 파이썬의 큰 장점은 변수를 따로 선언 안 해주어도 출력이 가능하다는 것이다.

end 옵션에 대해서 추가적으로 코드를 작성해보자.

# end 옵션 이용한 한줄 출력
print(True, end=' ')
print(False)

위의 명령어를 실행해보면, 'True False'라고 나오는데 end 옵션을 사용하면, 한 줄 출력이 이루어진다.

 

문자열 연산에 대해 이제 알아보자.

문자열 연산에는 기본적으로 + 와 *가 있다.

+ : 문자열 더하기 ex) hello + world => hello world

* : 문자열 반복 ex) hi*2 => hihi

txt1 = 'hello'
txt2 = 'world'
print(txt1 + ' ' +txt2)

결과값으로 hello world가 나오는 것을 확인할 수가 있다.

 


변수 할당에 대해 내용을 알아보자.

변수 할당은 다른 언어와 크게 다른 점이 없지만, 제일 큰 장점은 변수 타입을 따로 선언을 안 해주어도 된다는 것이다.

C에서는 int형 정수를 선언해주기 위해서 int a 라고 선언을 해야했지만, 파이썬에서는 안 해도된다.

#변수1, 변수2 = 값1, 값2
num3, num4 =100, 200
print(num3+num4)

위의 코드를 보면 알 수 있듯이, 대입 연산자를 이용해서 변수를 할당할 수 있다.

 

이제 간단한 퀴즈를 한 번 풀어보자.

user1, user2 변수를 선언하고 서로 변경해보자.

방법에 2가지 방법이 있다.

#변수 선언
user1 = 'kim'
user2 = 'Nam'

print('user1=',user1)
print('user2=',user2)

#첫 번째 방법
user1, user2 = user2, user1

print('user1=',user1)
print('user2=',user2)

#두 번째 방법
temp = user1
user1 = user2
user2 =temp

print('user1=',user1)
print('user2=',user2)

첫 번째 방법으로는 처음에 변수를 선언하고 그 값을 다시 할당하는 것이다.

user1에 kim, user2에 Nam을 선언하고, 이후에 user1 = user2를 선언하면, user1은 Nam이 할당되게된다.

 

두 번째 방법으로는 swap의 개념을 배울 때 자주 사용하는 temp 변수 선언하고 계속 맞바꾸는 방법이다.

 

print문에 대해 간략하게 알아보았으니 이제 입력문에 대해 알아보자.

입력문에 사용되는 명령어는  input()이다.

여기서 알아야 할 가장 중요한 점은 input을 통해 받은 값의 형태는 string 타입이란 것이다.

message = input('메세지를 입력하세요 :')
print('message = ', message)

위의  명령문을 실행해보면, 메세지를 입력받은 그대로 출력되는 것을 확인할 수가 있다.

여기서 이제, input()의 데이터형이 String 형태인데, 다른 형태의 입력에 대한 type도 확인을 하는 경우가 많다.

그래서 데이터 형을 확인하기 위해서는 type() 명령문을 사용하면 된다.

 

type( 변수 / 값)

 

이는 자료형 확인할 때 사용하는 명령문으로써, 나중에 Casting이라는 자료형 변환을 할 때, 데이터 형 확인 시 많이 사용한다.

var1 = '1234' #string
var2 = 1234 #int
var3 = 12.34 #float
print('var1 : ', var1, float(var1), 'var2 :', var2, str(var2), 'var3 : ',var3, int(var3))

 

위 코드는 각기 다른 데이터 형태로 입력을 받아서 데이터 형을 바꾸어보는 코드이다.

처음 변수 할당 시에는 각각 string, int, float 형태로 되있으나, 4번째 줄의 명령문에서 각각 다른 데이터 형으로

캐스팅을 진행해주면, 처음 할당된 변수의 데이터형은 바뀌게 된다. 이의 결과는 type()명령문을 통해 확인할 수가 있다.

 


이제 연산자에 대해 알아보자.

사칙연산 +, -, *, / 에 대해서는 기본적으로 다 알고 있을 것이다. 여기서 추가적으로 알면 좋은 것은 '**'는 제곱의 의미를 가지고 있다.

 

중요한 대입 연산자에 대해 설명을 이어가보자.

대입연산자는 크게, += / -= / *= / /= 이렇게 있는데, 다른 언어에도 존재하는 연산자지만, 왜 중요하냐면, 파이썬에서는 ++, -- 와같은 증감 연산자가 없으므로, 증감을 나타내기 위해서는 대입연산자를 사용해야한다.

 

myNum3 = 100
print('myNum3 = ',myNum3)
#100
myNum3 += 100
print('myNum3 = ',myNum3)
#200
myNum3 *= 100
print('myNum3 = ',myNum3)
#20000

관계 연산자는 결과값이 True / False로 나온다.

종류로는 == , != , >, <, >=, <= 가 있다.

print(100>10) #True
print(100<=10) #False
print(100!=10) #True
print(100==10) #False

논리 연산자 역시 결과값이 True / False 이며 and, or, not가 있다.

추가로 알아둬야 할 것은 is, is not이 있다는 것이다. 이는 값이 같은지 다른지를 비교하는 것이며

결과값 역시 true/ false로 나온다.

stName1 = 'Maria'
stName2 = 'Bill'
print(stName1 is stName2)
print(stName1 is not stName2)

문자열에서 또 다루어야 할 점은 인덱싱이다.

인덱싱은 문자열의 위치를 숫자로 표시하며, 쉽게 생각하면 배열로 생각하면 이해가 쉽다

숫자 0이 첫번째 위치를 나타낸다.

a = 'python'
print(a[0],a[1], a[-1])

print("a의 전체 길이 : ", len(a),\
      type(len(a)))
      
#a[0] = p, a[1] = y, a[-1] = n

인덱싱에서 중요한 기능은 슬라이싱이다. 슬라이싱은 말 그래도 자른다는 표현인데, 문자열 일부를 잘라서 표시할 수가 있다. 구조적으로는 문자열 변수[start:end:step] 이며, 이는 차후에 for문의 range를 사용할 때도 사용하는 개념이니 잘 기억해두자.

#start 부터 end-1 까지 step 수만큼 건너뛰기
print(a[0:4:2]) #pt
print(a[0:4]) #pyth
print(a[0:-1]) #pytho
print(a[-5:-1]) #ytho

파이썬의 새로운 기능인 포맷팅에 대해서 알아보자. 흔히 출력 방식에 사용하며, %를 이용한 포맷, .format(), f포맷의 방식이 있다. 예제를 통해서 알아보자

today = '수요일'
yesterday = '목요일'

print('오늘은 {} 입니다.'.format(today)) #.format() 을 이용
print("오늘은 %s 입니다. 내일은 %s 입니다" % (today, yesterday)) #%를 이용한 포맷
print(f'오늘은 {today} 입니다.') #f포맷 방식

위의 결과로 오늘은 수요일입니다라는 동일한 값을 출력하는 것을 볼 수 있다.

 

추가적으로 %에 있어서, 10진수, 16진수, 8진수, 실수의 표기법에 대해서도 간략하게 설명해보려한다.

10진수 : %d  //  16진수 : %x  //  8진수 : %o // 실수 : %f

 

특히 실수의 표현에 있어서 소수점까지 상세히 표현하는 표기법은

% . 소수점 이하 자리수 f 의 구조를 가진다. 예를 들어 %.2f는 소수점 두 번째까지 나타낸다.

 

포맷팅과 실수 표현의 조합을 통해서 이해를 해보자

f 포맷팅의 소수점 처리방법을 설명할 것이며, 문자열 {변수명 : 전체자릿수.소수점이하 자리수f}의 구조를 가진다.

height = 155.67890
print(f'키 {height:.2f}') #키 155.68
print(f'키 {height:10.1f}') # 키      155.7
print(f'키 {height:.3f}') # 키 155.679

마지막으로 문자열 내장 함수를 알아보자.

이번 시간에 알아볼 함수로는 count, find, index , upper, lower , join, strip이 있다.

사용 방법으로는 문자열.count() 와 같은 방식으로 사용하면 된다.

#문자열변수.count(찾고자하는 문자열)
a = 'hobby'
a.count('b') # 2


#특정 문자열의 시작인덱스 위치반환
#문자열변수.find(찾고자하는 문자열)
a = 'Python is the best choice'
a.find('b') # 14 (문자열에서 b가 처음 나온 위치)
#찾고자하는 문자열이 없는 경우 -1을 반환한다.

a = 'Life is too short'
a.index('t') # 8
#찾고자하는 문자열이 없는 경우 error

#upper는 모든 글자 대문자로, lower는 소문자로 변환시켜준다.
a = 'hobby'.upper() # HOBBY
b = 'HOBBY'.lower() # hobby

#문자열.replace(찾고자하는 문자열, 교체 문자열)
a = 'python'
a.replace(p,y) # yython

#'연결문자'.join(문자열변수)
myWord = 'python'
print(myWord) #python
print('*'.join(myWord)) #p*y*t*h*o*n

#좌우공백 제거하기
#문자열.strip() / rstrip, lstrip
myWord2 = '  python  '
print(myWord2.strip()) #python

 

이를 통해서 문자열 내장함수까지 알아보았다.

다음 시간에는 집합자료형에 대해서 알아보는 시간을 가지도록 하겠다.

728x90
반응형

'python' 카테고리의 다른 글

day4-2. lambda 함수, 내장함수  (0) 2020.01.06
day4-1. 함수 (Function)  (0) 2020.01.06
day3-2. 반복문 (for , while)  (0) 2020.01.05
day3-1. if ~ else 문  (0) 2020.01.05
day2. 집합 자료형  (0) 2020.01.01
Comments