'''
피카츄게임

변수(상태값)
hp(에너지상태) : 0이면 죽음. 초기값 30
exp(경험치) : 0
lv (경험치 20마다 레벨 1 증가) 1

기능(함수로 구현)
밥먹기
잠자기
운동하기
놀기
종료
'''

hp = 30
exp = 0
lv = 1

while True:
    menu = int(input('1.밥먹기 2.잠자기 3.놀기. 4.운동하기. 5.종료'))
    if menu == 1:
        print('피카츄가 밥먹는다')    #hp 5증가
        hp += 5
        print('Lv:', lv, 'HP:', hp, 'EXP:', exp)
    elif menu == 2:
        print('피카츄가 잠잔다')      #hp 10증가
        hp += 10
        print('Lv:', lv, 'HP:', hp, 'EXP:', exp)
    elif menu == 3:
        print('피카츄가 논다')      #hp 5감소, exp 7증가. hp감소(죽었나?). exp증가(레벨업체크)
        hp -= 5
        exp += 7
        if hp <=0:
            print('피카츄가 죽었습니다')
            break
        if hp>0 and exp >=20:
            lv += 1
            exp -= exp
            print('레벨업! Lv', lv)
        print('Lv:', lv, 'HP:', hp, 'EXP:', exp)
    elif menu == 4:
        print('피카츄가 운동한다')    #hp 15감소, exp 15증가
        hp -= 15
        if hp <=0:
            print('피카츄가 죽었습니다')
            break
        exp += 15
        if hp>0 and exp >=20:
            lv += 1
            exp -= exp
            print('레벨업! Lv', lv)
        print('Lv:', lv, 'HP:', hp, 'EXP:', exp)
    elif menu == 5:
        print('종료')
        break

print('게임종료')

out)

1.밥먹기 2.잠자기 3.놀기. 4.운동하기. 5.종료 3
피카츄가 논다
Lv: 1 HP: 25 EXP: 7

1.밥먹기 2.잠자기 3.놀기. 4.운동하기. 5.종료 2
피카츄가 잠잔다
Lv: 1 HP: 35 EXP: 7

1.밥먹기 2.잠자기 3.놀기. 4.운동하기. 5.종료 4
피카츄가 운동한다
레벨업! Lv 2
Lv: 2 HP: 20 EXP: 0

1.밥먹기 2.잠자기 3.놀기. 4.운동하기. 5.종료 4
피카츄가 운동한다
Lv: 2 HP: 5 EXP: 15

1.밥먹기 2.잠자기 3.놀기. 4.운동하기. 5.종료 3
피카츄가 논다
피카츄가 죽었습니다

게임종료​

휴... 처음 코딩을 짰을 때는 피카츄가 죽었는데 레벨업을 했다.

영면의 삶.......저승으로 돌아가거라 피카츄...

'파이썬이 제일 쉽다면서요' 카테고리의 다른 글

python #list (2)  (0) 2021.06.02
python #list  (0) 2021.06.02
python #연습문제  (0) 2021.06.01
python #반복문 : while, for  (0) 2021.06.01
python #연습문제  (0) 2021.06.01

Q. 1~100까지의 합을 구하여라.


i=1    #카운팅 변수
sum=0   #누적 변수
while i<=100:
    sum += i
    i += 1
print('sum:', sum)

out)

sum: 5050

 

Q. 1~100까지의 짝수만 출력하라.

#sol1 
i=1
while i<=100:
    if i%2==0:
        print(i, end='\t')
    i += 1

print()


#sol2
i=2
while i<=100:
    if i%2==0:
        print(i, end='\t')
    i += 2

out)

2	4	6	8	10	12	14	16	18	20	22	24	26	28	30	32	34	36	38	40	42	44	46	48	50	52	54	56	58	60	62	64	66	68	70	72	74	76	78	80	82	84	86	88	90	92	94	96	98	100	

 

 

Q. 구구단의 단수를 입력받아 3단을 출력하라.

a=int(input('구구단을 셀 숫자를 입력하시오:'))
i = 1    #곱하는 숫자

while i < 10:
    print(a, '*', i, '=', a*i)
    i +=1

print()

out)

구구단을 셀 숫자를 입력하시오:3
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27

 

 

Q. 약수를 구하여라.

 

x= int(input('약수를 구할 숫자를 입력하시오:'))
i = 1

while i <= x:
    if x%i == 0:
        print(i, ',', end = '')
    i += 1

out)

약수를 구할 숫자를 입력하시오:6
1 ,2 ,3 ,6 ,

 

 

