2020.11.10 일지

0후·2020년 11월 10일
0

비트캠프

목록 보기
17/112

오늘의 요약

오늘 배운 것 중에는 제어, 함수, 클래스, 오브젝트, 예외가 가장 중요하다.

control.py

# if문 
a = 2
b = 1
if a>b:
    s = "{}가 {}보다 크다"
    print(s.format(a, b))
print()

print("A") if a>b else print("B")
print()

c = 4
if c>3: print(str(c)+"는 3보다 크다"); print("이것도 바디인가?")
elif c<3: print(str(c)+"는 3보다 작다")
else: print(str(c)+"는 3이다")   
print()

d1 = 3
d2 = 4
d3 = 5
if d1<d2 or d2>d3 : 
   print("수행") 
print()

e1 = 6
e2 = 7
if e1>5:
    print("1")
    if e2>6: print("2"); print("22")
    else: print("3")
print()

if(9>8):
    pass   

print("end")

# while문 
a = -1
while a<5:
    a+=1
    #if a==2: break
    if a==2: continue
    print(a)
print()    

b = 0
while b<5:
    print(b)
    b+=1
else:
    print("더 이상 5보다 작지 않음")
print("end")

# for문 
animals = ["tiger", "lion", "rabbit", "mouse"]
for x in animals:
    if x == "rabbit": continue #break
    print(x)
print()

for c in "tiger":
    print(c)
print()

for x in range(1, 5):
    print(x)
print()

for x in range(0, 5, 2):
    print(x)
print()

for x in range(5):
    print(x)
else:
    print("end!!")
print()

a = ["a", "b", "c"];
b = ["A", "B", "C"];
for x in a:
    for y in b:
        print(x, y)
print()

for x in range(2):
    for y in range(1, 3):
        print(x, y)
print()

for x in ["AA", "BB", "CC"]:
    print(x)
print()

m = {"k1":"AA", "k2":"BB", "k3":"CC"}
#방법1
for x in m:
    print(x, m[x])
print()
#방법2
for x, y in m.items():
    print(x, y)

function.py

# function 
def m1():
    print("This is a function")
m1(); m1(); m1()
print()

def m2(name, age):
    print("name:", name, "age:", age)
m2("길동", 30); m2("순신", 20)
print()

def m3(*args):
    #print(args[1])
    for x in args: 
        print(x)
m3("짜장", "짬뽕", 20)
print()

def m4(**args):
    print(args["name"], args["age"], args["addr"])
m4(name="홍길동", age=20, addr="서울")  
print() 

def m5(arg1, arg2, arg3):
    print("args1:", arg1, "args2:", arg2, "args3:", arg3)
m5(arg3="가", arg1="나", arg2="다")
print()

def m6(arg="바보"):
    print("arg:", arg)
m6("천재")
m6()
print()

def m7(animals):
    for x in animals:
        print(x)

animals = ["rabbit", "tiger", "lion", "deer"]
m7(animals)
print()

def m8(a, b):
    return a + b
print( m8(1,2) )

def m9():
    pass
print("end!")

class.py

# class 와 object
class Human1:
    name = "길동"

h1 = Human1()
print(h1.name)
print()

class Human2:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def m1(self):
        print("m1()")
    def m2(self, addr):
        self.addr = addr
        print("m2() name:", self.name , "addr", addr)

h2 = Human2("이순신", 24)
h2.m1()
h2.m2("서울")
print("속성 결과1=>", h2.name, h2.age, h2.addr)
h2.addr = "부산" #속성값 변경
print("속성 결과2=>", h2.name, h2.age, h2.addr)
del h2.addr
print("속성 결과3=>", h2.name, h2.age) #h2.addr 사용불가
del h2 # 객체삭제


class Human3:
    pass
    
# 상속 ( Inheritance )
class Human:
    def __init__(self, name):
        self.name = name
    def move(self):
        print("걷는다")

h = Human("길동")
print("h.name:", h.name)
h.move()
print()

class Superman(Human):
    def __init__(self, name, power):
        #Human.__init__(self, name) # 방법1
        super().__init__(name) #방법2
        self.power = power
    def move(self):
        print("난다")
    def shotLaserBeam(self):
        print("광선을 쏘다")

s = Superman("클락", 100)
print("s.name:", s.name)
print("s.power:", s.power)
s.move()
s.shotLaserBeam()
print()

m = Human(s)
m.move() #걷는다 : java랑 다른데? 
#m.shotLaserBeam() #불가    

exception.py

# Exception 
# (1) 예외처리
try:
    x = 10
    print(x)
except NameError:
    print("Erorr 발생")
except:
    print("위의 Erorr 이외의 예외 발생")
finally:
    print("항상 수행되는 영역")

print()

# (2) 예외발생 
flag = False
def m1():
    if flag:
        raise Exception("Soo's Exception")
try:
    m1()
    print("예외 발생 안함")
except:
    print("내가 만든 예외 발생 됨")

자바와 파이썬의 다른점

자바

1. for(String item: items)
2. for(int i=0; i<5; i++)
3. for(int i=0; i<5; i+=2) 
4. for(int i=0; i<2; i++){
    for(int j=1; j<3; j++){
          System.out.println(i + " " + j);
    }
}

파이썬

1. for item in items:
2. for x in range(5):
3. for x in range(0, 5, 2):
4. for x in range(2):
    for y in range(1,3):
        print(x, y)

파이썬에 관한 여러가지 이야기

  1. *args 은 쭉 리스팅 되는 거고, **args 은 Key-Value 값으로 넘길 수 있다는 것임
  2. 자바에서처럼 void m(){} 같은 빈 함수를 선언해주고 싶을 때는 pass를 해줘야 함
  3. 파이썬에서는 배열 개념은 없고, 배열 대신 리스트를 쓴다.
  4. 함수 사용 시 첫번째 나오는 파라미터는 아무거나 써줘도 상관없지만 자신의 객체가 들어가있으므로 관례상 self라고 적어준다. ex) def m1(self)

더 알아볼 것

profile
휘발방지

0개의 댓글