EMDI는 지금도 개발중

Python with Django : 파이썬의 기초 숫자형 부터 응용까지 본문

언어/Python

Python with Django : 파이썬의 기초 숫자형 부터 응용까지

EMDI 2020. 6. 10. 11:24

1. 숫자형( type Number )

항목 파이썬 사용 예
정수(Integer) 123, -345, 0
실수(Floating-Point) 123.45, -1234.5, 3.4e10123, -345, 0
8진수(Octal) 0o34, 0o25
16진수(Hexadecimal) 0x2a, .0xFF

 

# 1.정수형

>>> a = 123

>>> a = -178

>>> a = 0



# 2.실수형

>>> a = 1.2

>>> a = -3.45



# 3. 사칙연산

>>> a = 3

>>> b = 4

>>> a + b

7

 

사칙연산 의미 사용법 예) a = 3 , b = 4
a + b 더하기 >>> a + b
7
a * b 곱하기 >>> a * b
12
a / b 나누기 >>> a / b
0.75
a ** b x의 y제곱 >>> a ** b
81
a % b 나머지 >>> 3 % 4
4
a // b >>> 3 // b
0

 

 

2. 문자열 자료형 (type String)

# 1. 문자열에 작은따옴표(') 포함시키기
>>> food = "Python's favorite food is perl"
>>> food
"Python's favorite food is perl"
// 만약 큰따옴표(")가 아닌 같은 작은따옴표(')를 사용했을 때는 구문오류(SyntaxError)가 발생한다

# 2. 문자열에 큰따옴표(") 포함시키기
>>> say = '"Python is very easy." he says.'

# 3. 백슬리시(\)를 사용해서 작은따옴표(')와 큰따옴표(")를 문자열에 포함시키기
>>> food = 'Python\'s favorite food is perl'
>>> say = "\"Python is very easy.\" he says.'

# 4. 줄을 바꾸는 이스케이프 코드 \n 삽입
>>> multiline = "Life is too short \n You need python"

# 5. 또는 연속된 작은따옴표(')/큰따옴표(") 3개를 사용하기
>>> multiline = '''
... Life is too short
... You need python
... '''

>>> multiline = """
... Life is too short
... You need python
... """

 

코드 설명
\n 문자열 안에서 줄을 바꿀 때 사용
\t 문자열 사이에 탭 간격을 줄 때 사용
\\ 문자 \를 그대로 표현할 때 사용
\' 작은따옴표 표현할 때 사용
\" 큰따옴표 표현할 때 사용
\r 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동)
\f 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동)
\a 벨 소리(출력할 때 PC 스피커에서 삑소리가 난다)
\b 백스페이스
\000 널 문자

 

파이썬 기초부터 보다보면 신기한 것들이 종종 나옵니다.뭐.. 위에까지는 안배워도 대충 알다싶은 내용들이고 이제 오류날 것 같아 보이는 것들이 파이썬에서는 실행이 됩니다.

 

# 1. 문자열 더하기
>>> head = "Python"
>>> tail = " is fun!"
>>> head + tail
'Python is fun!'

# 2. 문자열 곱하기
>>> a = "p"
>>> a * 2
'pp'

# 3. 문자열 길이 구하기
>>> a = "Python is fun!"
>>> len(a)
14

# 4. 문자열 인덱싱
>>> a = "Python is fun!"
>>> a[3]
'h'
// 파이썬은 0부터 시작
>>> a = "Python is fun!"
>>> a[-1]
'!'

# 5. 문자열 슬라이싱
>>> a = "Python is fun!"
>>> b = a[0] + a[1] + a[2]
>>> b
'Pyt'

>>> a = "Python is fun!"
>>> b = a[0:2]
>>> b
'Pyt'

# 6. 활용하기
>>> a = "20010331Rainy"
>>> date = a[:8]
>>> weather = a[8:]
>>> date
'20010331'
>>> weather
'Rainy'

# 7. 문자열 단어 바꾸기
>>> a = "Pithon is fun!"
>>> a[1]
'i'
>>> a[1] = 'y' // 이렇게 직접 문자열을 대입하면 오류 난다.

>>> a = 'Pithon is fun!'
>>> a = a[0] + 'y' + a[2:]
>>> a
'Python is fun!'

 

코드 설명
%s 문자열(string)
%c 문자 1개(Character)
%d 정수(Integer)
%f 부동 소수(Floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 '%' 자체)

 

# 1. 문자열 포맷팅
>>> "Python %s fun!" % is
'Python is fun!'
>>> "rate is %s" % 3.234
'rate is 3.234'
>> "Error is %d%%" % 98
'Error is 98%'

