
0. 개요
오늘 파이썬 수업을 다 들었는데, 아는 만큼만 좀 적어보려고 한다.
지금 코드카트 문제를 푸는데 하나도 이해가 안가서 문제를 푸는데 어려움도 있어서 다시 문제를 풀어보며 정리해본다는 생각으로 오늘의 TIL 을 써보도록 한다.
1. 파이썬 기본 값 쓰는 방법
a = 5
b = 7
a + b = result
print (result)
a - b = result
print (result)
a * b = result
print (result)
a / b = result
print (result)
기본적으로 파이썬도 사칙 연산은 가능하다. print 혹은 return 으로 출력하면 가능한 듯 하다. 약간, 수학같은 느낌? 스스로 공식을 세워서 문제를 풀어나가는 방식이라고 생각한다. 이건 아주 기본 적인 거고, 이 외에도 다른 것도 가능하다.
a = 8
a = a + 5 # 8에 5를 더한 값을 다시 a 에 저장한다.
print(a) #return 은 적용이 안되는데, 그 이유에 대해서 찾아봐야겠다.
일단 여기에 return 을 넣어보니까 그건 안되더라... 보니까 return 은 함수를 시켰을 때, 돌려받는 함수인데, 이건 더한 값을저장하는 함수라서 해당은 안되는 모양이다. 이외에도 몫/나머지/거듭제곱/참과 거짓 도 모두 출력이 가능했다.
a // b (몫)
a % b (나머지)
a ** b (거듭제곱)
이렇게 표시할 수 있다. 그래서 프로그래머스 에서 함수를 이렇게 냈던 기억이 난다.
[프로그래머스 문제 3번]
정수 num1, num2가 매개변수로 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요.
[제한사항] 0 < num1 ≤ 100 // 0 < num2 ≤ 100
def solution(num1, num2):
answer = 0
return answer
초기값이 이거라고 한다면, 저 answer 란에 몫에 대한 것을 구하면 된다.
def solution(num1, num2):
answer = num1 // num2
return answer
2. Bool 자료형
[1] 참 / 거짓 불(boolean) 자료형
x = True #참이다
y = False #거짓이다
z = true (x) ##이렇게쓰면 변수명이라고 생각해서 참과 거짓으로 구분하지 못한다.
True = 1 (x) ## True/False는 변수명으로 쓸 수 없다.
[2] 비교 연산자
4 > 2 #크다
5 < 1 #작다
6 >= 5 #크거나 같다
4 <= 4 #작거나 같다
3 == 5 #같다
4 != 7 #같지 않다
[3] 논리 연산자
a = 4 > 2
not a #NOT : 연산자를 참에서 거짓, 거짓에서 참으로 바꿔준다.
a and b #AND : 모두 참이어야지만 참을 반환한다.
a or b #OR : 둘 중 하나만 참이면 참이다.
SQL 와 동일하게 NOT 은 아니다 <> , and 는 a와 b 가 모두 충족해야 되는 것, or 는 둘 중 하나라도 만족하면 되는것
여기까지는 다르지 않다. 쓰는 형식에 따라서는 좀 다를 수 있지만.
[프로그래머스 5번] 숫자 비교하기
정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.
제한사항 0 ≤ num1 ≤ 10,000 // 0 ≤ num2 ≤ 10,000
def solution(num1, num2):
answer = 0
return answer
초기에는 이렇게 나온다. 결국, num 1 과 num2 가 같은지 다른지 구분하는 문제이다.
num 1 =/= num2 면 -1, num1 == num2 1 을 출력하라는 문제니까 아직 여기서는 안적은 조건문 식을 적으면 적절할 거 같다. 그러면 결론적으로 값은 동일하니까.
def solution(num1,num2):
if num1 == num2 :
answer = 1
else :
answer = -1
return answer
결론적으로 만일 같으면 1 아니면 -1 을 출력하라고 간단히만 만들였다. 일단은 정답! 여기서 주목할 건 == 인데, 그냥 = 만 쓰면 안되고 '=='로 써야하는 점이 인상깊었다.
3. 문자열
문자열은 작은 따옴표('')와 큰 따옴표("")를 사용해서 데이터화 해서 사용할 수 있다. 이를 따옴표로 사용하지 않는 경우 문자가 아닌 개체 값으로 인식하므로 이를 조심해야 한다.
first_name = "harry"
last_name = "Potter"
print(first_name + last_name)
이러면 '해리 포터'로 출력되지만...
first_name = harry
last_name = "Potter"
print(first_name + last_name)
이렇게 출력하면 아래처럼 오류나면서 더 이상 값이 출력이 안된다.