Q. 1~100사이의 소수(약수가 1과 자신밖에 없는 수)

 

 

'파이썬이 제일 쉽다면서요' 카테고리의 다른 글

python #list  (0) 2021.06.02
python #피카츄게임?  (0) 2021.06.01
python #반복문 : while, for  (0) 2021.06.01
python #연습문제  (0) 2021.06.01
python #제어문 (if, if-else, if - elif - elif - else)  (0) 2021.06.01
while

 

지정된 조건이나 작업을 반목해야하는 경우 매번 구문을 사용하기에는 꽤나 불편이 있다.

작업을 반복적으로 수행하는 구문을 반복문이라고 하고 파이썬에서는 for 문과 while문을 이용해 구현한다.

 

a=5
while a>0:
    print(a)
    a -=1

print('while밖')

out)

5
4
3
2
1
while밖

 

 

 

a = 1
while a <11:
    print(a)
    a += 1

out)

1
2
3
4
5
6
7
8
9
10

 

 

업카운팅과 다운카운팅

 

i=3
while i>0:
    print('#', end='')
    i -= 1       # 다운카운팅으로 # 3개 출력




i=1
while i<4:
	 print('#', end='')
     i += 1       # 업카운팅으로 # 3개 출력

out) 두 코딩 모두 같은 결과를 출력

###

위 처럼 while문을 이용해 업,다운카운팅이 다 가능하다.

그렇다면

###

###

이렇게 샵 3개를 두줄로 쓰고 싶으면 어떻게 할까?

 

j=1
while j<3:           # ### 두줄로 만들기
    i=1
    while i<4:
        print('#', end='')
        i += 1       # 업카운팅으로 # 3개 출력
    print()        # 다음 줄에 ### 찍어라
    j += 1
    

out)

###
###

만약 점수(1~100점)를 입력받아야 하는 상황에서 입력자가 범위 외의 것을 입력한다면?

다시 재입력을 하라는 문구를 띄워야 할 것이다.

그럴 때는 while문을 사용할 수 있다.

 

 

 

score = -1
while score>100 or score<0:
    score = int(input('score(0-100):'))

if score >= 60:
    print('합격')
else:
    print('불합격')

out)

score(0-100):230
score(0-100):56
불합격

 

 

 

for문

 

메모리에 데이터를 할당(저장)하는 방법은 2가지가 있다.

1. 변수

2. 리스트

변수는 지금 껏 직접 변수명과 값을 입력해주어야 했다. 하지만 입력해야할 변수들이 100개라면 변수명을 일일히 나열할 수는 없을 것이다. 그래서 사용하는 것이 리스트!

 

 

b=[1, 2, 3, 4, 5]

print(b[0])
print(b[1])
print(b[2])
print(b[3])
print(b[4])

out)

1
2
3
4
5

리스트는 위의 예제처럼 칸을 여러개로 나누어 여러개의 변수를 담는 호텔이라고 생각하면 된다.

리스트의 앞에서부터 우리는 0호, 1호, 2호, 3호 ... 이런 식으로 이름을 붙일 것이다.

즉, b= [1, 2, 3, 4, 5] 에서 0호의 값은 1, 1호의 값은 2, 4호의 값은 5가 된다.

리스트를 이용해 변수 값을 잡는 것이 훨씬 수훨해졌다.

그런데 b=[1,2,3,4, ......., 1000]이라면 모든 호수에 있는 값들을 쉽게 출력할 방법은 없을까?

그것이 바로, for문!!

#위에 있는 내용을 단 두줄로 표현 가능!
for i in b:           #또는 for i in [1, 2, 3, 4, 5] 도 가능
    print(i)

out)

1
2
3
4
5

 

참 쉽죠?

그럼 리스트를 좀 더 간략하게 해보자.

b=[0,1,2,3,4] 를 for i in range(0, 5) 로 나타낼 수 있다.

여기서 range는 수를 자동으로 나열 해주는 함수이다.

#range(시작, 끝값, 간격)
for i in range(0,5):     # [0,1,2,3,4]
    print(i)


for i in range(1,10,2):   #1부터 9까지 2칸씩 건너띄면서  [1,3,5,7,9]
    print(i)

out)

0
1
2
3
4



1
3
5
7
9

그렇다면 앞에서 했던 while문을 이용한 코딩들을 for문으로 바꿔보자!

'파이썬이 제일 쉽다면서요' 카테고리의 다른 글

python #피카츄게임?  (0) 2021.06.01
python #연습문제  (0) 2021.06.01
python #연습문제  (0) 2021.06.01
python #제어문 (if, if-else, if - elif - elif - else)  (0) 2021.06.01
python #연습문제  (0) 2021.06.01