# 2. 포맷코드와 숫자 함께 쓰기
>>> "%10s" % "hi"
'        hi' // 전체 길이 10개 중 오른쪽 정렬 hi 빼고 나머지 공백

>>> "%-10sJane" % 'hi'
'hi        Jane'

# 3. 소수점 표현하기
>>> "%0.4f" % 3.42134234
'3.4213' //4번째 자리까지만 나타내고 싶은 경우

>>> "%10.4f" % 3.42134234
'    3.4213' //총 10개인 문자에서 4번째 자리까지만 나타내고 싶은 부동 소수 3.4213

# 4. format함수를 사용한 포매팅
>>> "I eat {0} apples".format(3)
'I eat 3 apples'
>>> "I eat {0} apples".format("five")
'I eat five apples'
>>> number = 3
>>> "I eat {0} apples".format(number)
'I eat 3 apples'

>>> number = 2
>>> "I eat {0} apples. It's {check} delicious".format(number, check="really")
"I eat 2 apples. It's really delicious"

 

정렬 결과값
"{0:<10}".format("hi") 'hi '
"{0:>10}".format("hi") ' hi'
"{0:^10}".format("hi") ' hi '
"{0:=^10}".format("hi") '====hi===='
관련함수 a = "hobby" 결과값
a.count('b') 2
a.find('b') 2 (0부터시작해서 첫번째 b, 존재하지 않으면 -1)
a.index('b') 2 (0부터 시작, 존재하지 않으면 오류발생)
",".join('abcd') 'a,b,c,d'
a.upper() //소문자를 대문자로 HOBBY
a.lower() //대문자를 소문자로 hobby
a=" hi"
a.lstrip() //왼쪽 공백지우기
hi
a="hi "
a.rstrip() //오른쪽 공백지우기
hi
a=" hi "
a.strip() //양쪽 공백지우기
hi
a="Life is too short"
a.replace("Life", "Your leg")
Your leg is too short
a="Life is too short"
a.split()
['Life', 'is', 'too', 'short']

 

3. 함수

// function 함수명()을 파이썬에서는 def 함수명()으로 사용한다
def chat():
  print("Hello!")
  print("Bye")
chat()

// 인자를 주고 메소드 만들어보기
def chat(name1, name2):
  print("%s: 안녕?" %name1)
  print("%s: 만나서 반가워!" %name2)
chat("홍길동","김영희")

// 같은 출력에 여러 인자 넣어보기
def chat(name1, name2, age):
  print("%s: 안녕?" %name1)
  print("%s: 만나서 반가워!" %name2)
  print("%s: 몇살이니?" %name1)
  print("%s: 나는 %d" % (name2,age))
chat("홍길동","김영희", 15)

// 사칙연산을 포함한 메소드 만들기 + 반환값 받기
def dsum(a, b):
  result = a + b
  return result

d = dsum(1, 2)
print(d)

보통 변수를 만들면 string, int와 같은 타입을 꼭 부여를 해야했었는데 파이썬에서는 그렇게 안해도 되는 점이 뭔가 어색하면서도 편하네요ㅎㅎ 계속해서 배워봅시다!

 

 

4. 함수 응용 예제 문제풀이

# 먼저 이름과 나이를 받아라
# 나이가 10살 미만이면 "안녕"이라고 말해라
# 나이가 10살에서 20살 사이면 "안녕하세요"라고 말해라
# 그 외에는 "안녕하십니까"라고 말해라

// 여기서 중요한 점! function = def / else if = elif로 쓰는거 까먹지말기!
def sayHello(name, age):
  if age < 10:
    print("안녕" + name)
  elif age >= 10 and age <= 20:
    print("안녕하세요" + name)
  else: print("안녕하십니까" + name)

sayHello("철수", 10)
sayHello("영희", 18)
sayHello("길동", 40)

 

 

5. 반복문

# for, while 반복문
# 1. for
for i in range(10):
  print(i)
  print("철수 : 안녕 영희야 뭐해?")
  print("영희 : 안녕 철수야, 그냥 있어.")

# 2. while
i = 0
while i < 3:
  print("철수 : 안녕 영희야 뭐해?")
  print("영희 : 안녕 철수야, 그냥 있어.")
  i = i + 1

# break, continue
# 1. break
i = 0
while True:
  print(i) #0
  print("철수: 안녕 영희야?")
  print("영희: 안녕 철수야")
  i = i + 1
  if i > 2:
    break

for i in range(100):
  print(i) #0
  print("철수: 안녕 영희야?")
  print("영희: 안녕 철수야")
  if i > 2:
    break

# 2. continue
for i in range(3):
  print(i) #0
  print("철수: 안녕 영희야?")
  print("영희: 안녕 철수야")
  continue
  print("태수: 안녕 애들아")
