본문 바로가기

Python

3. 연산자

 

1. 연산자
-산술연산자 : 수치형
+ 더하기
- 빼기
* 곱하기
/ 나누기
** 제곱    ex) 2**3은 2의 3제곱 
// 정수로 나누었을 때의 몫 7//4 의 결과 1 즉, 앞에서 뒤에꺼 나눈 몫
% 정수로 나누었을 때의 나머지 7%4의 결과 3 즉, 앞에서 뒤에꺼 나눈 나머지
(   ) 다른 계산보다 괄호 안 먼저 계산 // 수학이랑 똑같다. 

수치 계산에서 3+True 는 가능 True 는 자동형변환이어서 1로 변환됨.
'''

x, y = 100, 3
print(x, '*',y,'=', x*y)
print(y, '**',x,'=', y**x)
print(x, '/',y,'=', x/y)
print(x, '//',y,'=', x//y)
print(x, '%',y,'=', x%y)
print(100-23*2)
print((100-23)*2)

 

'''
대입 연산자 ( 할당 연산자 )
: 수치형 데이터 , +=,-=,*=,/=
: 수치데이터변수 대입연산자 숫자데이터 
:  예시) num += 1
: 파이썬은 중감연산자(++,--) 지원하지 않는다.
'''
#대입 연산자 테스트
cnt = 0
print(cnt)
cnt +=2     #cnt=cnt+2 와 동일
print(cnt)
cnt -=5      #cnt=cnt-5와 동일
print(cnt)

 

'''
관계 연산자 ( = 비교 연산자)
: 결과값이 True 또는 False
: > , < , >=(크거나같다.) , <=(작거나같다), ==(같다), !=(같지않다)


'''

x, y, z = 100, 30, 100
user1 = '홍길동'
user2 = '고길동'
print(x>y)
print(x<y)
print(x==z)
print(x!=y)
print(user1 == user2)
print(user1 != user2)

 

'''
논리 연산자
결과 값 : True or False
and : 교집합 / 둘 다 참이어야 참 / ex) 로그인 할때 이용
or : 합집합 / 둘 중 하나만 참이어도 참 
not : 여집합 / 값이 참이면 거짓, 거짓이면 참
'''

user_id = 'abcd'
user_pwd = '1234abcd'
user_age = 22
print((user_id == 'abcd') and (user_pwd == '1234abcd'))
print((user_id == 'abcd') and (user_pwd == '가나다라'))
print((user_id == '도레미파') or (user_pwd == '1234abcd'))
print((user_id == '도레미파') or (user_pwd == '가나다라'))
print(user_age>19, not(user_age>19))

 

'''
문자열 연산자
: + , Join , 연결 , 문자열데이터 + 문자열 변수
: * , 반복 , (문자열데이터|문자열 변수)*정수 -> 정수값 만큼 반복출력 

'''

print('^-'*10)
user_name = '홍길동'
user_addr = '우이동'
print(user_name , '님의 거주지는', user_addr, '입니다.')
print(user_name + ' 님의 거주지는 '+ user_addr + ' 입니다.')
#홍길동 님의 거주지는 우이동 입니다.

 

2. 인덱싱과 슬라이싱

'''
문자열 인덱싱
-문자열을 구성하는 낱글자의 위치값
-문자열변수[숫자]
-인덱스 숫자는 정수형태이고 0이면 첫번째 위치인덱스, -1이면 마지막 위치 인덱스

'''

sample = '가나다라마바사'
print('문자열의 길이는?',len(sample)) #len() : 문자열의 길이를 반환
print(sample[0],sample[-1]) #첫번째 글자와 마지막 글자 표시
print(sample[0],sample[-7],sample[len(sample)*-1]) #가 가 가
print(sample[-1],sample[6],sample[len(sample)-1]) #사 사 사

 

'''
문자열 슬라이스
-문자열 데이터의 일부분 추출 (start ~ end-1)
-문자열변수[start:end:step]
-start는 시작인덱스, 생략시 처음위치인덱스 즉 0
-end는 마지막인덱스, 생략시 문자열 데이터의 마지막 위치
-step은 건너뛰기, 생략시 1 (다음글자), 음수라면 역순

'''

sample = '0123456789'#숫자로 구성된 문자열 데이터 정의
print(sample[::]) #전체 글자 출력, 0123456789
print(sample[0:2]) #01 why? end-1까지 출력하므로 0번부터 1번까지 출력됨
print(sample[0:3], sample[:3]) #02 why? end-1까지 출력하므로 0번부터 2번까지 출력됨
print(sample[2:5]) #234
print(sample[-8:-5]) #234
print(sample[5:10], sample[5:]) #56789 출력
print(sample[::2]) #홀수번째 글자만 출력 02468
print(sample[1::2]) #짝수번째 글자만 출력 13579

#step 값이 음수인 경우
print(sample[::-1]) #9876543210
print(sample[::-2]) #97531
#321만 출력
sample2 = sample[1:4] #123 부분을 슬라이싱해서 새로운 변수로 정의
print(sample2, sample2[::-1])

#Quiz
#홍길동씨의 주민등록번호는 881120-1068234이다.
#주민등록번호를 변수로 정의한 후 다음과 같이 출력하여라.
# 1) 주민번호에 해당하는 데이터를 문자열 형태의 변수로 정의한다.
# 2) '-'를 기준으로 해서 두 구역으로 범위를 설정해서 각각의 변수로 정의한다.
# 3) 2번에서 정의한 변수를 각각 출력한다.
# 4) 문자열 연산자 중에서 *을 이용해서 특정 문자를 반복하여 출력한다.

#내가푼거
jumin = '881120-1068234'
print('연월일'+' : '+jumin[:6])
print('숫자'+ ': '+jumin[7:])
print(jumin[:7]+'*'*7)

#해설

jumin = '881120-1068234'
jumin1 = jumin[:6]
jumin2 = jumin[7:]
print('연월일 : '+ jumin1)
print('숫자 : '+jumin2)
print(jumin1 + '- ' + ('*')*7)

 

'Python' 카테고리의 다른 글

6. 딕셔너리, 세트  (0) 2024.10.02
5. 리스트 , 튜플  (4) 2024.10.02
4. 문자열 다루기  (3) 2024.10.02
2. 자료형과 변수  (1) 2024.10.02
1. 파이썬 설치 및 기본설정  (3) 2024.10.02