var1 = "Hello python"
print(var1)
print( id(var1) )
Hello python 1891991529072
var1 = 100
print(var1)
print( id(var1) )
100 140709993229808
var2 = 150.25
print(var2)
print( id(var2) )
150.25 1891990919824
var3 = True
print(var3)
print( id(var3) )
True 140709992704336
import keyword # 모듈 임포트
python_keyword = keyword.kwlist
print(python_keyword)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
var1 = "Hello python"
print(var1)
print(type(var1))
Hello python <class 'str'>
var1 = 100
print(var1)
print(type(var1))
100 <class 'int'>
var2 = 150.25
print(var2)
print(type(var2))
150.25 <class 'float'>
var3 = True
print(var3)
print(type(var3))
True <class 'bool'>
# 실수 -> 정수
a = int(10.5)
b = int(20.42)
add = a + b
print('add = ', add)
add = 30
# 정수 -> 실수
a = float(10) # 키보드 -> 실수
b = float(20) #
add2 = a + b
print('add2 = ', add2)
add2 = 30.0
# 논리형 -> 정수
print(int(True)) # 1
print(int(False)) # 0
1 0
# 문자형 -> 정수
st = '10'
print( int(st) ** 2 )
100
+, -, , /, %, *
¶# 1. 산술연산자
num1 = 100 # 피연산자1
num2 = 20 # 피연산자2
add = num1 + num2 # 덧셈
print('add=', add)
add= 120
sub = num1 - num2 # 뺄셈
print('sub=', sub) # 80
sub= 80
mul = num1 * num2 # 곱셈
print('mul=', mul)
mul= 2000
div = num1 / num2 # 나눗셈
print('div=', div)
div= 5.0
div2 = num1 % num2 # 나머지 계산
print('div2=', div2) # 0
div2= 0
square = num1**2 # 제곱 계산(num1 ** 2)
print('square=', square) # 10000
square= 10000
# 동등비교
# 두 변수의 값이 같은지 비교
bool_result = num1 == num2
print(bool_result)
# 두 변수의 값이 다른지 비교
bool_result = num1 != num2
print(bool_result)
False True
# 크기비교
# num1값이 큰지 비교
bool_result = num1 > num2
print(bool_result)
# num1값이 크거나 같은지 비교
bool_result = num1 >= num2
print(bool_result)
# num2 이 큰지 비교
bool_result = num1 < num2
print(bool_result)
# num2 이 크거나 같은지 비교
bool_result = num1 <= num2
print(bool_result)
True True False False
and, or, not
¶# 두 관계식이 같은지 판단
log_result = num1 >= 50 and num2 <=10
print(log_result) # FALSE
# 두 관계식 중 하나라도 같은지 판단
log_result = num1 >= 50 or num2 <=10
print(log_result)
False True
# 관계식 판단
log_result = num1 >= 50
print(log_result)
# 괄호 안의 관계식 판단 결과에 대한 부정
log_result = not(num1 >= 50)
print(log_result)
True False
=, *
¶=
: 하나의 값 할당*
: 여러개의 값을 묶어서 할당i = tot = 10
i += 1
tot += i
print(i, tot)
11 21
cnt = 0
cnt = cnt + 1 # 카운터 변수
cnt += 1 # 카운터 변수
#cnt++ # 파이선에는 없는 연산자
print(cnt) # 2
2
tot = 0
tot += cnt # 누적변수 : tot = 0 + 2
print(tot)
2
v2, v1 = v1, v2
print(v1, v2)
200 100
lst = [1,2,3,4,5]
v1, *v2 = lst
print(v1, v2) # 1 [2, 3, 4, 5]
1 [2, 3, 4, 5]
*v1, v2 = lst
print(v1, v2) # [1, 2, 3, 4] 5
[1, 2, 3, 4] 5
*v1, v2, v3 = lst
print(v1, v2, v3) # [1, 2, 3] 4 5
[1, 2, 3] 4 5
# - 키보드 입력 : 키보드 값 입력을 변수에 할당하기
num = input("숫자 입력 : ")
print('num type : ', type(num) ) # <class 'str'>
print('num = ', num)
print('num = ', num*2)
숫자 입력 : 10 num type : <class 'str'> num = 10 num = 1010
# str -> int(형변환)
num1 = int( input("숫자 입력 : ") )
print('num1 = ', num1*2)
숫자 입력 : 10 num1 = 20
# str -> float(형변환)
num2 = float(input("숫자 입력 : "))
숫자 입력 : 14.5
# 실수 = 정수 + 실수
result = num1 + num2
print('result = ', result)
result = 24.5
help(print)
Help on built-in function print in module builtins: print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream.
# value 출력
print("value =", 10 + 20 + 30 + 40 + 50)
value = 150
# sep 인수 이용 : 값과 값을 특수문자로 구분
print("010", "1234", "5678", sep="-")
010-1234-5678
# end 인수 사용
print("value =", 10, end = ", ")
print("value =", 20)
value = 10, value = 20
print( format(3.14159, '8.3f') ) # 3.142
3.142
print('원주율 = ', format(3.14159, '8.3f'))
원주율 = 3.142
print( format(12345, '10d')) # 12345
12345
print( format(12345, '3,d')) # 12,345
12,345
num1 = 10; num2 = 20
tot = num1 + num2
print('10 + 20 = %d' %tot )
print('%d + %d = %d' %(num1, num2, tot) )
print('이름은 %s 이고, 나이는 %d 입니다.' %('홍길동', 35))
10 + 20 = 30 10 + 20 = 30 이름은 홍길동 이고, 나이는 35 입니다.
print('전체 %d%%가 170cm 이상이다.' %50)
전체 50%가 170cm 이상이다.
# 외부 상수 받기
# 형식) print( '{ }' .format(값) )
print('이름은 {} 이고, 나이는 {} 입니다.' .format('홍길동', 35))
print('이름은 {1} 이고, 나이는 {0} 입니다.' .format(35, '홍길동'))
이름은 홍길동 이고, 나이는 35 입니다. 이름은 홍길동 이고, 나이는 35 입니다.
# 축약형
name = "홍길동"; age = 35
print(f'이름은 {name} 이고, 나이는 {age} 입니다.')
이름은 홍길동 이고, 나이는 35 입니다.
# 축약형으로 Sql 쿼리만들기
uid = input("id input : ")
query = f"select * from member uid = {uid}"
print(query)
id input : admin select * from member uid = admin
', ", '''
¶oneLine = 'this is one line string'
oneLine2 = "this is one line string"
multiLine = """this is
multi line
string"""
multiLine2 ="this is\nmulti line\nstring"
print(oneLine)
print(multiLine)
print(multiLine2)
this is one line string this is multi line string this is multi line string
+, *
¶string = "PYTHON"
print(string[0])
print(string[5])
print(string[-1])
print(string[-6])
P N N P
print("python" + " program") # 결합연산자
python program
print("python-" + 3.7 + ".exe") # error
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-71-a8f9ae3fd7c7> in <module> ----> 1 print("python-" + 3.7 + ".exe") # error TypeError: can only concatenate str (not "float") to str
print("python-" + str(3.7) + ".exe")
python-3.7.exe
print("*" * 30)
******************************
:
¶oneLine = 'this is one line string'
oneLine
'this is one line string'
# 왼쪽 기준
print(oneLine)
print("문자열 길이 : ", len(oneLine))
print(oneLine[0:4]) # [start:end-1] - this
print(oneLine[:4]) # [:end-1] : 처음부터 ~
print(oneLine[:]) # 전체 원소 : this is one line string
print(oneLine[::2]) # 2의 배수 index : ti soeln tig
this is one line string 문자열 길이 : 23 this this this is one line string ti soeln tig
# 오른쪽 기준
print(oneLine[0:-1:2])
print(oneLine[-6:-1]) # strin
print(oneLine[-1:-6:-2])
print(oneLine[-6:]) # [start:end] - string
ti soeln ti strin git string
# 부분 문자열 생성
subString = oneLine[-11:]
print(subString) # line string
line string
# 특정 글자 수 반환
oneLine = "this is one line string"
print('t 글자 수 : ', oneLine.count('t'))
t 글자 수 : 2
# 접두어 문자 비교 판단
print(oneLine.startswith('this'))
print(oneLine.startswith('that'))
True False
# 문자열 교체
print(oneLine.replace('this', 'that'))
oneLine # 바뀌지 않았음
that is one line string
'this is one line string'
# 문자열 분리(split) : 문단 -> 문장
multiLine = """this is
multi line
string"""
sent = multiLine.split('\n')
print('문장 : ', sent)
문장 : ['this is', 'multi line', 'string']
# 문자열 분리(split)2 : 문장 -> 단어
words = oneLine.split() # split(sep = ' ') : default
print('단어 :', words) # ['this', 'is', 'one', 'line', 'string']
단어 : ['this', 'is', 'one', 'line', 'string']
# 문자열 결합(join) : 단어들 -> 문장
sent2 = ','.join(words) # '구분자'.join(string) : 'this is',
print(sent2) # this,is,one,line,string
print(type(sent2))
this,is,one,line,string <class 'str'>
# escape 처리
print('\n출력 이스케이프 문자') # \n : 줄 바꿈 기능
print('\\n출력 이스케이프 차단1') # escape 기능 차단1 - \
print(r'\n출력 이스케이프 차단2') # escape 기능 차단2 - r
출력 이스케이프 문자 \n출력 이스케이프 차단1 \n출력 이스케이프 차단2
#경로 표현 : C:\Python\test
print('path =', 'C:\Python\test')
print('path =', 'C:\\Python\\test')
print('path =', r'C:\Python\test')
path = C:\Python est path = C:\Python\test path = C:\Python\test