파이썬 기본 문법

Ryu_jin·2022년 9월 22일
0

Python Algorithm

목록 보기
1/5
post-thumbnail

파이썬 기본 문법


print("Hello, python!!")
print("작성", end = "\n")
//end 에서 다음 처리 설정 가능

  • 주석 처리

# 주석 처리할 코드 

  • if문 사용

if 5 > 2:
  print("Five is greater than two!")

  • 변수 선언

x = 5       #타입 정의 필요 x
y = "John"
z = 10.5
w = [10,20,30] #list
t = (10,20,30) #tuple
x, y, z = "Orange", "Banana", "Cherry"     #각각의 변수에 할당 

fruits = ["apple", "banana", "cherry"]     #list unpacking
x, y, z = fruits 
x, _, _ = fruits 	#underscope 를 통해 필요한 값만 추출

  • input() 사용

    input은 입력되는 모든 것을 문자열로 취급한다.
    프롬프트를 띄워서 사용자 입력받기.
# ex1
name = input('이름이 뭐죠? : ') # 변수명 = input(문자열)
print('안녕!',name,'입니다')    # 출력 데이터의 형 : 문자열

# ex2
x = input("input integer:")
y = input("input integer:")
x = int(x)					  # 형변환!! 문자열 -> 정수형
y = int(y)				
print(x+y)					  # 입력한 두 정수의 덧셈 계산 후 출력
  • 띄어쓰기는 콤마로 한다.
    한줄에 결과값 출력하기.
    내부에 줄바꿈 포함.


  • 파이썬 데이터 타입

# 타입 
Text Type: str
Numeric Types: int, float
Sequence Types: list, tuple, range
Mapping Type: dict
Set Types: set
Boolean Type: bool
None Type: NoneType

# 데이터 타입 확인
x = 5
print(type(x)) -> 결과 <class 'int'>

  • list 와 tuple 차이

x = ("apple", "banana", "cherry") #tuple
print(x)
print(type(x))
x[0]

# list : 수정 삽입 추가 삭제 (mutable) 
# list 의 원소 접근 : 변수명 [index] -> index 음수도 가능 
# index [0,1,2,3] =  [-4,-3,-2,-1]

# tuple : 수정 삽입 추가 삭제 (emutable)

  • 연산자

# 기본연산자
print(x + y)
print(x - y)
print(x * y)
print(x / y)
print(x % y)
print(x ** y)   # 제곱 
print(x // y)   # 몫 

# 복합연산자
print(x += y)
print(x -= y)
print(x *= y)
print(x /= y)

# 비교연산자
print(x == y)
print(x != y)
print(x > y), print(x < y) 
print(x >= y), print(x <= y)

# 논리연산자
print(x > 3 and x < 10)
print(x > 3 or x < 4)
print(not(x > 3 and x < 10))

# 멤버연산자
x = ["apple", "banana"]
print("banana" in x)    		-> True
print("pineapple" not in x) 	-> True

  • 문자열 formatting

  1. format() 함수 : str 클래스에 정의된 메소드
  2. %와 서식기호를 이용한 방법
1. "문자열".format()
   "문자열변수".format()
   
ex) quantity = 3
	itemno = 567
	price = 49.95
	myorder = "I want {} pieces of item {} for {} dollars."
	print(myorder.format(quantity, itemno, price))

2. % 기호 뒤에 자료형을 가리키는 문자
   사용방법: "...%서식기호..." % (변수명)
   
ex)	a = 10
	b = 20
	print("%d+%d=%d"%(a,b,a+b))

  • 조건 분기문

  1. if
  2. if~else
  3. if~elif~else 다중조건 (elif = else if)
  4. 중첩 조건 분기문
1. if b > a:
   	print("b is greater than a")

2. if b > a:
  	 print("b is greater than a")
   else:
  	 print("b is not greater than a")
     
3. if b > a:
   	print("b is greater than a")
   elif a == b:
  	print("a and b are equal")
   else:
    print("a is greater than b")
    
4. if x > 10:
     print("Above ten,")
   	 if x > 20:
        print("and also above 20!")
     else:
        print("but not above 20.")    

  • List(리스트)

    순서가 있는 원소들의 배열 (mutable : 수정, 삭제, 추가)
# 리스트 생성 방법
a = []
b = [1, 2, 3] 
c = ['life', 'is', 'too', 'short'] 
d = [1, 2, ['python', 'programming']] # 다양한 타입의 데이터

# indexing(정보 검색)
print(a[0])  # 변수명[0]: 리스트의 첫 문자
print(a[-1]) # 변수명[-1]: 리스트의 마지막 문자

