python

[python] 파이썬 제어문

vhxpffltm 2019. 8. 12. 22:41

파이썬 제어문(If)

출처 : 

https://www.acmicpc.net/problem/1330

https://www.acmicpc.net/problem/9498

https://www.acmicpc.net/problem/2884

https://www.acmicpc.net/problem/2739

 

 

기본적인 문제이다. if문의 사용법을 알 수 있다.

 

1
2
3
4
5
6
7
a, b = map(int,input().split())
if a > b:
    print('>')
if < b:
    print('<')
if == b:
    print('==')
 

 

어려운 내용이 없다. 다만, 필자가 파이썬을 하나도 몰랐을 때 각 제어문의 끝에 ':' 콜론의 표기만 기억하자 

 

1
2
3
4
5
6
7
8
9
10
11
= int(input())
if 90 <= a <= 100:
    print('A')
if 80 <= a <= 89:
    print('B')
if 70 <= a <= 79:
    print('C')
if 60 <= a <= 69:
    print('D')
if a < 60:
    print('F')
 

 

여기서 파이썬은 우리가 수학시간에 배운 부등호의 기호대로 사용할 수 있다. 이것은 편리한 점이다.

 

1
2
3
4
5
6
7
a,b= map(int,input().split())
if b < 45:
    b = 60-45+b
    a=a-1
else: b=b-45
if a < 0: a = 24+a
print(a,b)
 

 

위 코드는 파이썬을 작성할 때 꼭 알아야 한다. 파이썬은 {}와 같은 Scope이 없기 때문에 라인별로 공백에 따라 들여쓰기를 통해 그 범위를 지정한다. 위와 같이 if문 아래의 2줄이 if문에 엮이는 것이다.

 

 

1
2
3
= int(input())
for i in range(9):
    print(a,'*',i+1,'=',a*(i+1))
 

 

for 반복문을 사용하였다. 우리가 알던 for문과 다름을 알 수 있다. for문에 대해서는 나중에 자세히 알아보고 print()출력을 살펴보자. 파이썬에서 print안의 ,는 공백이다. 즉 a가 2이고 i가 1이면, (2 * 1 = 2) 와 같이 출력될 것이다.

 

마지막으로 우리가 아는 'else if'는 파이썬에서 elif ~~: 로 사용할 수 있다.

 

파이썬 제어문(For)

https://www.acmicpc.net/problem/2741

https://www.acmicpc.net/problem/10871 

 

 

 

 

1
2
3
4
5
= int(input())
for i in range(a):print(i+1)
 
for i in range(1,a+1):
    print(' '*(a-i)+'*'*i)
 

 

파이썬의 반복문은 위와 같이 for ~ in ~ 이다. range는 정수로 범위를 지정하며 (a)는 0부터 a-1까지 돌것이다. range(1,101,2) 과 같이 가능하며 1~100까지 2씩 증가할 것이다. 

 

1
2
3
4
a,b = map(int,input().split())
arr = list(map(int,input().split()))
for i in range(a):
    if b > arr[i]: print(arr[i], end=' ')
 

 

list의 입력이 나왔다. arr은 list인데 이것은 map으로 사용하여 입력을 공백으로 구분하여 int형으로 모두 변환하여 arr에 담게 될 것이다.  그래서 for반복문을 사용하여 if조건을 만족하면 arr[i]를 출력한다. 이 부분은 기존에 쓰던 다른 언어와 같다. 출력문의 end=' ' 옵션은 문장을 출력하고 마지막에 무엇을 쓰고 끝내는 지 정하는 것이다. 이 옵션을 사용하면 자동개행이 이루어지지 않고 end옵션으로 적용된다. 

 

파이썬 제어문(While)

https://www.acmicpc.net/problem/1110

 

1
2
3
4
5
6
7
8
9
10
11
12
13
= int(input())
= a
cnt =0
t=a
#print(a)
while True:
    b = int((a/10)) + (a%10)
    b = b%10
    a = (a%10)*10+b
    cnt = cnt+1
    #print(b)
    if(t == a) :break
print(cnt)
 

 while 은 평소에 알던 방식으로 사용하면 된다. 물론 while 조건 and 조건 으로도 사용가능하다.