분명 쌩 기초는 ‘코드잇’에서 다 땐 것 같은데;;
돌아서면 다 까묵어부러쓰…(금붕어 쉨)
그.래.서
다시 정리하기로 했다..
기본
출력
1
2
| print("hello world")
#출력값 : hello world
|
C++ 이나 Javascript 와는 다르게 걍 이렇게 적으면 출력이 된다 (;) 세미클론 이딴거 필요없다
1
2
3
| print('hello')
print("world")
#출력값 : hello world
|
심지어 (\n) 이딴거 없이도 줄바꿈 쌉가능이다 그리고 이 언어는 ” , ‘ 이거 다 인식을 한다..
1
2
3
| print('hello',end=' ')
print("world")
#출력값 : hello world
|
줄 바꿈을 포함 한다고 하는데, end 라는 매개변수 이용하면 이렇게 바꿀 수 있다. 이건 end=내용 넣겠다는 소리임
1
2
| print('hello', 'python', 'world')
#출력값: hello python world
|
여러값을 , 로 구분하면 자동으로 공백 ( ) 이 추가됨
1
2
| print('hello', 'python', 'world', sep='~')
#출력값 : hello~python~world
|
공백이 아닌 다르게 구분자를 쓴다면 sep 매개변수 사용함
1
2
3
4
5
| print(5+5)
print(12-2)
print(5*2)
print(100//10)
#출력값 : 10
|
기본적인 사칙연산 이런식으로 쓰지만!! ‘/’ 이거는 나누기 하면 .0 소수점까지 표기됨, ‘//’이거는 몫만, ‘%’ 이거는 나머지
1
2
3
| print("사과"*2)
print("사과"+"사과")
#출력값 : 사과사과
|
이 언어는 문자열에도 연산이 적용 가능한데 예시를 저러함
변수
1
2
3
4
5
6
| name = 'Bin'
age = 31
print(name)
print(age)
#출력값 : Bin
31
|
즈어어기 C++ 이나 Javascript 와는 다르게 변수 선언시 별도의 뭐가 필요없다 뭐 let 이라던지,*int 라던지 필요가 없다.
포맷
1
2
3
4
5
| name = 'Bin'
age = 31
print(f" my name is {name} and {age} years) #이런식으로 f"{변수} 이런식으로 출력하거나
print("my name is {} and {} years".format(name,age)) #이런식으로 .format(변수,변수) 이런게 함
print("my name is {1} and {0} years".format(age,name)) # 아니면 이렇게 인덱스 수를 정해줘서 하거나
|
이중에 편한걸로 하자.. 근데 나는 f”{변수} 형식이 편함.(밑에 자세히..)
함수
1
2
3
4
5
6
| def sum(n1,n2): #함수 정의
res = n1 + n2
return res
num = sum(2,4) #함수 호출
print(num)
#결과값 : 6
|
파라미터: 함수에 넘겨주는 값. return문: 함수의 반환값, 함수 종료 시킴. 이 언어는 함수 정의시 def 이걸 사용 Javascript 의 경우 function 그리고 함수 정의시 : 클론을 사용
1
2
3
4
5
6
| def myself(name,nationality="한국"):
print(name)
print(nationality)
myself("Bin")
#출력값 : Bin
한국
|
옵셔널 파라미터: 파라미터에 기본값을 설정해, 함수 호출 시 파라미터 값을 꼭 넘겨주지 않아오 됨. 단 마지막에 써야한다잉
자료형(Data Type)
숫자형 (Number)
정수 (Integer)
소수 (Floating Point)
숫자형 연산
| 연산 | 예시 | 결과 |
|---|
| 덧셈 | 7 + 4 | 11 |
| 뺄셈 | 7 - 4 | 3 |
| 곱셈 | 7 * 4 | 28 |
| 나눗셈 | 7 / 4 | 1.75 |
| 몫 | 7 // 4 | 1 |
| 나머지 | 7 % 4 | 3 |
| 거듭제곱 | 7 ** 4 | 2401 |
축약 연산자
| 연산 | 예시 |
|---|
+= | x = x + 3 → x += 3 |
-= | x = x - 3 → x -= 3 |
*= | x = x * 3 → x *= 3 |
/= | x = x / 3 → x /= 3 |
반올림 함수
1
2
3
| round(숫자, n) # 특정 숫자를 소수점 n번째까지 반올림
round(5.1479, 2)
# 출력값: 5.15
|
문자열 (String)
기본 형태
1
2
| "Hello" 'Hello'
"I'm \"excited\" to learn Python!" # 문자열 안에 따옴표를 포함하고 싶을 때
|
문자열 연결
1
2
3
| "Hello" + "World" # "HelloWorld"
"2" + "5" # "25"
"Hello" * 3 # "HelloHelloHello"
|
문자열 포매팅
1
2
3
4
5
6
7
8
| "오늘은 {0}년 {1}월 {2}일입니다.".format(2024, 2, 23)
# 오늘은 2024년 2월 24일입니다.
"저는 {1}, {0}, {2}를 좋아합니다.".format("아이브", "에스파", "르세라핌")
# 저는 에스파, 아이브, 르세라핌을 좋아합니다.
"{0} 나누기 {1}은 {:.3f}입니다.".format(17, 4, 17/4)
# 17 나누기 4는 4.250입니다.
|
f-string 방식
1
2
3
4
5
| name = "장원영"
age = 21
print(f"제 이름은 {name}이고 {age}살입니다.")
# 제 이름은 장원영이고 21살입니다.
|
편한 방식을 사용하자 걍..
문자열 조작 메서드
strip() 메서드
문자열 양 끝의 공백과 화이트스페이스(예: \t, \n) 제거**
1
2
| "\t 오늘 날씨 되게 좋다! \n".strip()
# "오늘 날씨 되게 좋다!"
|
split() 메서드
특정 문자를 기준으로 문자열을 나눠 리스트 생성**
1
2
3
4
5
| "1.2.3.4.5.6".split(".")
# ["1", "2", "3", "4", "5", "6"]
"밥을 먹고 다니냐".split()
# ["밥을", "먹고", "다니냐"]
|
형 변환
정수로 변환 : int(3.8) ⟶ 3, int("2") ⟶ 2
소수로 변환 : float(3) ⟶ 3.0
문자열로 변환 : str(3) ⟶ "3"
불린형(Boolean)
True, False
논리 연산자
A and B ⟶ A, B 모두 True여야 TrueA or B ⟶ A, B 중 하나만 True여도 Truenot A ⟶ 반대의 불리값 반환
비교 연산자 : <, >, <=, >=, ==, !=
- 예시:
7 != 7 or not (4 < 3 and 12 > 10) ⟶ True
리스트와 사전
리스트(List)
- 변수에 리스트 저장하기
1
2
3
4
| numbers = [2, 3, 5, 7, 11, 13]
names = ["카리나", "원터", "닝닝", "지젤"]
# 인덱스 0 , 1 , 2 , 3
#마이너스 -4 , -3 , -2 , -1
|
- 인덱싱(indexing) : 인덱스를 통해 리스트 요소를 받아온 것
1
2
| numbers[1] # 3
names[-3] # "원터"
|
- 슬라이싱(Slicing) : 리스트의 일부를 통째로 잘라서 받아온 것
1
2
3
4
| numbers[0:3] # [2, 3, 5] # 인덱스 0부터 인덱스 2까지
numbers[3:] # [7, 11, 13] # 인덱스 3부터 끝까지
numbers[:3] # [2, 3, 5] # 처음부터 인덱스 2까지
numbers[:] # [2, 3, 5, 7, 11, 13] # 전체 리스트 복사
|
- 리스트에 있는 요소 변경
1
| numbers[0] = 15 # numbers의 인덱스 0의 요소가 15로 변경
|
- 리스트 내장 함수
1
2
3
4
5
| len(numbers) # 리스트 요소 개수 6
numbers.append(15) # 리스트 마지막에 요소 추가 -> [2,3,5,7,11,13,15]
numbers.insert(2,9) # 특정 인덱스(2번 인덱스)에 요소 삽입 -> [2,3,9,5,7,11,13]
del numbers[2] # 인덱스를 통해 요소 삭제 (2번 인덱스) -> [2,3,7,11,13]
numbers.remove(2) # 값을 통해 리스트 요소 삭제 (2라는 값을 삭제) -> [3,7,11,13]
|
- 리스트 정렬
1
2
| sorted(numbers) # 오름차순으로 정렬함 -> [2,3,5,7,11,13]
sorted(numbers, reverse=True) # 내림차순으로 정렬 -> [13,11,7,5,3,2]
|
- 리스트 값 존재 확인하기
1
2
3
| numbers = [2,4,6,8,10]
4 in numbers #True
7 not in numbers #True
|
- 리스트 복사
1
2
| x = [2,3,5,7,11]
y = list(x) # 변수 y에도 x 리스트가 저장됨
|
- 리스트,문자열
1
2
3
4
5
| alphabet_string = "ABDCEFG"
alphabet_string[0] # 문자열 인덱싱 -> "A"
alphabet_string[0:5] # 문자열 슬라이싱 -> "ABCDE"
len(alphabet_string) # 문자열 길이 -> 7
alphabet_string[0] = "Z" # 리스트랑 달리 수정 안됨 이건 실행 불가 안된거임
|
사전(Dictionary)
- 키-값 쌍(key-value pair)의 형태
1
2
3
4
5
6
| my_dictionary = {5:29, 2:4, 3:9}
my_family = {"마":"Mom","빠":"Daddy","자식":"Child"}
my_dictionary[2] # 키를 통해 받아온 값 -> 4
my_dictionary[9] = 81 # 새로운 키 값 추가 -> {5:25, 2:4, 3:9, 9:81}
my_family.values() # 값 목록 확인 -> dict_values(['mom','Daddy','Child'])
my_family.keys() # 키 목록 확인 -> dict_keys(['마', '빠', '자식'])
|
제어문
if조건문
- if조건 부분 : 조건 부분이 True이면 실행
1
2
3
4
5
6
7
8
| if total >= 90: -> total 90 이상 안되면 밑으로 넘어감
print("A")
elif total >= 80: -> 안되면 넘어가고
print("B")
elif total >= 70:
print("C")
else: -> 모든 조건 없을시
print("F")
|
while반복문
- while조건 부분 : 조건 부분이 True일 동안 실행
1
2
3
4
| i = 1
while i <= 3:
print("파이썬 어렵다") # 세번 출력함
i += 1 # i = 1 + 1 같은 의미
|
for반복문
- for변수in리스트(or문자열) : 리스트 요소가 차례대로 변수에 대입되면 실행됨
1
2
3
| my_list = [2,3,5]
for number in my_list:
print(number) #my_list 요소 순서대로 출력
|
- range 함수
- range(stop) 0부터 stop-1까지의 범위 숫자
- range(start, stop) start 부터 stop-1까지의 범위 숫자
- range(start, stop, step) start 부터 stop-1까지 step 간격의 숫자
1
2
| for i in range(3,17,3):
print(i) # 3,6,9,12,15 출력
|
break , continue**
- break : 반복문 종료 탈출함
1
2
3
4
5
6
| i = 100
while True:
if i % 23 == 0:
break # i가 23의 배수면 종료
i += 1
print(i)
|
- continue : 다음 조건 부분으로 넘어감
1
2
3
4
| for i in range(1,11):
if i % 2 ==1:
continue # i가 홀수면 다음 조건으로 넘김
print(i)
|
사용자 입력
- input(“문자열”) 해당 문자열은 사용자에게 입력을 받기 전 콘솔에 출력 됨
- input 함수를 통해 입력받은 값을 변수에 저장해서 씀
- input 함수를 통해 입력받은 값은 문자열 임!!
- 숫자 데이터로 받아 쓸려면 형변환 필요함!!
1
2
| number = int(input("숫자를 입력하세요:"))
print(number + 2) # 어떤 숫자든 입력하면 거기에 + 2 해서 출력
|
파일 읽고 쓰기
파일 읽기
- open(파일 경로,”r”) read
1
2
3
| with open("text_file.txt","r") as f: # 읽어들인 파일을 f라는 변수에 저장함
for line in f:
print(line) # 파일 내용이 한 줄씩 출력됨
|
파일쓰기
- open(파일 경로, “w”) write
1
2
3
| woth open("text_file.txt","w") as f: # 내용을 적을 파일을 f라는 변수에 저장
f.write("Hello World!\n")
f.write("Nice to Meet You!")
|
text_file.txt가 없으면, 생성후 내용 입력
text_file.txt가 있으면, 파일에 내용 덮어씀
- open(파일 경로, “a”) append
1
2
3
| with open("text_file.txt","a") as f: # 내용을 쓸 파일을 f라는 변수에 저장함
f.write("Hello World!\n")
f.write("Nice to Meet You!")
|
text_file.txt가 없으면 역시나 생성후 내용 입력
text_file.txt가 있으면, 해당 파일 마지막에 내용이 추가됨
일단 여기까지 정리를..하면 뭐 충분하지 않을까..??
남은건 연습…