# len() : 리스트의 크기 [문자열, 리스트, 튜플, 딕셔너리에도 사용]
dept = [[1,2,3],[3,4,5,6]] 
print(len(dept))		-> 2
print(len(dept[0])) 	-> 3
print(len(dept[1]))		-> 4

# append() : 리스트에 요소 추가
# 리스트의 맨 마지막에 '요소'를 추가하는 함수이다.
# 리스트 안에는 어떤 자료형도 추가할 수 있다.
arr = []
arr.append(10)
arr.append(20)
arr.append(30)
print(arr)			-> [10, 20, 30]
print(len(arr))		-> 3

# pop() : 리스트의 맨 마지막 '요소'를 삭제
# pop(index) : 원하는 위치의 '요소' 삭제
arr.pop()			
arr					-> [10, 20]		# 가장 마지막 삭제
arr.pop(0)						
arr					-> [20]   		# 선택 삭제

  • while 반복문

  # 기본 구조
  while 조건식: 
  	반복시킬 문장
      조건식이 거짓이 되는 문장 
      # 내부에 if ~ break 문을 통해 제어
     
  # 예시    
  i = 1
  while i < 6:
  	print(i)
  	if i == 3:
        break     
  	i += 1			-> 1 2 3
 
 # Continue
 # 3 뛰어넘기
  i = 0
  while i < 6:
    i += 1
    if i == 3:
      continue  
    print(i)       -> 1 2 4 5 6

  • for 반복문

    • for 변수명 in 리스트 :
# 리스트에서의 for 반복문
my_list=[1,2,3,4]
for x in my_list:
  print(x, end= ' ')	-> 1 2 3 4

# 문자열에서의 for 반복문
for x in "Banana"
  print(x)      		-> B a n a n a

  • for 반복문과 range()함수

    • range (start, end, step)
      • range (0, 10, 1)
        data = [1, 2, 3 ..... 10]
# list 대신에 range 를 넣어 범위를 지정
 for i in range(10):  		# == range (0, 10, 1) 같음
   print(i, end=' ')	   -> [0,1,2,3,4,5,6,7,8,9]
  
# 시작을 다른 값으로 지정할 때
 for x in range(2, 6):
   print(x, end= ' ')    -> 2 3 4 5 
   
# 시작과 증감식을 다른 값으로 지정할 때 
 for x in range(2, 30, 3):
   print(x, end=' ')	 -> 2 5 8 11 14 17 20 23 26 29 
   
# continue
# 짝수만 출력
 for t in [1,2,3,4,5,6,7,8]:
   if t % 2 == 1:
     continue
   print(t, end=' ')   -> 2 4 6 8

리스트 <-> range


  • 함수

    • 함수의 구조:
      def 함수명(매개변수):

         <수행할 문장1>
          <수행할 문장2>
           ...
          return <수식>
          

1.1 매개변수 미사용

# 함수 정의(매개변수 미사용)
def my_function():
  print("Hello from a function")

my_function()  # 함수 호출

1.2 매개변수 사용

# 함수 정의(매개변수 사용)
def my_function(fname):
  print(fname + " 님")

my_function("영희") #함수 호출시 인자 사용
my_function("철수") #함수 호출시 인자 사용

1.3 함수 정의와 호출

# 함수 정의와 호출 : Number of Arguments
# return
def add(a,b):
  return a+b

a = 10
b = 20
result = add(a,b)

print(result)

1.4 재귀함수


# 형태 1
def fuction(입력) :
   if 입력 > 일정값 :				# 입력이 일정 값보다 크면 
     return function(입력 -1)	# 입력보다 작은 값	
   else :
     return 특정값  				# 재귀 호출 종료
     
# 형태 2
def fuction(입력) :
   if 입력 <= 일정값 :				# 입력이 일정 값보다 크지않으면 
     return 특정값	  			# 재귀 호출 종료	
   
   function(입력보다 작은 값)
     return 결과값  				

# 예시 
def recur_print():
  print("*",end=' ')
  recur_print()

recur_print()      			   -> * * * * * .... 무한 호출 에러

# 팩토리얼 (재귀함수)
def factorial_recur(n):
  if n <= 1:
    return 1
  else:
    return n * factorial_recur(n-1)

result = factorial_recur(4)
      		   -> 24
           
# 팩토리얼 (for 문)
def factorial_loop(n):
  factorial = 1
  for i in range(1,n+1):
    factorial *= i
  return factorial

result = factorial_loop(4)
profile
Empire

0개의 댓글