Python 기본 개념

2019. 9. 12. 23:29python

기본 문법

  • Print 출력
  • Input 값을 저장할 수 있다.
  • Type 변수이 타입을 알 수  있다
  • 변수명을 숫자로 시작하면 안된다.
  • 띄어쓰기를 하면 안된다 (대신 언더바 사용)

사이트: python tutor => liveprogramig

Python 자료형

1. 숫자 (int)

2. 문자 (string) 

값을 변경하거나 순서를 변경할 수 없다. 

 

  •   "  " , '  ' 둘다 사용 가능 
my_str = “김씨가족” 
my_str = ‘Pumkin’

 

  •  따옴표 3개를 쓰면 여러줄 문자열을 한꺼번에 저장이 가능하다.
my_str = “””제스터
            토미
            메타”””   

 

  •  % operator ( ‘%s’ => 문자 ’%d’ =. 정수  ‘%f’ => 실수) 문자를 포맷팅 하는방법 중 오래된 방법 포맷팅할 문자열이 길어지면 지저분해 진다. 
my_str =  “My name is %s” % “Young choi”

print(my_str) =>  "My name is Young choi"  

 

  • {} 안에 숫자를 넣으면 인덱스 값으로 인식 문자열을 자유롭게 표현하기 위한 방식. 
“{ }”.format( )

'{} x {} = {}'.format(2, 3, 2*3)
=> "2 x 3 = 6"

'{1} x {0} = {2}'.format(2, 3, 2*3)
=> "3 x 2 = 6"

 

  •   Indexing 각 문자 마다 인덱스가 있고 -로도 표기가 가능하다.
  0 1 2 3 4 5

  P y t h o n

 -6-5-4-3-2-1

 

  •  Slicing  문자열을 잘라서 복사해온다.
  P /y t h/ o n [1:4]

  P y t / h o n [:3]

  P y /t h o n [2:]

 

  •  string.split()  문자열을 공백 단위로 잘라준다.

 

  •  Docstring  함수를 설명할때 사용
 “”” 주석입니다  “””  

 

  • Escape Code 
end 문자열의 마지막을 지정해 줄 수 있다.

print( ‘Hello’, end= ‘World ‘ )
'Hello World'
 
\n 줄바꿈 
print('Hello\nWorld')
'Hello
 World'
  
\t 탭
print('Hello\tWorld)
'Hello    World'

 

 

 

3.Boolean (True, False)

 

4.List 

한꺼번에 모아서 쓰는것 많은 수의 값을 한번에 저장한다. 값을 변경할 수 있다.

그릇이 없는 상태에서 물을 부으면 흘러가 버리는 것 처럼 list를 먼저 정의한 다음 값을 넣어야 한다.

 

  • append
my_list = []
my_list.append(3)

print(my_list) => [3]

 

  • Indexing, slicing
Indexing 

 0 1 2 3 4
[1,2,3,4,5]


slicing

my_list = [1,2,3,4]
print(my_list[1:2]) => [2]

 

  • Method 
sort() => list내의 값들을 정렬해준다.
my_list = [2,4,3,1]
my_list.sort()

print(my_list) => [1,2,3,4]


count(val) => val의 수를 카운트 해준다.
my_list = [1,2,1,3,4]

my_list.count(1) => 2


del list 값을 삭제해준다. 
my_list = [1,24,5,2]

del my_list[1]
print(my_list) => [1,5,2]

del my_list
print(my_list) => not defined


len(list) 길이를 알려준다.
my_list = [1,2,3,4]

len(my_list) => 4

 

5. tuple 

( )를 사용하지만 하지안아도 된다. 그리고 값을 바꿀수 없다.

Packing
my_tuple =  1,2,3
print(my_tuple) => (1, 2, 3)



unpacking
num1, num2, num3 = my_tuple
print(num1) => 1
print(num2) => 2
print(num3) => 3


num2, num1 = num1, num2
print(num1) => 2
print(num2) => 1
오른쪽에서 팩킹 왼쪽에서 언팩킹

 

6. Dictionary 

키와 값 쌍으로 이루어져 있는것  ({key1: val1, …})

Method
my_dict = {"a" : 1 , "b" : 2, "c" : 3}

my_dict.values()  값만 뽑아온다.
1,2,3

my_dict.keys() 키만 뽑아온다.
"a","b","c"

my_dict.items() key value 둘다 뽑아온다.
"a":1 , "b":2 , "c":3

 

7. float 소수 

8. Comment 주석 #

 

 

반복문 

For 변수 in 컨테이너:
    실행할 명령1
    실행할 명령2           => 코드블럭 
    
while 조건:     => 조건이 false가 될때 까지 반복
    실행할 명령1
    실행할 명령2

띄어쓰기를 4번 해주거나 tap을 해줘야한다. 만약 띄어쓰기를 했다면 계속 띄어쓰기를 사용해야 한다. 중간에 tap을 사용하면 에러가 난다. 

띄어쓰기나 tap 뭘 사용해도 무관하지만 보통 띄어쓰기를 권장한다고 한다.  

 

Comprehension

 iterable한 오브젝트를 생성하기 위한 방법 다음과 같은 4가지 방법이 있다.

  • List Comprehension (LC)
  • Set Comprehension (SC)
  • Dict Comprehension (DC)
  • Generator Expression (GE)
Numbers = [1,2,3,4,5,6,7,8,9,10]
odd_numbers = []

일반적인 반복문
For number in numbers:
    If number % 2 == 1:
        odd_numbers.append(number)

print(odd_numbers)

comprehension 으로 변형
[number for number in numbers if number % 2 == 1]

 

if 문

If 조건:

    실행할 멸령1.  => 코드블럭 조건이 참일경우값이 들어감

    실행할 명령2

    else:

    실행할 명령1

    실행할 명령2



If 조건:

    실행할 멸령1. 

    실행할 명령2

    elif 조건: 

    실행할 명령1

    실행할 명령2

```

Continue 다시 조건으로 돌아감

Break 강제로 종료

Function 

  • 내장함수 => print…
  • 모듈의 함수 => 가져다가 쓸 수 있는 함수
  • 사용자 정의 함수 => 직접 만드는 함수

함수 정의

def 함수이름(인자1,…):
    실행할 명령1
    실행할 명령2

    return 결과

 리턴값을 돌려줄때 tuple로 만들어서 돌려준다.

def add_mul(num1, num2):
    return num1 + num2, num1 * num2

결과갑 => (3,2)

tuple로 리턴되기 때문에 패킹과 언팩킹도 가능하다.

my_add, my_mul = add_mul(1, 2)

my_add = 3

my_mul = 2

Module

이미 만들어져 있는 것들을 import해서 사용한다.

 

random 

Import random 

random.chice
Fruits = [‘망고’ , ‘사과’,  ‘키위’]
print(random.choice(Fruits))

random.sample
     print(random.sample(students,2)
     print(random.sample(range(1,46),6)



random.randint

print(random.randint(8,10))