Python basic(1)


파이썬 사용 환경

  • 파이썬을 사용하는데 여러 환경이 있음

    • python idle
    • pycharm
    • eclipse 내 추가 프로그램 설치
    • jupyter notebook
    • google colab


python idle로 시작하기
  • python.org에서 다운로드
    • 설치시 경로는 원하는 곳에 설치
  • Python IDLE 실행
    • IDLE Shell은 한 문장만 실행 가능
    • 여러 문장 실행시, newfile>새로운 폴더 생성 후 작성
      • 파일이 저장될 경로는 지정
      • 기본 확장자는 .py
    • 작성 후 실행은 run



변수타입

  • 변수선언

    JAVA에서는 변수를 선언할 때 타입을 함께 선언해야 한다면, PYTHON에서는 바로 선언이 가능

    k = None
    b = 30
    i ='abc'
    
    • Python에서 null 타입은 None

    • 출력문은 print 함수 사용

      print(type(k))
      


  • 파이썬의 변수타입

    파이썬에 많은 변수타입이 있으나 아주 기본적인 것만 정리해두고, 나머지는 추가해서 숙지하도록 한다.

    변수타입  
    None null
    int 정수
    float 실수
    bool 참/거짓(boolean)
    str 문자열
    • python에서는 Java처럼 변수를 선언만 해둘 수 없음(ex. int i;) 대신 None타입으로 선언


연산자

  • 산술연산자
연산자  
+, -, * 덧셈, 뺄셈, 곱셈
/ 나눗셈 (소수점 출력)
// 나눗셈 (소수점 생략)
% 나머지
A**B, pow(A, B) 지수 (A의 B 거듭제곱)
  • 관계연산자
연산자  
> 크다
>= 크거나 같다
< 작다
<= 작거나 같다
== 같다
!= 같지 않다
  • 논리연산자
