1. 파이썬 기초 문법
- -
1. 변수와 출력함수
◆<변수명 정하기>
1) 영문과 숫자, _로 이루어진다.
2) 대소문자를 구분한다
3) 문자나,_로 시작한다
: 숫자로 시작하면 에러
4) 특수문자를 사용하면 안된다 (%,&등)
5) 키워드를 사용하면 안된다 (if,for등)
- 한꺼번에 변수를 여러개 선언하고, 값을 넣을 수 있다.

- 값 교환

◆<변수 타입>

◆<출력 방식>

◆seperate(구분해서 출력)

※
sep = '★'
: ★자리에 변수 사이에 구분하고 싶은 값 넣으면, 출력 시 구분된다
: ', ' 쉼표 뒤에 띄어쓰기 해도 반영된다.
※
sep = '\n' -> 줄바꿈 해서 출력됨
print시, 변수들을 묶어서가 아니라 각각 출력해도, 줄바꿈 출력된다 (print에는 기본적으로 줄바꿈이 내장되어 있dma)
- print에는 기본적으로 줄바꿈이 내장되어 있다.
print하고 줄바꿈 하기 싫다면? -> sep = ' ' 이용!
2. 변수 입력과 연산자
◆ 변수입력과 연산자 (input함수)
a=input("숫자를 입력하세요:")
: input함수를 통해, 키보드 입력을 불러올 수 있다.
- split()함수
키보드 입력 시, 두 변수에 대응되는 값을 입력할 때, 띄어쓰기하여 입력하면 그대로 대입되어 출력된다.

- 키보드 입력으로 받은 값들은 string형이다.
: 대응되는 값으로 숫자로 입력해도, string형이다.
위에서 a와 b에 숫자 2,3,을 대입후,
print(a+b)출력하면 5가 아니라, 연이은 23이 출력된다
: a = int(a)
b = int(b)로 형변환 한 후, print(a+b)출력하면 5가 출력된다.
◆ map함수
: 위처럼 형변환 하기 귀찮을 땐 map함수 이용한다.

input으로 입력받은 숫자들이 a와b에 string형으로 대입되는데, int로 형변환돼서 맵핑된다.
3.반복문
for,while,break,continue
◆ for문
- range() : 순차적으로 정수리스트를 만든다.
a=range(10)
print(list(a))
//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- for i in range(1,11) vs for i in range(10,0)
for i in range(1,11) >> 1,2,...10 출력
for i in range(10,0) >> 아무일도 일어나지 않는다.
-> -1이라는 감소 인자를 추가해줘야 함!
for i in range(10,0,-1) >> 10,9,8,7,...1 출력
◆◆ while문
i = 1
while i<=10:
print(i)
i=i+1
◆ break
: 반복문을 멈추고 싶을 때, 쓴다.
i=1
while i<=10:
print(i)
if i==5:
break
i+=1
continue
: 뭐를 건너뛰고 싶다.
ex) 짝수를 건너뛰고, 홀수만 출력하고 싶다.
for i in range(1,11):
if i%2==0:
continue //continue를 만나면,더 이상 코드 탐색을 멈추고, 다시 for문으로 올라간다.
print(i)

-> continue문 아래는 건너 뛴다.
◆ for ~ else문
: 정상적으로 for문이 종료되었을 경우에만, else도 데려간다.
for i in range(1,11):
print(i)
if i==5:
break
else:
print(11)
->break에 의해, 비정상적으로 for문이 중단되었다. 그 아래의 else문에 있는 print(11)은 출력되지 않는다.

for i in range(1,11):
print(i)
if i>15:
break
else:
print(11)
if~break조건에 걸리지 않아서, 정상적으로 for문이 종료되었다. 그 땐 else문에 있는 print(11)도 출력된다.

4. 중첩 반복문(2중 for문)
for i in range(5)://i=0에서 시작
for j in range(5):
print("*", end= ' ')
print() //공백 출력 -> j를 0,1,2,3,4 다 돌면,줄바꿈 후,다시 i=1부터 탐색한다

-> 이런식으로, 이중 for문을 통해 행렬을 만들 수 있다.
#만약, 이런 모양 만들고 싶다면??

for i in range(5):
for j in range(i+1): //0,0 1 , 0 1 2 , .. 이렇게 하나씩 늘어나면서 탐색
print("*",end=' ')
print()
#만약, 이런 모양 만들고 싶다면??

for i in range(5):
for j in range(5-i):
print("*",end= ' ')
print()
5. 문자열과 내장함수
- upper()
:문자를 모두 대문자화 시키는 함수
- lower()
:문자를 모두 소문자화 시키는 함수
문자열도 다 인덱스 번호가 있다.
- find('T') : 출현하는 T 중, 가장 앞에 있는 인덱스 번호 출력
- count('T') : T가 출연하는 갯수 출력
- 문자열 슬라이싱
string[:2] : 0번째,1번째 인덱스 까지만 출력
- len : 공백 포함해서 문자열 길이 출력
string[3:5] : 3,4번째 인덱스 까지만 출력

