[ 24.05.03 Review]
1. Index/ Slash 헷갈리지 않게 숙지하기
- '안녕하세요' [-3:-1] --> 하녕
- print('\'안녕하세요\' 라고 말했다.') --> '안녕하세요'라고 말했다.
2. 연산자
- 실수형, 정수형 연산 --> 실수형
- 나누기 연산 --> 실수형
- 복합대입연산자 e.g. +=1 --> 기존 변수에 +1씩
3. 함수의 형태 그대로 출력
- interger = int(number) --> type: int
- b=string(interger) --> type: string
4. 변수명 만들때 지켜야 할 사항
- 키워드 사용불가: help('keywords')
- 특수문자는 언더바만
- 숫자로 시작 안됨
- 공백은 넣을 수 없음
5. str.format( ) 함수
- '안녕하세요 {} 입니다.'.format('아슬란') --> 안녕하세요 아슬란 입니다.'
- str.upper()함수 e.g. 'abc'.upper() --> 'ABC'
6. .strip() / lstring() : 앞/뒤로 공백 없애는 함수
7. str.find()/ str.rfind(): 오/왼쪽으로 순서찾아주는 함수
8. str.split() e.g. "10 20 30".split("") --> "10", "20", "30" 여기서 "대신 띄워쓰기 입력하면 아무것도 없이 띄워쓰기로 나뉨.
[추가] f-문자열
- print('3+4= {}'.format(3+4)) 입력의 번거로움을 대신하기 위해서 print(f'3+4={3+4}') --> 3+4 = 7
e.g.a='국어'b='수학'print(f'1.{a} 2.{b}')--> 1.국어 2.수학
e.g.
age=20
color="빨간"
print(f"빨간 {age}살이며, {color}색을 좋아해요.") - f'{12.0:.3f}' --> '12.000' :.3f는 소숫점 자리수 설정하는 것
이번주 Curriculum (bold: Today's)
- 불 자료형
- 조건문
- 리스트 자료형
- for 반복문
- 딕션너리 자료형
- while 반복문
- 함수
- 튜플 자료형
- 람다 함수
- 예외 처리
- 클래스
- 모듈
- Conda 사용법
불(Boolen) 자료형
- print(True, type(true)) --> True <class 'bool'>
- 비교 연산자
- 논리 연산자
- and 연산자
- or 연산자
- 콜라와 사이다 모두 사와: and
- 콜라 또는 사이다 사와: or
- Q) print(40 < x <) 을 논리 연산자로 표시하라.
A) print((x>40) and (x<60)) --> False
if 조건문
- 조건에 따라 코드를 실행하거나, 실행하지 않게 만들고 싶을 때 사용하는 구문
- if 입력 후 print는 공백 네칸/두칸/tab 사용 (Colab은 자동)
- Q) 정수를 입력으로 받아서 정수가 양수인지 음수인지 0인지 분류해서 프로그램을 만들어보자
A) - x > 0 --> 양수 --> '입력한 정수 x는 양수입니다.'
- x < 0 --> 음수 --> '입력한 정수 x는 음수입니다.'
- x == 0 --> 0 --> '입력한 정수 x는 0입니다.'
string_number = input('정수를 입력해 주세요> ')number=int(string_number)
if number > 0 :print('입력한 정수 {}는 양수입니다.'.format(number))if number < 0 :print('입력한 정수 {}는 음수입니다.'.format(number))if number == 0 :print('입력한 정수 {}는 0입니다.'.format(number)) - 날짜/ 시간을 활용해보자
Q) 현재 시간(0000년 0월 00일 00시 00초)을 출력해보자.
Q) 현재 오전/오후 인지를 출력해보자.
이때, 조건 문의 범위가 유사해서 현재 시간이 해당되는 것이 없어서 아무것도 뜨지 않는 것. (오류도 딱히 아니고)
Q) 현재 계절을 출력해보자.
: <=12 month <=2 이란 숫자는 없기때문에 나눠서 입력.
Q) 짝수/ 홀수를 구분하는 프로그램을 만들어보자.
1. 짝수는 2로 나누면 나머지가 0, 홀수는 2로 나누었을 때 나머지가 0이 아닌 숫자
2. 짝수는 마지막 숫자가 0, 2, 4, 6, 8인 숫자/ 홀수는 마지막 숫자가 1, 3, 5, 7, 9인 숫자
if ~ else, elif 구문
- if: 조건이 참일 때 실행하는 문장
- else: 조건이 거짓일 때 실행하는 문장
- elif: 조건이 두 경우로만 나눠지지 않는 경우 e.g. 계절; 4가지
- e.g.
if 조건 a: a가 참일 때 실행하는 문장
elif 조건 b: 조건 a가 거짓이고 조건 b가 참일 때 실행하는 문장
---
else: 위의 조건이 모두 거짓일 때 실행하는 문장
pass 키워드
- 전체 골격을 잡아놓고 프로그래밍을 진행하는 경우를 생각해보자
- 조건 분기에서 참이면 A과정을 실행하고, 거짓인 경우 B과정을 실행
- 아직 A, B과정은 계획만 있지 미구현 상태
if A:
print(~)
else:
pass # 아직 미구현
list와 반복문
- list: 여러가지 자료형을 저장할 수 있는 자료형 (!=array)
- 숫자, 문자열, 불 등은 독립적인 자료형
- list는 이러한 자료들을 모아서 사용할 수 있는 형태의 자료형
- list의 형태: [요소, 요소, 요소, ...]
list를 선언하고 요소에 접근하기
- list_a = [1, 2, 3, 4, 5]
list_a[0] --> 1
list 연산하기: 연결(+), 반복(*), len( )
- 문자열과 동일
list에 요소 추가하기: list.appen(), list.insert()
- [1,2,3]에 4를 맨뒤/ 2뒤에 추가하기
- 방법1: list.appen()
list_a=[1,2,3,]list_a.append(4)
- 방법 2: list.insert()
list_a=[1,2,3,]list_a.insert(2,4)
- 방법 3: list.extend()
list_a=[1,2,3,]list_a.extend([4,5,6])
list에서 요소 제거하기
- 인덱스로 제거하기: list.pop(), del
- del
list_a=[0,1,2,3,4,5]print('Before:', list_a)del list_a[1]print('After:', list_a)--> Before: [0, 1, 2, 3, 4, 5]After: [0, 2, 3, 4, 5]- list.pop()list_a=[0,1,2,3,4,5]list_a.pop(-3)print(list_a)--> [0, 1, 2, 4, 5] - 값으로 제거하기: list.remove()
list_a=[0,1,2,3,4,5]list_a.remove(2)--> [0, 1, 3, 4, 5]
list 정렬하기: list.sort()
- list.sort(): 순서를 바꾸기 (숫자 크기 순으로 정렬)
list_a=[52,273,103,32,275,1, 7]print('Before:', list_a)list_a.sort()print('After:', list_a)
Before: [52, 273, 103, 32, 275, 1, 7]
After: [1, 7, 32, 52, 103, 273, 275]
--> list_a[::-1]도 사용 기능. (::-1: 역순으로 뒤집기/ ::-2 역순으로 두칸씩 띄워서 출력)
존재 여부 확인하기: in/ not in 연산자
- element (not) in list 로 찾기
list에 적용할 수 있는 기본함수: min(), max(), sum()
- min():리스트 내부에서 최소값을 찾음
- max(): 리스트 내부에서 최대값을 찾음
- sum(): 리스트 내부에서 모든 값을 더함
for 반복문
- for 반복 요소 in 반복할 수 있는 것:
코드 (반복적으로 하고 싶은 것) - 반복할 수 있는 것: 문자열, 리스트, 딕셔너리, 범위 등.
- print('안녕하세요')를 100번 반복하려면?
for_in range(100):
print("안녕하세요")
for 반복문: 리스트와 함께 사용하기
- for 반복 요소 in list:
print(반복요소)
list=[ 273 32 103 57 32 ]for element in list:print(element) - 중첩 list와 중첩 반복문
list_of_list = [[1,2,3],[4,5,6,7]]print(list_of_list[0][1]) - for in list
for list_in_list in list_of_list:print(list_in_list)
[4, 5, 6, 7]
--> 1 2 3 ---
- Q) 뉴진스 ditto 가사의 각 문장별 글자수 나열하기
A) - 가사를 줄로 나누고
- for 반복문을 이용
- 각 줄별 길이를 출력하고, 그 옆에 그 줄의 가사를 출력
lyrics = """ 가사 복붙"""lyrics_list=lyrics.split('\n')for element in lyrics_list:character_length=len(element)print('글자수 {:2d} | {:40s}'.format(character_length, element)) --> :40s 무슨의미???
Dailiy quiz)
1~50까지 list가 있을 때, 1부터 50까지 반복하면서 369게임의 결과를 나타내는 프로그램을 만드시오.
<처음 전제로 필요한 것들 기재하기>
- 3, 6, 9가 들어가면 박수 한번 "짝"
- 33, 36, 39가 들어가면 박수 두번 "짝"
- 그 외에는 숫자를 출력
- 숫자를 계산하는 것이 아니라 안에 포함되어있는지를 판단하는 것이기에 string으로 받기
<최종 코드>
<처음 짠 코딩>
for number in list(range(1,51)):
number_string= str(number)
if ('3' in number_string) or ('6' in number_string) or ('9' in number_string):
print('짝')
if('33' in number_string) or ('36' in number_string) or ('39' in number_string):
print('짝짝')
else:
print(number_string)
처음에 짠 코딩은 위와 같다. 이럴 경우 첫번째 if 조건문에서 충족하면 실행되고 두번째 조건문으로 내려오지 않기때문에
33, 36 등이 짝짝이 아닌 짝으로 실행. --> 순서를 변경
<다른 방법>
for number in list(range(1,51)):
number_string=str(number)
clap = ' '
for digit in number_string:
if digit in '369':
clap += '짝'
if clap:
print(clap)
else:
print(number_string)
위의 코드로 짜면, 51 이후의 숫자에서도 모두 적용됨.
'TIL(2024y) > Python (w Numpy)' 카테고리의 다른 글
24.05.13 API호출 (0) | 2024.05.13 |
---|---|
24.05.10 Python (0) | 2024.05.10 |
24.05.09 Python (0) | 2024.05.09 |
24.05.08 Python (0) | 2024.05.08 |
24.05.03 Python (0) | 2024.05.04 |