파이썬 기초

조지원·2023년 5월 4일

python

목록 보기
2/15


💻 keep going

처음이다 보니 슬슬 반복문에서 어려움을 느낀다.

주말에 조금 더 복습을 하고 다른 강의도 보면서 익숙해져야 할 것 같다.


💡 조건식

특정 조건에 따라 프로그램을 분기한다.

  • 기본 : ifelse 사이에 조건식 넣기

    ex) True if num1 > num2 else False

    👆 True 이면 앞쪽에 있는 데이터 실행
    False 이면 뒤쪽에 있는 데이터 실행

📝 print ("안녕") if 1 > 2 else print ("아니")
👆 조건식의 결과가 True 이면 "안녕" 실행
그렇지 않으면 "아니" 실행


💡 조건문

  • if 문 -> 단일조건
  • if ~ else 문 👉 양자택일 모든 조건식(삼항연산자)은
    if ~ else문으로 변경할 수 있다.

하지만! 반대로 모든 if ~ else문을 조건식으로 변경할수 있는건 아니다.

  • if ~ elif 문 👉 다자택일(다중조건) : 90점 이상일 때 a학점, 80점 이상일 때 b학점 이런식
    👉 여러가지 조건식 결과에 따라 실행문이 결정됨

📝 .format()문에 if 넣고 싶을때
print ("차 길이 가능 여부 : {}".format("통과" if (mycarWidth <= maxWidth) else "불통과" ))

if (mycarWidth <= maxWidth and mycarHeight <= maxHeight):
    print("가능합니다.")
else :
    print("죄송합니다. 불가능 합니다.")

💡 pass

지금은 모르겠고 나중에 결정되면 작성하겠다 👉 pass를 사용

if 1 < 2 :
	pass

💡 중첩 조건문

조건문 안에 또 다른 조건문이 있을 수 있다.

if selectNum == 1 :
    print("교통수단을 입력하세요.")
    trans = int(input("1.도보,자전거\t 2.버스,지하철\t 3.자가용"))   


 if trans == 1 :
        print("세금 감면 5%")
 elif trans == 2 :
        print("세금 감면 3%")
 elif trans == 3 :
        print("추가 세금 1%")

💡 반복문

특정 실행을 반복하는 것

for i in range(1, 20) :
    print("{} * {} : {}".format(5, i, (5 * i)))

1 ~ 19 까지 값을 얻고 싶으면 (1, 20)

players = ["박찬호","박세리","박지성","김연경","이승엽"]

for player in players :
    print("{}선수 한테 매일 발송!".format(player))
🔥 결과 :   박찬호선수 한테 매일 발송!
         박세리선수 한테 매일 발송!
         박지성선수 한테 매일 발송!
         김연경선수 한테 매일 발송!
         이승엽선수 한테 매일 발송!

💡 반복문 종류

  • <횟수에 의한 반복> ex) 회원 100명한테 메일 발송
<for i in range (100) : 
    print("i -> {}".format(i))
  • <조건에 의한 반복> ex) 실내온도 26도 까지 에어컨 작동
num = 0
while (num < 10) :
     print("num -> {}".format(num))
   num += 1

💡 for문

횟수에 의한 반복

  • for ~ in

for i in range(5) :
    print("hello")

💡 range( ) 기본 사용 방법

for i in range(start, stop, step) 
  • 시작값 start부터 반복을 시작합니다.

  • 종료값 stop에 도달할 때까지 반복을 수행합니다. 단, 종료값 stop은 반복 범위에 포함되지 않습니다.

  • 반복 간격 step만큼 값을 증가시키거나 감소시키면서 반복을 수행합니다.

📝 for i in range(5, 0, -1) 에서는 시작값이 5이고 종료값이 0이므로, i 변수는 5, 4, 3, 2, 1의 값을 차례로 갖는다.

📝 for i in range(1, 6, 1)에서는 시작값이 1이고 종료값이 6이므로, i 변수는 1, 2, 3, 4, 5의 값을 차례로 갖는다.
이때 6은 반복 범위에 포함되지 않으므로 i 변수는 5까지 반복된다.


💡 while

구구단 만들기

gugudan = int(intput("해당 구구단 입력 : "))

n = 1     👉 for 문처럼 범위를 줄 수 없기에 사용함

while n < 10 : 
    result = gugudan * n
    print("{} * {} = {}.format(gugudan, n, result)

n += 1 👉 for 문처럼 범위를 줄 수 없기에 사용함


💡 for vs while

📝 for문이 적합한 경우

  1. 횟수에 의한 반복이라면 for문이 while문 보다 적합하다.

  2. 1부터 10까지의 합을 구하는 경우 더 코드가 간결하다.

📝 while문이 적합한 경우

  1. 조건에 의한 반복이라면 while문이 for문 보다 적합하다.

💡 무한루프

  • while문에서 종종 발생함 : 조건식의 결과가 항상 True인 경우
  • 실습 : 예상하는것이기 떄문에 import random을 사용해서
    👉 random.randint(50, 100)
    하루 독감으로 병원에 내방하는 환자가 50~100 이내

💡 continue

반복 실행 중 continue를 만나면 실행을 생략하고, 다음 반복 실행문으로 넘어간다.

중간에 있으면 그 위로 다시 돌아가고 아래는 실행이 안된다.

  • else

    반복문이 종료된 후 실행된다.

  • break

    반복 실행 중 break를 만나면 반복문을 빠져나온다.


💡 중첩 반복문

반복문안에 또 다른 반복문을 선언한다.



⚡Check

✔ <코드블럭> 조건식 다음에 꼭 :(콜론) 을 사용해야함
👆 그 후 들여쓰기(tab) 꼭 해야함

✔ 조건식 순서가 중요하다! 범위를 명확하게 명시해준다.

print() : 개행을 해준다 (내려쓰기)

len() : 문자열의 길이를 나타냄(숫자로 반환함) 👉 공백도 포함이다

✔ article = 안녕하세요. 영어를 좋아하는 사람입니다.
(변수) = article.find("영어")

isdigit() : 숫자인지 확인(숫자이면 True, 아니면 False)

score1 = input("중간 고사 점수 : ")
score2 = input("기말 고사 점수 : ")

if score1.isdigit() and score2.isdigit():
    score1 = int(score1)
    score2 = int(score2)

print ("메뉴 : {}\n가격 : {:,}원 ".format(menu3, menu3Price))
👆 {}사이에 :,를 사용하면 소수점 이하 값 포함천단위로 콤마 가능!

profile
keep going

0개의 댓글