Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 참조형변수
- 예외처리
- 컬렉션프레임워크
- 메소드오버로딩
- NestedFor
- 대덕인재개발원
- 다형성
- 생성자오버로드
- 자동차수리시스템
- 컬렉션 타입
- 객체 비교
- 인터페이스
- 추상메서드
- 자바
- 오라클
- 제네릭
- 한국건설관리시스템
- 사용자예외클래스생성
- 예외미루기
- 집합_SET
- 환경설정
- 정수형타입
- 어윈 사용법
- GRANT VIEW
- cursor문
- exception
- EnhancedFor
- abstract
- Java
- oracle
Archives
- Today
- Total
거니의 velog
231030_파이썬 기초 3 본문
[day03.mydef01] - 매개변수가 있고, 리턴값도 있는 경우
def add(a, b):
return a + b
def minus(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
return a / b
sum = add(4, 2)
min = minus(4, 2)
mul = multiply(4, 2)
div = divide(4, 2)
print("sum =", sum) # sum = 6
print("min =", min) # min = 2
print("mul =", mul) # mul = 8
print("div =", div) # div = 2.0
print("div =", int(div)) # div = 2
[MyMethod01.java]
package day03;
public class MyMethod01 {
static int add(int a, int b) {
return a + b;
}
static int minus(int a, int b) {
return a - b;
}
static int multiply(int a, int b) {
if(a == 0 || b == 0) {
System.out.println("인수가 0인 값은 들어올 수 없습니다.");
return -1;
}
return a * b;
}
static int divide(int a, int b) {
if(a == 0 || b == 0) {
System.out.println("인수가 0인 값은 들어올 수 없습니다.");
return -1;
}
return a / b;
}
public static void main(String[] args) {
int sum = add(4, 2);
System.out.println("sum : " + sum); // sum : 6
int min = minus(4, 2);
System.out.println("min : " + min); // min : 2
int mul = multiply(4, 2);
if(mul == -1) {
System.out.println("잘못된 곱셈식 입니다.");
}
System.out.println("mul : " + mul); // mul : 8
int div = divide(4, 2);
if(div == -1) {
System.out.println("잘못된 나눗셈식 입니다.");
}
System.out.println("div : " + div); // div : 2
}
}
[day03.mydef02] - 매개변수가 있고, 리턴값이 없는 경우
# def showDan(dan):
# for i in range(1, 9+1):
# print(str(dan) + "*" + str(i) + "=" + str(dan * i))
#
# showDan(5) # 5단 출력
def showDan(dan):
for i in range(1, 9+1):
print(str(dan) + "*" + str(i) + "=" + str(i*dan))
# print(str(dan) + "*" + str(1) + "=" + str(1*dan))
# print(str(dan) + "*" + str(2) + "=" + str(2*dan))
showDan(7)
[day03.mydef03] - 매개변수가 없고, 리턴값이 있는 경우
from random import random
def getHollJJak():
rnd = random()
if(rnd > 0.5):
return "홀"
else:
return "짝"
com = getHollJJak()
print("com :",com)
[day03.mydef04] - 매개변수도 없고, 리턴값도 없는 경우
def whatsYourName():
print("홍길동")
whatsYourName() # 홍길동
- 파이썬은 멀티 리턴이 가능. 자바나 자바스크립트는 불가능하다.
def add_min_mul_div(a, b):
return a + b, a - b, a * b, a / b
sum, min, mul, div = add_min_mul_div(4, 2)
print("sum =", sum) # sum = 6
print("min =", min) # min = 2
print("mul =", mul) # mul = 8
print("div =", div) # div = 2.0
print("div =", int(div)) # div = 2
def add_min_mul_div(a, b):
return a + b, a - b, a * b, a / b
# sum, min, mul, div = add_min_mul_div(4, 2) # 됨
# sum, min, mul = add_min_mul_div(4, 2) # 안 됨
# sum, min = add_min_mul_div(4, 2) # 안 됨
sum = add_min_mul_div(4, 2) # 됨
print("sum =", sum) # sum = (6, 2, 8, 2.0), 튜플
print("sum =", sum[2]) # sum = 8
# print("sum =", sum) # sum = 6
# print("min =", min) # min = 2
# print("mul =", mul) # mul = 8
# print("div =", div) # div = 2.0
# print("div =", int(div)) # div = 2
[Animal.java]
package day03;
public class Animal {
int full = 1;
void eat(int amount) {
full += amount;
}
}
[OopTest01.java]
package day03;
public class OopTest01 {
public static void main(String[] args) {
Animal ani = new Animal();
System.out.println("full : " + ani.full); // full : 1
ani.eat(9);
System.out.println("full : " + ani.full); // full : 10
}
}
[Human.java]
package day03;
public class Human extends Animal {
boolean flag_tool = false;
void momstouch() {
flag_tool = true;
}
}
[OopTest01.java]
package day03;
public class OopTest01 {
public static void main(String[] args) {
// Animal ani = new Animal();
// System.out.println("full : " + ani.full); // full : 1
// ani.eat(9);
// System.out.println("full : " + ani.full); // full : 10
Human hum = new Human();
System.out.println("full : " + hum.full); // full : 1
System.out.println("flag_tool : " + hum.flag_tool); // flag_tool : false
hum.eat(9);
hum.momstouch();
System.out.println("full : " + hum.full); // full : 10
System.out.println("flag_tool : " + hum.flag_tool); // flag_tool : true
}
}
[day03.myoop01]
class Animal:
def __init__(self):
self.full = 1
def eat(self, amount):
self.full += amount
ani = Animal()
print("ani.full :", ani.full) # ani.full : 1
ani.eat(9)
print("ani.full :", ani.full) # ani.full : 10
[day03.myoop02]
from day03.myoop01 import Animal
ani = Animal()
print("ani.full :", ani.full) # ani.full : 1
ani.eat(9)
print("ani.full :", ani.full) # ani.full : 10
- 파이썬에서는 왜 2번이나 실행되었을까?
[OopTest02.java]
package day03;
public class OopTest02 {
public static void main(String[] args) {
Animal ani = new Animal();
System.out.println("ani.full : " + ani.full);
ani.eat(9);
System.out.println("ani.full : " + ani.full);
}
}
[Animal.java]
package day03;
public class Animal {
int full = 1;
void eat(int amount) {
full += amount;
}
public static void main(String[] args) {
Animal ani = new Animal();
System.out.println("ani.full : " + ani.full); // ani.full : 1
ani.eat(9);
System.out.println("ani.full : " + ani.full); // ani.full : 10
}
}
- 자바에서는 둘 다 같은 결과가 나옴.
[두 소스의 차이점?]
- main() 메서드의 차이임.
- 파이썬에서 main() 메서드의 역할을 하는 것이 있음
if __name__ == '__main__':
[day03.myoop01]
class Animal:
def __init__(self):
self.full = 1
def eat(self, amount):
self.full += amount
if __name__ == '__main__':
ani = Animal()
print("ani.full :", ani.full) # ani.full : 1
ani.eat(9)
print("ani.full :", ani.full) # ani.full : 10
[day03.myoop02]
from day03.myoop01 import Animal
ani = Animal()
print("ani.full2 :", ani.full) # ani.full : 1
ani.eat(9)
print("ani.full2 :", ani.full) # ani.full : 10
[day03.myoop01] : 소멸자 생성하는 방법
class Animal:
def __init__(self):
self.full = 1
print("생성자")
def eat(self, amount):
self.full += amount
# 소멸자 : destroyer
def __del__(self):
print("소멸자")
if __name__ == '__main__':
ani = Animal() # 생성자
print("ani.full :", ani.full) # ani.full : 1
ani.eat(9)
print("ani.full :", ani.full) # ani.full : 10
# 소멸자
[day03.myoop01] : 상속 관계 설정하는 방법
class Animal:
def __init__(self):
self.full = 1
print("생성자")
def eat(self, amount):
self.full += amount
# 소멸자 : destroyer
def __del__(self):
print("소멸자")
class Human(Animal):
def __init__(self):
super().__init__()
self.flag_tool = False
def momstouch(self):
self.flag_tool = True
if __name__ == '__main__':
# ani = Animal() # 생성자
# print("ani.full :", ani.full) # ani.full : 1
# ani.eat(9)
# print("ani.full :", ani.full) # ani.full : 10
# # 소멸자
hum = Human() # 생성자
print("hum.full :", hum.full) # hum.full : 1
print("hum.flag_tool :", hum.flag_tool) # hum.flag_tool : False
hum.eat(9)
hum.momstouch()
print("hum.full :", hum.full) # hum.full : 10
print("hum.flag_tool :", hum.flag_tool) # hum.flag_tool : True
# 소멸자
* 멀티 상속
- 자바는 단일 상속 체계
- 파이썬은 멀티 상속이 가능하다.
package day03;
public class Xi {
int cnt_nuclear = 1000;
void dieDeveloper(int count) {
cnt_nuclear += count;
}
}
package day03;
public class LeeJY {
int asset = 400;
int factory = 20;
void buildFactory() {
asset -= 4;
factory += 1;
}
}
package day03;
public class Musk {
int cnt_sat = 20000;
void shootRocket() {
cnt_sat += 100;
}
}
[day03.myoop03]
class Xi:
def __init__(self):
self.cnt_nuclear = 1000
def dieDeveloper(self, count):
self.cnt_nuclear += count
class LeeJY(Xi):
def __init__(self):
super(LeeJY, self).__init__()
self.asset = 400
self.factory = 20
def buildFactory(self):
self.asset -= 4
self.factory += 1
class Musk(LeeJY):
def __init__(self):
super(Musk, self).__init__()
self.cnt_sat = 20000
def shootRocket(self):
self.cnt_sat += 100
class LeeGunJung(Musk):
def __init__(self):
super(LeeGunJung, self).__init__()
if __name__ == '__main__':
lgj = LeeGunJung()
print("lgj.cnt_nuclear :", lgj.cnt_nuclear)
print("lgj.asset :", lgj.asset)
print("lgj.factory :", lgj.factory)
print("lgj.cnt_sat :", lgj.cnt_sat)
lgj.dieDeveloper(1000)
lgj.buildFactory()
lgj.shootRocket()
print("===메서드 호출 후 변환된 값===")
print("lgj.cnt_nuclear :", lgj.cnt_nuclear)
print("lgj.asset :", lgj.asset)
print("lgj.factory :", lgj.factory)
print("lgj.cnt_sat :", lgj.cnt_sat)
[선생님 풀이]
class Xi:
def __init__(self):
self.cnt_nuclear = 1000
def dieDeveloper(self, count):
self.cnt_nuclear += count
class LeeJY:
def __init__(self):
self.asset = 400
self.factory = 20
def buildFactory(self):
self.asset -= 4
self.factory += 1
class Musk:
def __init__(self):
self.cnt_sat = 20000
def shootRocket(self):
self.cnt_sat += 100
class LeeGunJung(Xi, LeeJY, Musk):
def __init__(self):
Xi.__init__(self)
LeeJY.__init__(self)
Musk.__init__(self)
if __name__ == '__main__':
lgj = LeeGunJung()
print("lgj.cnt_nuclear :", lgj.cnt_nuclear)
print("lgj.asset :", lgj.asset)
print("lgj.factory :", lgj.factory)
print("lgj.cnt_sat :", lgj.cnt_sat)
lgj.dieDeveloper(1000)
lgj.buildFactory()
lgj.shootRocket()
print("===메서드 호출 후 변환된 값===")
print("lgj.cnt_nuclear :", lgj.cnt_nuclear)
print("lgj.asset :", lgj.asset)
print("lgj.factory :", lgj.factory)
print("lgj.cnt_sat :", lgj.cnt_sat)
[day03.mytest01]
# 첫별수를 입력하세요 1
# 끝별수를 입력하세요 3
# *
# **
# ***
start = input("첫별수를 입력하세요 ")
end = input("끝별수를 입력하세요 ")
istart = int(start)
iend = int(end)
for i in range(istart, iend+1):
print("*" * i)
#####################################
def getStar(cnt):
txt = ""
for i in range(cnt):
txt += "*"
return txt
start = input("첫별수를 입력하세요 ")
end = input("끝별수를 입력하세요 ")
istart = int(start)
iend = int(end)
for i in range(istart, iend + 1):
print(getStar(i))
# print(getStar(1))
# print(getStar(2))
# print(getStar(3))
'대덕인재개발원 > 대덕인재개발원_파이썬 프로그래밍' 카테고리의 다른 글
231102_파이썬 기초 6 (0) | 2023.11.02 |
---|---|
231101_파이썬 기초 5 (0) | 2023.11.01 |
231031_파이썬 기초 4 (0) | 2023.10.31 |
231027_파이썬 기초 2 (0) | 2023.10.27 |
231026_파이썬 기초 1 (0) | 2023.10.26 |