5/7 Today I Learned

boks·2024년 5월 7일
post-thumbnail

📖 학습한 내용

  1. f-문자열
  2. 불 자료형
  3. 조건문
  4. 리스트형 자료형
  5. for 반복문

📖 핵심내용

📌 f-문자열

  • 형태

    f'문자열 {값} 문자열 {값} ...'

  • 문자열을 나타낼때 format() 대신에 쓸 수 있다.

  • 바로 바로 {}안에 원하는 값을 바로 바로 적으며 코딩하기 좋다.

  • format()과 달리 들어가는 값들을 한번에 볼 수 없는 단점이 있다.

  • 예시)

a= '양승환'
b= '류현진'
c= '나민원'
abc = f'1. {a}, 2. {b}, 3.{c}'
abc

📌 불 자료형

  • True / False 두가지로 나뉜다.
  • 타입 : <class 'bool'>

비교연산자

  • = 이 무조건 뒤에!
  • 일반 크기 비교하는 것과 똑같다.
  • 결과값이 True / False
  • 직관적으로 비교 연산자를 좌우에 넣을 수 있다.
x = 25
print(10 < x < 30)
print(40 < x < 60)

논리연산자

  • 계산시 논리연산자보다 비교연산자다 우선순위가 높다.
  1. not - 불을 반대로 전환
  2. and - 피연산자 두 개가 모두 참이면 True, 그 외는 모두 False
  3. or - 피연산자가 두 개 중 하나라도 참이면 True, 모두 거짓 이면 False

📌 조건문 if

  • 조건에 따라 코드를 실행(True)하거나, 실행하지 않게 만들고 싶을 때(False) 사용하는 구문
  • 조건 분기가 이뤄짐
  • 코드 블럭에 따라서 포함 미포함이므로 공백을 신경쓰자.
  • 형태

    if 조건문:
    실행문

elif / else

  • elif 는 if 와 상위 elif 의 조건문이 거짓일 때 실행
  • else 는 모든 elif 와 if 의 조건문이 거짓일 때 실행
  • if와 마찬가지로 코드 블럭을 잘써야한다.
if 조건A:
  조건A가 참일때 실행
elif 조건B:
  조건A가 거짓이고 조건B가 참일때 실행
elif 조건C:
  조건B가 거짓이고 조건C가 참일때 실행
...
else:
  위의 조건이 모두 거짓일 때 실행

📌 리스트형 자료형

  • 숫자, 문자열, 불, 리스트, 독립적인 자료들을 모아서 사용할 수 있는 형태의 자료형

  • 인덱싱으로 값 호출하는 것과 슬라이싱 하는 것은 문자열과 동일하다.

  • 리스트 값 변경

    리스트객체[변경할인덱스] = 변경할값

  • 리스트의 요소는 리스트가 될 수 있다. 이 경우 다음과 같이 요소 리스트의 요소 호출가능

    리스트객체[리스트요소인덱스][인덱스]
    -> 내부 리스트의 요소가 호출된다.

sample_list = [
    [1,2,3],
    [4,5,6],
    [7,8,9,10]
    ]
sample_list[1][0]

  • 리스트에 요소 조작 관련 함수들

    list.append(), list.insert(), list.extend()

  • 리스트 제거 관련

    del 리스트, list.remove(), list.clear()
    - remove는 리스트 안에 요소 딱 한개만 지운다(중복x)

  • 순서정렬

    list.sort(reverse=디폴트False)
    - reverse=False/True에 따라 오름/내림차순 정렬

  • 존재 여부 확인

    in, not in

  • 기본 함수

    min(), max(), sum()

📌 for 반복문

  • for문을 이용하여 반복적인 문장을 줄여서 쓸수 있다.
  • 형태

    for 변수 in 리스트객체:
    실행문

📖 흥미로운 점 / 새로 알게된 점

pass 키워드

if 문의 실행문이 없으면 오류가 발생한다. 미구현인 상태거나 나중에 작성하려할때, pass 키워드를 적고 넘어간다.
코드가 길면 전체적인 조건을 적으면서 생각해야지 편리할 것 같다. 이렇게 pass를 적어두고 넘어가면 나중에 알맞게 실행문을 적을 수 있다는 아이디어가 재미있었다.

join()함수

사이에넣을것.join(리스트)

  • 리스트안에 요소들로 나뉘어 있던 문자들을 하나의 문자열로 만들어 반환한다.
    여러 데이터를 리스트에 담은 뒤에 하나의 데이터로 만들때 많이 쓰일 것 같았다. 리스트 + 말고 문자열을 합치는 함수인 join꼭 기억하자.

📖 어려운 부분

