1.2 파이썬 기초 문풀 스터디노트

소리·2023년 9월 22일
0

조건문

  • 문제1 : 컴퓨터가 내는 랜덤 숫자를 맞추기
import random

computer = random.randint(1,1000)
#내풀이 : user = int(input('1에서 1000까지의 정수 입력 : ')) -> 조건 문 안으로 들어가야 함
n = 0
#gameFlag = True #이걸로 굳이 break를 쓸 필요가 없음!

while gameFlag:
    n += 1 #각 조건에 붙일 필요 없이 여기에 적으면 한 번 적는 것으로 완료할 수 있음.
    user = int(input('1에서 1000까지의 정수 입력 : '))

    if user == computer:
        print('빙고!')
        gameFlag = False
    #print('난수 : {}, 시도 횟수 : {}'.format(computer,n)) -> 나는 여기에 두었지만,

    else:
        if user > computer:
            print('난수가 작다!')

        else:
            print('난수가 크다!')

print('난수 : {}, 시도 횟수 : {}'.format(computer,n))
  • 문제2 : 실내 온도를 입력하면 스마트 에어컨 상태가 자동으로 설정되는 프로그램
tempNow = int(input('실내 온도 입력 : '))

if tempNow <= 18:
    print('에어컨 : OFF')

elif (tempNow > 18) & (tempNow <= 22):
    print('에어컨 : 매우 약')

elif (tempNow > 22) & (tempNow <= 24):
    print('에어컨 : 약')

elif (tempNow > 24) & (tempNow <= 26):
    print('에어컨 : 중')

elif (tempNow > 26) & (tempNow <= 28):
    print('에어컨 : 강')

else:
    print('에어컨 : 매우 강')
    
  • 반복문
    인데 조건문 쓴 내 풀이
n1 = 1
while n1 <= 5:
    print('*' * n1)
    n1 += 1


n2 = 1
while n2 <= 5:
    i = '*' * n2
    print(i.rjust(5))
    n2 += 1

n3 = 5
while n3 > 0:
    print('*'* n3)
    n3 -= 1

n4 = 5
while n4 > 0:
    i2 = '*' * n4
    print(i2.rjust(5))
    n4 -= 1

[output]

<반복문 풀이>

for i in range(1, 6):
    for j in range(i):
        print('*', end='')
    print() #개행(줄바꿈)하기 위해, 위에서 end = '' 처리했기에 필요

for i1 in range(1, 6):
    for j1 in range(6 - i1 - 1):
        print(' ', end='') #'' 사이에 띄어쓰기가 꼭 있어야 한다.
    for k1 in range(i1):
        print('*', end='')
    print()

for i3 in range(1, 6):
    for j3 in range(6 - i3):
        print('*', end='')
    print()

for i2 in range(1, 6):
    for j2 in range(i2):
        print(' ', end='')
    for k2 in range(5 - i2):
        print('*', end='')
    print()


-> 동일한 결과 다른 풀이.

/n

for i in range(1, 10):
    if i < 5:
        for j in range(i):
            print('*', end='')
    else:
        for j in range(10 - i):
            print('*', end='')
    print()

for i in range(1, 6): #못푼 문제
    for j in range(1, 6):
        if i == j:
            print('*', end='')
        else:
            print(' ', end='')

    print()
for i in range(1, 6):
    for j in range(1, 6):
        if i == (6 - j):
            print('*', end='')
        else:
            print(' ', end='')
    print()

  • 톱니바퀴 문제

gearAcnt = int(input('A 톱니수 입력 : '))
gearBcnt = int(input('B 톱니수 입력 : '))

gearA = 0
gearB = 0
leastNum = 0
#조건에 의한 반복이 나음
flag = True

while flag:
    if gearA != 0: #왜 이 조건이 굳이 있는거지
        if gearA != leastNum:
            gearA += gearAcnt
        else:
            flag = False
    else:
        gearA += gearAcnt

    if gearB != 0 and gearB % gearAcnt == 0:
        leastNum = gearB
    else:
        gearB += gearBcnt

print('최초 만나는 톱니수(최소공배수): {}톱니'.format(leastNum))
print('gearA 회전수 : {}회전'.format(int(leastNum / gearAcnt)))
print('gearB 회전수 : {}회전'.format(int(leastNum / gearBcnt)))
profile
데이터로 경로를 탐색합니다.

0개의 댓글

관련 채용 정보