문자열의 길이는 len() 함수를 써서 구할 수 있다. 일단은 아무거나 써서 테스트 해보기로 했다.
sentence = '오늘하루도 아자아자 화이팅!'
print(len(sentence))
이러면 값이 15로 나온다. 오/늘/하/루/도/ /아/자/아/자/ /화/이/팅/! = 총 15자로 출력된다. 아무래도 공백 포함으로 글자수를 세는 듯 하다.
sentence = 'I love you so much!'
print(sentence.upper())
#I LOVE YOU SO MUCH!
sentence = 'I love you so much!'
print(sentence.lower())
#i love you so much!
upper = 모두 대문자로 출력, lower = 모두 소문자로 출력으로 나온다.
4. 특정 문자를 기준으로 문자열 나누거나 다른 문자로 바꾸기
보통 split 함수를 사용하는데, 그 양식은 이번에 배운 내용에는 없어서 다른 내용들을 구글링하면서 찾아보았다.
문자열.split() / 문자열.split('구분자') / 문자열.split('구분자', 분할횟수) / 문자열.split(sep='구분자', maxsplit='분할함수')
[1] 문자열.split()
split 함수에 아무런 파라미터를 넣지 않고 살행했을 경우, 띄어쓰기 혹은 개행문자에 맞춰서 문자열을 나눔.
str = 'a b c d e f g h'
res = str.split()
print(res)
#결과물
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
어떤 문자든 상관없이 모두 '문자열','문자열' 수능로 출력된다.
[2] 문자열.split('구분자')
str = 'a,b,c,d,e,f,g,h'
res = str.split(',')
print(res)
#결과물
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
[1]과 동일하게 '문자열','문자열'과 동일하게 출력된다. 단, 이는 구분자를 넣었으므로 다른 구분자를 넣을 경우 , 대신 다른 구분자가 들어갈 수 있다.
[3] 문자열.split('구분자', 분할 횟수)
str = 'a,b,c,d,e,f,g,h'
res = str.split(',',4)
print(res)
#결과물
['a', 'b', 'c', 'd', 'e,f,g,h']
( 1 , 2 , 3 , 4 , ---------)
str.split = , 로 구분하고 분활 횟수는 4개로 한다. 그래서 a / b / c / d 로 나눈 다음에 나머지 열은 'e,f,g,h' 로 , 로 구분하지만 한꺼번에 묶는다. 4 번째 이후로부터는 구분하지 않고서 한꺼번에 묶는다.
[4] 문자열.split(sep='구분자', maxsplit=분할횟수)
str = 'a,b,c,d,e,f,g,h'
res = str.split(sep=',',maxsplit=3)
print(res)
#결과물
['a', 'b', 'c', 'd,e,f,g,h']
( 1 , 2 , 3 , -----------)
동일하게 sep 은 구분자로 , 을 사용한다는 것을 나타내며, maxsplit 은 분활횟수를 나타내는 명령어이다. 마찬가지로 , 로 구분하고 3개로 분할하라고 했으므로 a / b / c 로 나눠서 한다.
5. 다른 문자로 바꾸기 replace
txt = '오리시-로판구-모치동'
print(txt.replace('-','<'))
#결과물
오리시<로판구<모치동
- 을 < 로 대치해서 바꾸는 함수.
6. 인덱싱과 슬라이싱
f="abcdefghijklmnopqrstuvwxyz"
print(f[1])
print(f[4:15])
print(f[8:])
print(f[:8])
print(f[:])
#결과물
# b
# efghijklmno
# ijklmnopqrstuvwxyz
# abcdefgh
# abcdefghijklmnopqrstuvwxyz
파이썬은 첫번쨰를 0으로 인식한다. 0 1 2 3 4 5 6 7 8 9 10 이런 식으로 인식한다.
- f[1] = 2번째 b 부터 출력
- f[4:15] = f[4]부터 f[15] 그래서 e 가 4번째, o 가 15번째
- f[8:] : f 8 부터 끝까지 | f[:8] 시작부터 f 8 까지
- f[:] 처음부터 끝까지.
파이썬을 정리하는데 아직 정리가 덜 됐다. split 함수를 배우는 것도 일단 자르는 것 조차도 이해가 안가서 계속 쳐다보면서 정리중이다.
파이썬 프로그래머스도 조금씩 문제풀이 중인데, 이걸 당최 어떻게 풀어야할지 고민이다. 프로그래머스 내부에서는 내가 현재 배운거랑 완전히 다르다 보니까... 머리에 한계가 온다.
일단은 파이썬 정리가 끝나면 SQLD 정리하면서, 프로그래머스 정리를 해야지....
'𝐓𝐈𝐋 (𝐅𝐨𝐫 𝐂𝐚𝐦𝐩) > 𝐂𝐎𝐃𝐈𝐍𝐆 (𝐒𝐐𝐋, 𝐏𝐘𝐓𝐇𝐎𝐍)' 카테고리의 다른 글
[𝟐𝟓.𝟎𝟑.𝟎𝟒] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟎 (0) | 2025.03.04 |
---|---|
[𝟐𝟓.𝟎𝟐.𝟐𝟖] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟗 (0) | 2025.02.28 |
[𝟐𝟓.𝟎𝟐.𝟐𝟎] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟓 (0) | 2025.02.20 |
[𝟐𝟓.𝟎𝟐.𝟏𝟗] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟒 (0) | 2025.02.19 |
[𝟐𝟓.𝟎𝟐.𝟏𝟖] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟑 (0) | 2025.02.18 |