조건문 if~elif~else

  • 강사님한테 강의 도중 elif는쓰지 않고 if만 나열하다가 else로 마무리하는 거랑 뭐가 다르냐고 물어봤다.
    -> 예시로 답변
if ->조건 충족 출력
if ->조건 불충족
if ->조건 불충족
else ->조건 충족 출력

-> 첫번째 if문에서만 출력을 바랐는데, 예시처럼 조건 충족하는 구문이 여러개 생길 가능성이 있다. 따라서 elif 쓰는 것이 옳다.

📖 이후 학습 계획

파이썬 기초에 대해서 공부할 계획이다.

  • 딕셔너리 자료형
  • while 반복문
  • 함수
  • 튜플 자료형
  • 람다 함수
  • 예외 처리
  • 클래스
  • 모듈

📖 기타

미니퀴즈

1. 아래 코드를 and를 이용한 표현으로 나타내시오

x = 50
print(40 < x < 60)

x = 50
print(40 < x < 60)
print((x > 40) and (x < 60))


-> and 의 의미만 잘알면 매우 쉽게 풀 수 있는 문제다.

2. 정수를 입력으로 받아서 해당 정수가 양수인지 음수인지 0인지 분류해서 출력하는 프로그램을 만들어보자

input_num = input('정수 입력>')
input_num = int(input_num)
if input_num > 0:
    print('입력한 정수 x는 양수입니다.')
if input_num < 0:
   print('입력한 정수 x는 음수입니다.')
if input_num == 0:
    print('입력한 정수 x는 0입니다.')

-> 정수가 들어온다면, if 조건문를 통해 쉽게 구분할 수 있다.

3. for문을 이용하여 각줄별 길이를 출력하고, 그옆에 그 줄의 가사를 출력하시오.

lyrics = """Hoo-ooh-ooh-ooh
Hoo-ooh-ooh-ooh
Stay in the middle
Like you a little
Don't want no riddle
말해줘 say it back, oh, say it ditto
아침은 너무 멀어 so say it ditto
훌쩍 커버렸어
함께한 기억처럼"""
lyrics_list = lyrics.split('\n')
for i in lyrics_list:
  print('글자수 {:2}| {}'.format(len(i), i))


-> for문과 split() 함수를 사용하였다. 줄바꿈 단위로 요소로 묶었다. len()함수를 이용하면 요소의 길이를 아는데, 문자열에서는 곧 문장의 길이다. format()함수에서 {:2}는 2자리를 만들라는 뜻이다. 이것을 이용하여 문자의 위치를 예쁘게 정렬했다.

퀴즈

Quiz : 1~50까지 리스트가 있을 때, 1부터 50까지 반복하면서 369게임이 결과를 나타내는 프로그램을 만드시오.

  • 1 ~ 50까지 리스트 생성하기
sample_list = list(range(1,51)) 
  • 모든 숫자의 일의 자리가 3, 6, 9일때 박수치는 것을 고려한다면, 10으로 나눴을때 나머지만 따지면 되는 것을 알 수 있다.
    추가로 숫자가 30~39 사이일때는 박수를 추가로 한번 쳐야하는 점을 고려한다.
for i in sample_list:
  if i < 30: # 1~29인 경우
    if i%10 in [3, 6, 9]: # 일의자리가 3,6,9?
      print('짝') # 박수
    else: # 일반 숫자 출력
      print('{}'.format(i))

  elif 30 <= i < 40: # 30~39인 경우
    if i%10 in [3, 6, 9]: # 일의자리가 3,6,9?
      print('짝짝') # 박수
    else: # 30번때 자리숫자 출력
      print('짝'.format(i))

  else: # 40~50인 경우
    if i%10 in [3, 6, 9]: # 일의자리가 3,6,9?
      print('짝') # 박수
    else: # 일반 숫자 출력
      print('{}'.format(i))


-> 조건을 나눠서 생각해서 코딩하면 어렵지 않게 할 수 있다.

알아두면 좋은 datetime

import datetime
now = datetime.datetime.now()
print(now)
print(type(now)) # datetime.datetime라는 클래스다

속성

  • datetime.datetime.now().year : 년
  • datetime.datetime.now().month : 월
  • datetime.datetime.now().day : 일
  • datetime.datetime.now().hour : 시간
  • datetime.datetime.now().minute : 분
  • datetime.datetime.now().second : 초

느낀점

  • 하루 하루 알아가는 지식이 많아지는데, 그에비해 소화하는 양이 적은 것 같다.
    기록을 간소화하고, 그 시간에 한번 더 코드를 처보는게 좋을 것 같다.
profile
설계엔지니어의 변신

0개의 댓글