// 위와 같이 쓰면 태수의 말은 나오지 않는다.

 

 

 

6. 리스트와 튜플

# 1. 리스트
x = [1,2,3,4]
y = ["hello", "world"]
print(x + y)

x = [1,2,3,4]
x[3] = 10
print(x[3])

x = [4,3,2,1]
print(x[0]) // 0번째 값을 보여줘
print(len(x)) // x의 길이를 보여줘
print(sorted(x)) // x의 정렬
print(sum(x)) //합계
print(x.index(3)) // 3의 위치를 찾기
print(4 in x) // x안에 4라는 값이 있는가 True or False로 반환

# 2. 튜플
x = (1, 2, 3)
y = ('a', 'b', 'c')
z = (1, 'hello', 'bye')

x[1] = 10 // 오류난다
단, 튜플은 안에 들어있는 애들을 못바꾼다.​

 

 

 

7. 딕셔너리

# x = dict{}
x = { "name" : "홍길동",
      "age" : 20}

print(x["name"])
print("age" in x) #포함되어있는지

print(x.keys()) //전체 key값만 보여준다
print(x.values()) //전체 value값만 보여준다

for key in x:
  print("key : " + key)
  print(x[key])


# 과일 숫자 세는 프로그램
fruit = ["사과", "사과", "딸기", "배", "복숭아", "바나나", "키위", "복숭아", "바나나"]
d = {}
for f in fruit:
  if f in d: #"사과"라는 키가 d라는 딕셔너리에 들어있는지?
    #d[f] += 1 
    d[f] = d[f] + 1 #있으면 사과 개수 하나 올리기
  else:
    d[f] = 1 #없으면 딕서녀리에 넣고 밸루 1로 만들어줘
print(d)

 

 

 

8. 클래스 VS 오브젝트 그리고 상속

# 클래스와 오브젝트(인스턴스)
class Person:
  #name = "홍길동" 처음의 전역변수
  #이것을 직접 코딩말고 메소드로 만들어서 받기
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def say_hello(self, to_name):
    print("안녕? " + to_name + " 나는 " + self.name)

  def introduce(self):
    print("안녕? "+ " 나는 " + self.name + " 이고 나이는 " + str(self.age))

hong = Person("홍길동", 20)
hong.say_hello("영희")
hong.introduce()

#만약 홍길동뿐만 아니라 다른 사람의 이름도 하고 싶다면?
michael = Person("마이클", 50)
michael.say_hello("제니")

# 상속
class Police(Person):
  def arrest(self, to_arrest):
    print("넌 체포되었다! " + to_arrest)


class Programmer(Person):
  def program(self, to_program):
    print("다음에는 이걸 만들자! : " + to_program)

# jenny = Police("제니") 이렇게 쓰면 오류남
# 왜냐하면 Police라는 클래스가 Person을 상속하였기 때문에
# Person에서 받는 인수와 동일하게 name과 age가 있어야한다
jenny = Police("제니", 20)
grace = Programmer("그레이스", 30)
wobin = Person("우빈", 21)

# jenny는 경찰이기에 to_arrest가능 
jenny.arrest("톰")
# grace는 프로그래머이기에 to_program
grace.program("ERP데이터 전송 프로그램")

# jenny는 Person을 상속받은 클래스 Police를 생성했기에
# Person에 있는 introduce를 사용가능
jenny.introduce()

# 하지만 Programmer를 상속하지 않아서 program은 사용 못함
jenny.program("테스트") #해당부분을 실행하면 오류​

 

9. 패키지와 모듈

# main
# animal __package__
# dog, cat modules
# dog, cat modules can say "hi"
from animal import dog #dog module 가져오기
from animal import cat #cat module 가져오기
from animal import * # animail에 있는 패키지 다 가져오기

d = dog.Dog()
d.hi()

c = cat.Cat()
c.hi()

----------------------------------------------------------------------------------
#__init__
#모듈을 불러오는 방법
# 이 폴더에 있는 cat.py이라는 파일에서 Cat이라는 클래스를 가져와줘
from .cat import Cat 
# 이 폴더에 있는 dog.py이라는 파일에서 Dog이라는 클래스를 가져와줘
from .dog import Dog
----------------------------------------------------------------------------------
# cat.py
class Cat:
  def hi(self):
    print("meow")
----------------------------------------------------------------------------------
# dog.py
class Dog:
  def hi(self):
      print("bark!")
      

 

* 다른 패키지를 불러오는 방법

왼쪽 끝에 패키지라고 써져있는 아이콘을 클릭하면 다른 패키지를 다운로드 할 수 있다.

단, 해당 홈페이지는 Relp.lt라는 홈페이지입니다.

Comments