Q. 성인 여성만 입장 가능 한 코딩을 짜보자.

 

y= int(input('나이:'))
if y>=20:
    x = input('성별(여:f, 남:m):')
    if x=='f':
        print('입장')
    else:
        print('여성만 입장가능')
else:
    print('성인만 입장가능')


#성인&여성 인증 - 2
x = int(input('나이:'))
y = input('성별(여:f, 남:m):')

if x>=20 and y=='f':
    print('입장')
else:
    print('성인여성만 입장가능')

out)

나이:25
성별(여:f, 남:m):f
입장

나이:31
성별(여:f, 남:m):m
성인여성만 입장가능

 

 

Q. 점수(0~100)에 따라 학점을 출력하자.

A : 90~100

B : 80~89

C : 70~79

D : 60~69

F : 60미만

 

#sol 1
x= int(input('점수를 입력하시오.'))
if x>=90 and x<=100:  #90<= x <=100
    print('A')
elif x>=80 and x<90:
    print('B')
elif x >= 70 and x < 80:
    print('C')
elif x >= 60 and x < 70:
    print('D')
elif x<0 or x>100:
    print('잘못된 점수')
else:
    print('F')



#sol2
x= int(input('점수를 입력하시오.'))
if x<0 or x>100:
    print('잘못된 점수')
else:
    if x >= 90:  # x <=100 을 쓸 필요가 없음.
        print('A')
    elif x >= 80:
        print('B')
    elif x >= 70:
        print('C')
    elif x >= 60:
        print('D')
    else:
        print('F')

out)

점수를 입력하시오. 65
D


점수를 입력하시오. 85
B

 

'파이썬이 제일 쉽다면서요' 카테고리의 다른 글

python #연습문제  (0) 2021.06.01
python #반복문 : while, for  (0) 2021.06.01
python #제어문 (if, if-else, if - elif - elif - else)  (0) 2021.06.01
python #연습문제  (0) 2021.06.01
python #3.input과 print  (1) 2021.06.01

if문

if문은 조건을 만족하는 블록을 실행하고 그렇지 않으면 실행하지 않는다.

if 조건 :

코드 블록

이런 식으로 작성을 한다.

 

a=10
b=13
#조건문은 조건이 만족될때만 실행됨

if a>b:  #거짓, False
    print('a는 b보다 크다')

if a==b:  #거짓, False
    print('a는 b와 같다')

if a<b:   #참, True이므로 블록이 실행됨.
    print('a는 b보다 작다')

out)

a는 b보다 작다

 

 

if-else문

위 if 문 구조에서는 만족되는 코드 블록을 수행하지만 만족되지 않는 경우는 아무것도 수행하지 않았다.

만약 조건문의 만족 여부에 따라 코드를 다르게 수행하고자 하면 if-else 구조를 사용하자.

 

#예제2 : 합격, 불합격
score= int(input('점수:'))
if score>=60:
    print('합격')
else:   #if조건을 만족하지 않으면 실행되는 블록
    print('불합격')


#예제3 : 홀짝
x=int(input('숫자를 입력하세요:'))
if x%2==0:
    print('짝수')
else:
    print('홀수')

out)

점수:55
불합격
숫자를 입력하세요:50
짝수

 

if - elif - else

그럼 만약 게임의 첫 시작화면을 코딩하는 중이라면?

1. 게임시작

2. 캐릭터선택

3. 연습

4.게임종료

위 처럼 여러 조건에 따라 코드를 각각 다르게 수행하려면 if- elif - else 조건문을 사용하자.

 

menu=2

if menu ==1:
     print(‘game start’)

elif menu ==2:
     print(‘select char’)

elif menu ==3:
    print(‘exercise’)

elif menu ==4:
     print(‘game over’)

else:
     print(‘잘못 입력하셨습니다.’)

 

'파이썬이 제일 쉽다면서요' 카테고리의 다른 글

python #반복문 : while, for  (0) 2021.06.01
python #연습문제  (0) 2021.06.01
python #연습문제  (0) 2021.06.01
python #3.input과 print  (1) 2021.06.01
Python #2. 연산자  (0) 2021.06.01

Q. 숫자 2개를 입력받아 +, -, *, / 연산의 결과를 출력하시오.

 

#sol1
a= input('숫자를 입력하시오. a=')
b= input('숫자를 입력하시오. b=')
print('a+b=', int(a)+int(b))
print('a-b=', int(a)-int(b))
print('a*b=', int(a)*int(b))
print('a/b=', int(a)/int(b))