◆ for문으로 문자열 다루기
I t i s T i m e 출력
I t i s T i m e 출력
-> x가 문자 한개한개에 접근한다 (공백 포함)
- isupper() / islower()
: 탐색한 문자가 대문자인지 소문자인지 판별

- isalpha()
: 탐색한 문자가 알파벳인지 아닌지 판별 (해당 인덱스에서 공백이면 false)


- ord(x)
: 탐색한 값이 들어가는 변수 x에 대해, x의 아스키넘버 값을 출력해주는 함수

(출력 결과)
65 ->A의 아스키넘버
90 -> Z의 아스키넘버
- chr(아스키넘버)
:아스키넘버에 대응되는 문자를 출력해주는 함수

->B출력
6. 리스트와 내장함수(1)
◆ 빈 리스트 출력하기
◆리스트 내장함수
- append(값)
인자로 들어가는 값을, 리스트 뒤에 요소로 추가
- insert(인덱스번호,값)
: 인덱스번호 자리에, 값을 넣기
- pop()
: 맨 뒤 인덱스에 있는 값 삭제
- pop(인덱스 번호)
: 해당 인덱스 번호에 있는 값 삭제
- remove(값)
: 인자로 들어간 값이 있으면, 삭제
- index(값)
: 해당 값이 들어가있는 인덱스 번호를 출력
- sum(리스트 이름)
: 리스트에 있는 요소들의 값을 다 더한다.
- max(리스트 이름) / min(리스트이름)
: 리스트에 있는 요소들 중, 가장 큰 값 or 작은 값을 출력한다.
- 무작위함수
단, 위를 포함시켜야, 무작위 함수를 사용할 수 있다.
r.shuffle(리스트이름)
print(a)
=> 랜덤으로, 리스트 요소들이 섞여서 출력됨
- 오름차순 함수
:리스트이름.sort()
- 내림차순 함수
: 리스트이름.sort(reverse==True)
- clear()
: 리스트에 있는 요소들이 다 사라짐 -> 빈리스트만 남는다.
7. 리스트와 내장함수(2)
◆ for문으로 리스트 다루기
: 위에서, for문으로 문자열 다룬 것과 마찬가지로 다룰 수 있다.
◆ enumerate(리스트 이름)
: 리스트를 튜플 형태로 출력하는 함수.
(리스트 인덱스,인덱스 값) 출력


- 튜플
-리스트와 비슷한데, 소괄호로 묶는다.
b = (1,2,3,4,5)
-리스트와 차이점
: 튜플의 값은 절대로 변경이 불가능하다.
b[0] = 7 이런 코드에서 에러가 난다.


둘 다 위처럼 출력.
- all 함수

a라는 리스트의 원소들을 하나씩 탐색해서, x로 두고, 그 x가 모두 60>x라는 조건을 만족하는지 본다.
원소들이 모두 조건을 만족할 때만, 참
- any 함수

원소 중 한개라도 조건 만족하면 참.
8. 2차원 리스트 생성과 접근
◆ 1차원 리스트 생성
[0,0,0] 출력
◆ 2차원 리스트 생성
[0,0,0], [0,0,0],[0,0,0]

--> 1행, 2행,3행 의미

a[1][1] = 2 -> 가운데 정사각형이 2로 변경
- for x in a:
- for x in a:
for y in x:
0 1 0
0 0 0
0 0 0 출력
9.함수 만들기
◆함수 만들기
add(3,2)
->5출력
◆ 소수 출력하는 프로그램
-->
10. 람다함수
- map함수
map(함수명,자료)
-> '자료'에다가 '함수'를 작동시킨다
-> '람다함수'를 이용하면 위 코드를 더 간단하게 출력 가능
-> map이라는 함수의 인자로 람다함수를 바로 적용
** 이렇게, 익명의 표현식,함수를 어떤 내장함수의 인자로 활용할 때, 편리
주로, sort함수에서 lambda함수 많이 사용함
'Algorithm > 파이썬 알고리즘 문제풀이 강의' 카테고리의 다른 글
[코드 구현력 기르기] 6. 자릿수의 합 (0) | 2023.03.08 |
---|---|
[코드 구현력 기르기] 5. 정다면체 (0) | 2023.03.08 |
[코드 구현력 기르기] 4. 대표값 (0) | 2023.03.08 |
[코드 구현력 기르기] 3. K번째 큰 수 (0) | 2023.03.08 |
[코드 구현력 기르기] 2. K번째 수 (0) | 2023.03.08 |
소중한 공감 감사합니다