연산자  
and 둘 다 참 True
or 둘 중 하나 참 True
not 거짓이면 True
  • 문자연산자

    • python에서 문자열 구분은 “ “,’ ‘ 둘 다 가능

    • 문자열에서 + 는 같은 타입끼리만 결합이 가능

      • 자동형변환 X
    • 문자열 * int 사용시 int만큼 반복

      a='abc'
      print(a*3)
      #abcabcabc 출력
      
    • slice연산자

      변수이름[index:index] :첫번째 인덱스값부터 두번째 인덱스값까지

      • 첫 인덱스만 선언: 해당 인덱스부터 나머지 문자열
      • 마지막 인덱스만 선언: 0번 인덱스부터 해당 인덱스 이전까지
      a='abc'
      print(a[2:4]) #2번 인덱스부터 4번 인덱스 이전까지 부분 문자열
      print(a[2:])  #2번 인덱스부터 나머지 문자열
      print(a[:4])  #0번 인덱스부터 4번 인덱스 이전까지
      
    • in : 포함 여부 - bool값을 return

      a="multicampus"
      print("cam" in  a) #True
      
    • find: 해당 문자열의 포함 위치가 몇 번에 위치해있는지를 return해주는 함수

      print(a.find('cam'))
      print(a.rfind('cam')) #오른쪽부터 조회
      //int return
      
    • count: 문자열에서 특정 문자의 개수를 세어준다

      • ex. multicampus에 m이 몇 개 들어있는가
      a="multicampus"
      print(a.count('m')) # 2
      
    • len: 총 문자 개수

      • 문자열타입 뿐 아니라 정수 타입, 배열 타입 모두 사용 가능
      a="multicampus"
      print(len(a)) #총 문자 개수 //11
      
    • .format(): 블럭 안에 변수값을 넣어주는 기능

      print("{}는 정수이고 {}는 문자열입니다".format(1, 'a')) #1는 정수이고 a는 문자열입니다
      print("{:10.2f}".format(10/3)) #정수 10자리에 소수점 둘째자리까지 // 3.33
      print("{:10d}".format(10//3)) #정수만 //3
      


타입변환

  • 문자열 -> 정수

    str(intType)

    print(type(100)) #int
    print(type(str(100))) #str
    print("abc"+"def"+ str(100))
    
  • 정수->문자열

    int(strType)


Scanner input

  • 파이썬에서 키보드 입력받기

    • 입력시 입력 값이 변수값이 됨
    a = input();
    in1 = input('정수 1개를 입력');
    


명령행 입력변수 (Customize Run)

자바로 치면 run configuration

  • 입력변수 만들기
    • import sys 필수
    • 첫번째 값, [0] 값은 모듈 이름
import sys
print(sys.argv[1])
print(sys.argv[2])
print(sys.argv[3])
# sys 출력시 : ['/Users/lulala/JAVA_multi/python_source/a.py', 'python', '100', '3.14']


내장함수

  • 데이터 저장 함수

    저장타입  
    list[ ] 동적인 특성
    여러 타입의 데이터 저장 가능, index O
    Tuple ( ) 값을 변경할 수 없는 리스트
    set{ } 저장 순서 없음(index X)
    중복데이터 불가(추가될 시 무시)
    dictionary 저장 순서 없음(index X)
    key:value로 구성
    • list
    a2=[1, 2, 3, 4, 5]
    a=["title", 2, 45000.05, True, [90, 30]]
    
    • 데이터 추가

      • append : 배열 맨 뒤에 추가

        a.append(100)
        
      • insert: 배열 중간에 끼워넣기

        a.insert(1, 200)
        #1번 인덱스에 200 value 추가 
        #끼워넣기, 원래 존재했던 index-value는 한 칸씩 뒤로 밀려남
        
    • 데이터 변경

      a[1]=300 #1번 인덱스의 값을 300으로 변경
      
    • 데이터 삭제

      • pop() , remove( ), del
      #리스트의 마지막 데이터 삭제
      a.pop()
      #해당 data 삭제
      a.remove(데이터값)
      #해당 인덱스 데이터 삭제
      del a[0] 
      
    • Tuple

    d=(1, 2, 3, 4, 5)
    

    ( )없는 Tuple

    a=1, 2, 3, 4, 5#unpacking
    a, b= 1, 2  #두 개의 변수를 동시 선언. a는 TupleX 변수
    
    • set

      • value만 존재, 중복 데이터X
      b={1, 2, 3, 4, 5, 5} #중복데이터 추가하면 무시
      b.add(5) #중복데이터 추가하면 무시
      

      추가

      .add(데이터값)

    • dictionary

      • key:value - key값 중복X
      c={"name":"lee", "2":200, "id":"lee"}
      #출력시 
      print(c.items())
      print(c.keys())
      print(c.values())
      


  • 문자열 관련 내장함수

    • in : 포함 여부 - bool값을 return

      a="multicampus"
      print("cam" in  a) #True
      
    • find: 해당 문자열의 포함 위치가 몇 번에 위치해있는지를 return해주는 함수

      print(a.find('cam'))
      print(a.rfind('cam')) #오른쪽부터 조회
      //int return
      
    • count: 문자열에서 특정 문자의 개수를 세어준다

      • ex. multicampus에 m이 몇 개 들어있는가
      a="multicampus"
      print(a.count('m')) # 2
      
    • len: 총 문자 개수

      • 문자열타입 뿐 아니라 정수 타입, 배열 타입 모두 사용 가능
      a="multicampus"
      print(len(a)) #총 문자 개수 //11
      
    • .format(): 블럭 안에 변수값을 넣어주는 기능

      print("{}는 정수이고 {}는 문자열입니다".format(1, 'a')) #1는 정수이고 a는 문자열입니다
      print("{:10.2f}".format(10/3)) #정수 10자리에 소수점 둘째자리까지 // 3.33
      print("{:10d}".format(10//3)) #정수만 //3
      


  • 절대값, 버림 반올림

    함수  
    abs() 절대값 계산 함수
    round() 반올림 계산 함수
    trunc() 버림계산 함수(math모듈)


조건문/반복문

JAVA와 달리 { }대신 들여쓰기로 포함관계여부를 결정. 동일 포함 관계에 있는 구문은 같은 들여쓰기 내에 작성

해당 키워드가 종료되면 반드시 :

종료는 return


  1. 조건문
  • if문

    if 10>5:
          print(1)
          print(100)
    elif 10==10:
      		print(2)
    else:
          print(2)
    			print(200)
    
    • else if 는 elif


  1. 반복문
  • while문

    import random
    lottoset=set() #data가 없는 set 생성(중복데이터 X, 무시)
    cnt=0
    while True:
          if len(lottoset) == 6:
                break
          cnt = cnt+1
          lottonum=random.randint(1, 45)
          print("{}번째 난수 {}를 생성합니다.".format(cnt, lottonum))
          lottoset.add(lottonum)
    print(lottoset)
      
    
    • random.randint(1, 45)
      • random함수: 1-45사이에서 랜덤 정수 하나를 출력


  • for문

    for 변수 in 반복횟수

    print(range(1, 11, 1)) #1부터 시작해서 10까지(11보다 작은)의 범위, 1씩 증가 즉 1-10까지의 범위
    range(11) #시작값 default=0 / 증가값 default=1
    for i in range(11):#0-10까지 반복(11반복)
          print(i)
    
    • range

      range(시작값, 끝나는값, 증가값)

      range(끝나는값) : 기본 시작값은 0, 기본 증가값은 1

    a=[1, 2, 3, 4, 5]
    for i in a:#배열 안의 값이 없을때까지 출력
          print(i)
    
    #index포함해서 출력하기
    for i in range(0, len(a), 1):#배열 안의 값이 없을때까지 출력
          print("{}번째 인덱스 값은 {}입니다.".format(i, a[i]))
    
    #dictionary출력하기 
    d={"k1":1, "k2":2, "k3":3, "k4":4, "k5":5}
    # d.items() : duple형태로 출력 (소괄호), key:value 출력
    for key, value in d.items():
          print("{}키의 값은 {}입니다".format(key, value))