#sol 2
a, b = input('두 개의 숫자를 입력하시오.').split()
print('a+b=', int(a)+int(b))
print('a-b=', int(a)-int(b))
print('a*b=', int(a)*int(b))
print('a/b=', int(a)/int(b))



#sol 3
a, b = input('두 개의 숫자를 입력하시오.').split()
a= int(a)
b= int(b)
print('a+b=', a+b)
print('a-b=', a-b)
print('a*b=', a*b)
print('a/b=', a/b)



#sol 4
a= int(input('숫자를 입력하시오. a='))
b= int(input('숫자를 입력하시오. b='))

print('a+b=', a+b)
print('a-b=', a-b)
print('a*b=', a*b)
print('a/b=', a/b)

out)

숫자를 입력하시오. a=10
숫자를 입력하시오. b=30
a+b= 40
a-b= -20
a*b= 300
a/b= 0.3333333333333333

두 개의 숫자를 입력하시오.10 30
a+b= 40
a-b= -20
a*b= 300
a/b= 0.3333333333333333

두 개의 숫자를 입력하시오.10 30
a+b= 40
a-b= -20
a*b= 300
a/b= 0.3333333333333333

숫자를 입력하시오. a=10
숫자를 입력하시오. b=30
a+b= 40
a-b= -20
a*b= 300
a/b= 0.3333333333333333


Tip) sol2에서 .split() 을 사용하려면 두 개의 숫자를 띄어쓰기를 이용하여 나타내어야 한다.

      sol3에서 입력될 a와 b를 미리 int형 타입으로 선언한 후 출력하면 훨씬 간단해진다.

'파이썬이 제일 쉽다면서요' 카테고리의 다른 글

python #연습문제  (0) 2021.06.01
python #제어문 (if, if-else, if - elif - elif - else)  (0) 2021.06.01
python #3.input과 print  (1) 2021.06.01
Python #2. 연산자  (0) 2021.06.01
Python #1. 변수  (0) 2021.06.01
input 과 print

 

 

'''키보드 입력
print():출력
input():키보드로 입력.
'''

name = input('이름을 입력하시오')
print('name:', name)
#input()로 받은 값을 name에 저장

age = input('나이를 입력하시오')
print('age:', age)

age = input('나이를 입력하시오')   #age : '12'(문자열인 상태)
print('10년 뒤 age:', int(age)+10)  #캐스팅 함수를 이용해서 문자열 '12'를 int로 바꿔줌

'''
캐스팅 함수
int('123') => 123
float('23.345') => 23.345
str(12) => '12'
'''

'''
\n 줄바꿈
print('a', end='') 하면 줄바꿈 안함. 
'''

out)

이름을 입력하시오 hodu
name:  hodu
나이를 입력하시오4
age: 4
나이를 입력하시오4
10년 뒤 age: 14

 

파이썬에서 기본적으로 변수(또는 결과값)을 출력할 때는 print를 사용한다.

print() 를 사용하기 위해서는 우선적으로 변수값 설정이 필요하다.

하지만 input은 따로 변수설정 없이 사용자가 직접 값을 선언할 수 있다.

input 사용 시에는 항상 입력되는 값들이 문자열(str)로 지정되기 때문에 만약 다른 데이터형으로 표현을 하고 싶다면 캐스팅 함수를 이용해서 int나 float 등으로 바꿔주어야 한다. 이를 이용한 것이 세번째 예제이다.

캐스팅 함수

int('123') => 123

float('23.345') => 23.345

str(12) => '12'

'파이썬이 제일 쉽다면서요' 카테고리의 다른 글

python #제어문 (if, if-else, if - elif - elif - else)  (0) 2021.06.01
python #연습문제  (0) 2021.06.01
Python #2. 연산자  (0) 2021.06.01
Python #1. 변수  (0) 2021.06.01
python #연습문제: 별표찍기  (0) 2021.06.01
산술연산자
a=10
b=20
c=0

c=a+b
print(a, "+", b, '=', c)

c=a-b
print(a, "-", b, '=', c)

c=a*b
print(a, "*", b, '=', c)

c=a/b
print(a, "/", b, '=', c)

c=a//b
print(a, "//", b, '=', c)

c=2**3
print('2**3=', c)

c= 5%2
print('5%2=', c)

 

out)

10 + 20 = 30
10 - 20 = -10
10 * 20 = 200
10 / 20 = 0.5
10 // 20 = 0
2**3= 8
5%2= 1

산술연산자는 우리가 알고 있는 기본 사칙연산들이다.

