본문 바로가기
개발자 일지/Phython

[인프런]파이썬 알고리즘 기초 문법 정리1

by 네빌링 2021. 4. 11.
반응형

-파이썬의 기초적인 문법과 새로 알게된 문법 등을 정리한다.

-인프런의 김태원님 파이썬 강의를 학습한 내용을 간단하게 정리한다.


변수와 출력 등

 변수 대입 방법과 출력 방법 등을 아래와 같이 정리하였다. 

a,b=10,20 #a=10, b=20과 같은 의미
print(type(a)) #a의 타입을 알려준다(int)

c=10.5
print(type(c)) #c의 타입을 알려준다(float)

d='student'
print(type(d)) #d의 타입을 알려준다(str)

a,b,c = 1,2,3
print(a,b,c, sep=',') #1,2,3이라는 결과가 나옴. sep은 separator의 약자로 출력값 사이에 원하는 sep을 넣을 수 있음

#end로 내려쓰기를 띄어쓰기로 바꾸기(결과는 1 2 3)
print(a, end=' ')
print(b, end=' ')
print(c, end=' ')

변수 입력 및 연산자

#표준입력
a=input() #표준입력
print(a)

b=input("숫자를 입력하세요:") #표준입력 시 안내문(?) 표시 후 입력
print(b)

a,b = input("숫자를 입력하세요 : ").split() #숫자 2개를 띄어쓰기로 입력하면 a,b에 대입됨
print(a,b)

print(a+b) #2 3을 입력하면 5가 아닌 23이 나옴(str타입이기 때문에 숫자형으로 파싱 필요)

#int형 parsing
a=int(a)
b=int(b)
print(a+b) #5

#입력값을 int로 바로 바꾸기
a,b = map(int, input("숫자를 입력하세요 : ").split()) #입력 값을 정수화(int)시켜서 a,b에 대입
print(a+b) #3 2입력시 5출력
print(a-b) #3 2입력시 1출력
print(a//b) #몫연산 : 3 2 입력시 3을 2로나눈 몫인 1출력
print(a%b) #나머지연산
print(a**b) #거듭제곱 : 3 2 입력시 3^2인 9출력

#실수+정수 -> 실수(더 큰 범위로 흡수)
a=4.3
b=5
print(a,b) #9.3

조건문(if분기문, 다중if문 등)

#if문
x=7
if x==7:
    print("x is 7") #파이썬은 들여쓰기(indent)도 문법처리(default 4칸)
    
#중첩 if문
x=15
if x>=10:
	if x%2==1:
    	print("10이상의 홀수")
        
#중첩 if 다른 방법1(1보다 크고 10보다 작은 정수 구하기)
if 1<x and x<10:
	print("1보다 크고 10보다 작은 정수")
    
#중첩 if 다른 방법2(1보다 크고 10보다 작은 정수 구하기)
if 1<x<10:
	print("1보다 크고 10보다 작은 정수")

#분기문(학점 구하기)
if x>=90:
	print("A학점")
elif x>=80:
	print("B학점")
elif x>=70:
	print("C학점")
else:
	print("D학점")

 

if 1<x<10 같은 방식이 되는 것은 충격적이다(..)

 

반복문

#range()함수 : 범위를 구할 때 사용
a=range(10)
print(list(a)) # 0부터10까지 리스트 만들기 [0,1,2,3...9]

a=range(1,11)
print(list(a)) # 1부터 10까지 리스트 만들기 [1,2,3,4...10]

#for문
for i in range(10):
    print(i)	# 0부터 9까지 출력
    
for i in range(10):
    print(i, end=' ') # 0 1 2 3 4 5 6 7 8 9

#10부터 0까지 1씩 작아지게 돌리기
for i in range(10,0,-1): # 10 9 8 7...0
    print(i)
    
#while문
i=1
while i<=10:
    print(i)
    i=i+1
    
#break
i=1
while True:	#무한루프
    print(i) # 1 2 3 4 5 6 7 8 9 10
    if i==10:
    	break # 반복문을 빠져나감
    i+=1
    
#continue
for i in range(1,11):
    if i%2==0:
        continue # 짝수일 때 그냥 지나간 후 다음 반복문
    print(i)	# 1 3 5 7 9

#for else : for문이 끝난 후 else 출력
#결과 : 1 2 3 4 5 6 7 8 9 10 15
for i in range(1,11):
    print(i)
    if i>15:
        break
else:
    print(15)


'''
반복문 문제풀기
'''

#1)1~N까지 홀수 출력
a = int(input())
for i in range(1,a+1):
   if i%2==1:
      print(i)

#2)1~N까지 합 구하기
a = int(input())
sum = 0
for i in range(1,a+1):
   sum += i
print(sum)

#3)N의 약수 출력하기
a = int(input())
for i in range(1,a+1):
   if a%i==0:
      print(i, end=' ')

 

중첩 반복문(2중 for문)

#0 1 2 3 4를 5번 반복
for i in range(5): #0부터 4까지 반복
    for j in range(5): #0부터 4까지 반복
        print(j, end=' ')
    print()
   
#별 순서대로 개수만큼 찍기(방법1)
'''
*
* *
* * *
* * * *
* * * * *
'''
for i range(5):
    for j in range(5):
        if j<=i:
        print("*", end=' ')
    print()
      
#별 순서대로 개수만큼 찍기(방법2)
'''
*
* *
* * *
* * * * 
* * * * *
'''
for i in range(5):
    for j in range(i+1):
        print("*", end=' ')
    print()

#별 반대로 순서 찍기(방법1)
'''
* * * * *
* * * *
* * *
* *
*
'''
for i in range(5,0,-1):
    for j in range(i):
        print("*", end=' ')
    print()
   
#별 반대로 순서 찍기(방법2)
'''
* * * * *
* * * *
* * *
* *
*
'''
for i in range(5):
    for j in range(5-i):
        print("*", end=' ')
    print()
반응형