Python
PyCharm - 연산자, 문자열(String) (05.09)
jomericano
2022. 5. 11. 20:57
# 연산자
# 특수한 연산을 수행하도록 지시하는 특수한 기호
# 산술, 비교, 논리, 문자열, 조건 (삼항)
# 산술 연산자
# 간단한 사칙연산을 수행
a=10
b=5
print('a+b=',a+b)
print('a+b=',a-b)
print('a+b=',a*b)
print('a+b=',a/b)
# 추가 산술연산자 (**, %, //)
print('a**b=',a**b) #거듭제곱
print('a%b=',a%b) #나머지
print('a//b=',a//b) #몫
# 증가/감소 연산자 (+=, -=)
c=1
c+=1 # c=c+1
c-=1 # c=c-1
# 비교연산자 ( ==, !=, >, <, >=, <=)
print(a==b)
print(a!=b)
print(a>b)
print(a<b)
print(a>=b)
print(a<=b)
# 논리 연산자 (and, or, not)
print ( (a==b) and (a>5))
print ( (a==b) or (a>5))
print ( not (a==5))
# 멤버쉽 연산자 : in, not in
d=[1,2,3,4,5,6]
print(3 in d)
print(99 in d)
#식별 연산자 : is
# 파이썬에서 문자열은 문자열상수풀에 생성
# 문자열 생성시 기존에 만든 문자열과 같으면 기존 문자열을 재활용함
e='abc'
f=e
g='abc'
print (f is e, id(f) ,id(e)) # f,e는 서로 동일한 객체를 가르킴
print (f is g, f ,g, id(f),id(g))
print (f is d,f,d)
# 삼항 연산자 : 참일때 값 if조건 else 거짓일때 값
# 임의의 숫자가 짝수인가 홀수인가 확인하는 코드
num = 10
print('짝수' if (num % 2==0) else '홀수')
# 연산자 우선순위
# **
# */ * / //
# + -
# 비교, 할당, 식별, 멤버, 논리
print(' /\\_/\\ ') #escape sequence 주의! 역슬래시 사용하여 특수문자 나타냄
# ex3 - 파이썬 변수 선언가능
rate1 = '' # 사용가능
# 1stPlayer # 변수명이 숫자로 시작함
# myprogram.java = 11 # 기호는 _만 사용가능
long = 1111 # 사용가능
TimeLimit =123 # 사용가능
numberOfWindows =123 # 사용가능
# ex4)
x = 1
y = 2
z = 3
print(3 * x, 3 * x + y, (x + y) / 7, ((3 * x) + y) / (z + 2))
s0 = 1
vo = 2
t = 3
g = 9.8
print(s0 + vo * t + 1/2 * g * t ** 2)
# ex7
print(3 + 4.5 * 2 + 27 / 8)
print(True or False and 3 < 4 or not (5 == 7)) # 자바논리 연산자 : ||(or), &&(and), !(not)
print(True or 3 < 5 and 6 >= 2)
# print(7 % 4 + 3 - 2 / 6 * 'Z') # 숫자가 아닌 대상을 곱할 수 없음
# print('d' + 1 + 'm' % 2/3)
print(5.0/3+3/3)
print(53 % 21< 45 / 18)
print((4 < 6) or True and False or False and (2 > 3))
print(7 - (3 + 8 * 6 + 3) - (2 + 5 * 2))
# print (not True > 'A')
# 비교연산자의 피연산자로 문자는 사용불가!
# True를 숫자로 변환 => 1
# 논리 연산자 우선순위 : not , and , or
# 논리 연산시 경우에 따라 단축식 short-circuit 평가가 적용될 수 있음 (앞이 True or 이면 무조건 T)
# ex10
print(27 / 13 + 4)
print(27 / 13 + 4.0)
print(42.7 % 3 + 18)
print((3 < 4) and 5 / 8) # T and 5 = 5
print(23/5 + 23 / 5.0)
# print(2.0 + 'a')
print( 'a' + 'b') # 문자에 + 연산자를 사용하면 문자들을 결합
# print('a' / 'b')
print('a' and not 'b')
print('a' and 'b')
# print(float('a') / 'b') # 문자는 형변환 불가!
# ex11
name = '홍길동'
weight = 55.5
age = 35
print(name, weight, age)
# ex12
birthYear = 1990
currentYear = 2022
isPassBirth = True # 생일지남여부
age = (currentYear - birthYear)
print(age)
print('만나이', (age + 1) if isPassBirth else age)
for n in range(2,9):
print (7, "X", n, "=", 7 * n)
# 형식화된 문자열 출력1
# print 함수에서 제공하는 format char : 정수%d, 퍼센트%f, %s
print('7 x 1 = %2d' % (7*1))
# 형식화된 문자열 출력2
print('7 x 1 = {0:2d}'.format((7*1)))
# 형식화된 문자열 출력3 f - string 추천
print(f'7 x 1 = {7*1:2d}')
print(f'7 x 1 = {7*2:2d}')
print(f'1 x 1 = {1*1:8d}')
print("-----------구구단을 출력합니다.-------------")
for x in range(2, 10):
print("------- [" + str(x) + "단] -------")
for y in range(1, 10):
print(x, "X", y, "=", x*y)
# 입력파트
su=5
dan=800
# 계산파트
price = su * dan
# 출력파트
print('su주소', id(su))
print('dan주소', id(dan))
print('금액=', price)
print(f'금액={price:17d}')
y=2.5*x**2+3.3*x+6
x=2
print(f'2차 방정식 결과={y}')
fat=25
fro=45
tan=520
totcal=fat*9+fro*4+tan*4
print('지방의 그램을 입력하세요:',25)
print('탄수화물의 그램을 입력하세요:',520)
print('단백질의 그램을 입력하세요:', 45)
print('총칼로리:', totcal,'cal')
# input 사용해서 문제 해결
# 변수 = input(입력메세지)
# input 함수로 입력받은 값은 기본적으로 문자형임
# 따라서 수식에 적절히 사용하려면 형변환 필요
fat = int(input('지방의 그램을 입력하세요:'))
carbo = int(input('탄수화물의 그램을 입력하세요:'))
protein = int(input('단백질의 그램을 입력하세요:'))
print(f'총칼로리 : {totcal} cal')
# 문자열 string
# 문자char 또는 단어word로 구성된 문자들의 집합
# 문자열 선언 방법
# "" 또는 '' '''''' """"""를 사용
str1 = 'hello' # 추천
str2 = "Hello"
str3 = '''
Hello, World!!''' # 문서 작성시 추천
# 문자열 연산
# 문자열을 더하거나 곱할수 있음
print('Hello,' + ' World!!') # 문자열 결합
print('Hello,' * 3) # 횟수만큼 반복
# 문자열 인덱싱과 슬라이싱
# 인덱싱은 문자열의 각 문자에 위치를 의미하는 순번이 매겨져 있다는 의미
# 슬라이싱은 문자열 인덱싱을 이용해서 문자열의 일부를 추출할 수 있다는 의미
# 문자열의 일부를 추출할 수 있다는 의미
str1 = 'Hello, World!!'
# 01234567890123 # 양의 인덱스 왼->오
# 43210987654321 # 음의 인덱스 왼<-오
# 슬라이싱 방법 : 변수명 [시작순번:끝순번:증감순번]
print(str1) # 전체문장출력
print(str1[0:5]) # Hello 추출
print(str1[7:12]) # World 추출
print(str1[-7:-2]) # World 추출
print(str1[0:14:2]) # 짝수순번 문자 추출 (0,2,4,...)
print(str1[1:14:2]) # 홀수순번 문자 추출 (1,3,5,...)
print(str1[::2]) # 짝수순번 문자 추출 (0,2,4,...)
# 문자열의 마지막 인덱스 또는 첫번째 인덱스는 생략 가능
# ex) 주민번호에서 생년과 월, 일, 성별을 추출하여 각 변수에 적절히 저장하세요.
jumin = '202205092123456'
year = print(jumin[0:4])
month = print(jumin[4:6])
day = print(jumin[6:8])
gender = print(jumin[8:9])
str1.upper()