+(더하기), -(빼기), *(곱하기), /(나누기), **(거듭제곱), %(나머지), //(몫)

연산의 순서는 초등학생 때 배우는 사칙연산과 동일하다.

 

논리연산자

논리 연산은 불린연산(Boolean operation)이라고도 한다. 참 또는 거짓을 이용해 연산을 진행한다.

A and B (A와 B 모두 참일때만 참, 모두 거짓이면 거짓)

A or B (A와 B 중 하나라도 참이면 참, 둘다 거짓이면 거짓)

not A (A가 참이면 거짓, 거짓이면 참)

 

비교연산자

== (같다)

!= (같지 않다)

< (작다)

> (크다)

<= (작거나 같다)

>= (크거나 같다)

참고로 = 은 '대입'이라는 뜻임.

 

'파이썬이 제일 쉽다면서요' 카테고리의 다른 글

python #제어문 (if, if-else, if - elif - elif - else)  (0) 2021.06.01
python #연습문제  (0) 2021.06.01
python #3.input과 print  (1) 2021.06.01
Python #1. 변수  (0) 2021.06.01
python #연습문제: 별표찍기  (0) 2021.06.01
변수를 정의 해보자.

 

변수란 '값을 담는 그릇'이라고 간단하게 생각하자.

컴퓨터 메모리에 저장(할당)한 데이터는 고유의 번지수가 있는데 인간은 그것들을 다 기억할 수 없기에 변수를 선언해주는 것이 효율적이다.

영어(대소문자 구분), 한글, 숫자(첫글자로는 안됌), 특수문자(_(언더바) 가능) 등을 변수로 사용할 수 있고 변수가 어떤 값을 갖고 있는지 예측할 수 있게 이름을 지어주는 것이 좋다.

str은 문자열, int는 정수, folat는 실수(소숫점), bool은 불린(참/거짓)으로 사용되는 변수들이다.

 

#변수를 정의함

str_val = 'abc'  #문자열
int_val = 12  #정수
float_val = 23.345  #실수
bool_val = True  #불린

#type() : 괄호안에 넣은 값의 타입을 변환
print('str_val:', str_val, ', type:', type(str_val))
print('int_val:', int_val, ', type:', type(int_val))
print('float_val:', float_val, ', type:', type(float_val))
print('bool_val:', bool_val, ', type:', type(bool_val))
더보기

out)

str_val: abc , type: <class 'str'>
int_val: 12 , type: <class 'int'>
float_val: 23.345 , type: <class 'float'>
bool_val: True , type: <class 'bool'>

 

'파이썬이 제일 쉽다면서요' 카테고리의 다른 글

python #제어문 (if, if-else, if - elif - elif - else)  (0) 2021.06.01
python #연습문제  (0) 2021.06.01
python #3.input과 print  (1) 2021.06.01
Python #2. 연산자  (0) 2021.06.01
python #연습문제: 별표찍기  (0) 2021.06.01

 

Q. 크기를 입력받아 삼각형을 출력1.

i=int(input('삼각형의 크기는?:'))
for i in range(1,i+1):
        print('*'*i)
print()

out)

 

 

Q. 크기를 입력받아 삼각형을 출력2.

i=int(input('삼각형의 크기는?:'))
for j in range(1,i+1):
    print(' '*(i-j), '*'*j)
print()

out)

 

Q. 크기를 입력받아 삼각형을 출력3.

i=int(input('삼각형의 크기는?:'))
for j in range(1,i+1):
    print(" "*(i-j), "*"*(2*j-1))

out)

 

 

 

Q. 크기를 입력받아 삼각형을 출력4.

i=int(input('삼각형의 크기는?:'))
for j in range(1,i+1):
    print(" "*(i-j), "*"*(2*j-1))
for k in range(i-1,0,-1):
    print(" "*(i-k), "*"*(2*k-1))
    

out)

 

 

 

while문보다 for문이 이해가 더 잘된다.

정보처리기사 시험에서 for문으로 여러 예제를 풀어 본 것이 도움이 되는 것같다.

하지만 약수 구하는 건 아직도 모르겠다...카운트 함수를 쓰면 안될려는지...

'파이썬이 제일 쉽다면서요' 카테고리의 다른 글

python #제어문 (if, if-else, if - elif - elif - else)  (0) 2021.06.01
python #연습문제  (0) 2021.06.01
python #3.input과 print  (1) 2021.06.01
Python #2. 연산자  (0) 2021.06.01
Python #1. 변수  (0) 2021.06.01

+ Recent posts