Python (38)

반응형

 

SWING 설치 방법

 

1. 상단의 Help > install New Software

 

2

 

2. Add > Name의 wb 입력 > Location에 URL 입력 > Add 클릭

https://download.eclipse.org/windowbuilder/updates/release/1.12.0/

 

WindowBuilder 1.12.0 Release

WindowBuilder 1.12.0 Release Built: 2023-06-07 at 18:10 ✎ https://download.eclipse.org/windowbuilder/updates/release/1.12.0 🧰 This is a p2 update site for WindowBuilder. Use the ✎ icon to copy the update site URL to the system clipboard. Alternativ

download.eclipse.org

 

3

 

3. 체크박스 클릭 > Next 클릭

 

4

 

4. Next 클릭

 

5

 

5. Finish 버튼 클릭 > 다운로드 후 이클립스 재부팅

 

Ctril + N > window 검색 후 추가된 것을 확인

 

 

 

SWING 생성

 

1

 

1. Ctril + N > WindowBuilder > Swing Designer > JFrame > Next 클릭

 

2

 

2. 이름 기입 > Finish 클릭

 

3

 

3. 하단의 Design > JLable 클릭 > 패널 부분 클릭

위의 경우 라벨의 위치를 변경할 수 없기에 4번을 진행한다.

 

4

 

4. 라벨이 아닌 옆 공간 클릭 > Layout 클릭 > Absolute layout 클릭

 

5

 

5. JLabel, JButton 클릭 후 패널 클릭하여 생성

 

6

 

6. Variable와 text 변경

 

7

 

7. 소스 코드에서 오른쪽 마우스 클릭 > Run As > Run on Server 클릭

 

결과 화면 확인

 

 

반응형

'Python' 카테고리의 다른 글

[Python] 7.5장 과제 (Swing을 이용)  (0) 2024.03.28
[Python] 7장 자바 SWING  (0) 2024.03.28
[Python] 5장 클래스  (0) 2024.03.27
[Python] 4.5장 과제  (0) 2024.03.26
[Python] 4장 리턴  (0) 2024.03.26
반응형

 

클래스 사용법

 

 

 

  • 기본 사용법
class 클래스명:
	def __init__(self):
    	self.전역변수명1 = 데이터

	def 함수명1:
    	self.전역변수명1 = 데이터
       
# java의 main
if __name__ == '__main__':
	클래스명이름 = 클래스명()
	print(클래스명이름.전역변수명1)

 

 

 

  • 단일 상속시 사용법
class 클래스명:
	def __init__(self):
    	self.전역변수명1 = 데이터

	def 함수명1:
    	self.전역변수명1 = 데이터
       
# 상속
class 클래스2(클래스명):
	def __init__(self):
    	super().__init__()
    	self.전역변수명2 = 데이터

	def 함수명2:
    	self.전역변수명2 = 데이터
       
       
# java의 main
if __name__ == '__main__':
	클래스명이름 = 클래스2()
	print(클래스명이름.전역변수명1)
	print(클래스명이름.전역변수명2)

 

 

 

  • 다중 상속 사용법
class 클래스1:
	def __init__(self):
    	self.전역변수명1 = 데이터

	def 함수명1:
    	self.전역변수명1 = 데이터
     
class 클래스2:
	def __init__(self):
    	self.전역변수명2 = 데이터

	def 함수명2:
    	self.전역변수명2 = 데이터
        
        
# 다중 상속
class 클래스3(클래스1, 클래스2):
	def __init__(self):
    	클래스1.__init__(self)
        클래스2.__init__(self)
       
       
# java의 main
if __name__ == '__main__':
	클래스이름 = 클래스3()
	print(클래스이름.전역변수명1)
	print(클래스이름.전역변수명2)

 

 

 

클래스 사용 예시

 

 

 

  • Java 코드 -> Python 코드1
package day03;

public class Animal {
	int life_span = 10;
	
	void fightTiger() {
		life_span = 0;
	}
}

 

package day03;

public class OopTest01 {
	public static void main(String[] args) {
		Animal ani = new Animal();
		System.out.println("life_span : " + ani.life_span);

		ani.fightTiger();
		System.out.println("life_span : " + ani.life_span);
	}
}

 

결과 화면1

 

 

class Animal:
    def __init__(self):
        self.life_span = 10
    
    def fightTiger(self):
        self.life_span = 0


if __name__ == '__main__':
    ani = Animal()
    print("life_span : ", ani.life_span)
    
    ani.fightTiger()
    print("life_span : ", ani.life_span)

 

결과 화면3

 

 

  • Java 코드 -> Python 코드2
package day03;

public class Human extends Animal{
	int money = 0;
	
	void work() {
		money += 30000;
	}
}

 

package day03;

public class OopTest02 {
	public static void main(String[] args) {
		Human h = new Human();
		System.out.println("life_span : " + h.life_span);
		System.out.println("money : " + h.money);

		h.fightTiger();
		h.work();
		System.out.println("life_span : " + h.life_span);
		System.out.println("money : " + h.money);
	}
}

 

결과 화면2 : 상속 받을 경우 다 사용 가능

 

 

class Animal:
    def __init__(self):
        self.life_span = 10
    
    def fightTiger(self):
        self.life_span = 0

class Human(Animal):
    
    def __init__(self):
        super().__init__()
        self.money = 0
    
    def work(self):
        self.money += 30000

if __name__ == '__main__':
    hum = Human()
    print("life_span : ", hum.life_span)
    print("money : ", hum.money)
    
    hum.fightTiger()
    hum.work()
    print("life_span : ", hum.life_span)
    print("money : ", hum.money)

 

결과 화면4

 

 

  • Java 코드 -> Python 코드3
package day03;

public class Wonbin {
	boolean flag_ugly = true;
	
	void plastic() {
		flag_ugly = false;
	}
}

 

 

class Wonbin:
    def __init__(self):
        self.flag_ugly = True
    
    def plastic(self):
        self.flag_ugly = False
        
if __name__ == '__main__':
    won = Wonbin()
    print("ugly",won.flag_ugly)
    won.plastic()
    print("ugly",won.flag_ugly)

 

결과 화면5

 

 

 

  • Java 코드 -> Python 코드4
package day03;

public class Mavely {
	int weight = 100;
	
	void eat(int amount) {
		weight += amount;
	}
}

 

 

class Mavely:
    def __init__(self):
        self.weight = 100
    
    def eat(self, amount):
        self.weight += amount

if __name__ == '__main__':
    mav = Mavely()
    print("weight",mav.weight)
    mav.eat(5)
    print("weight",mav.weight)

 

결과 화면6

 

 

 

  • 다중 상속 예시
from day03.ooptest03 import Wonbin
from day03.ooptest04 import Mavely


class YoungHun(Wonbin, Mavely):
    def __init__(self):
        Wonbin.__init__(self)
        Mavely.__init__(self)
        # super().__init__() # 이런 경우 Wonbin만 반복받기에 둘 다 상속 받을 수 있게 해줘야 함


if __name__ == '__main__':
    yh = YoungHun()
    print("weight",yh.weight)
    print("ugly",yh.flag_ugly)
    
    yh.eat(100)
    yh.plastic()
    
    print("weight",yh.weight)
    print("ugly",yh.flag_ugly)

 

결과 화면7

 

 

반응형

'Python' 카테고리의 다른 글

[Python] 7장 자바 SWING  (0) 2024.03.28
[Python] 6장 자바 SWING 설치 방법 및 생성, 실행 방법  (0) 2024.03.27
[Python] 4.5장 과제  (0) 2024.03.26
[Python] 4장 리턴  (0) 2024.03.26
[Python] 3장 함수와 pass, 랜덤  (0) 2024.03.26
반응형

 

과제1

 

가위/바위/보를 선택하세요 가위
나:가위
컴:보
결과:이김

 

더보기
# 가위/바위/보를 선택하세요 가위
# 나:가위
# 컴:보
# 결과:이김
from random import random

me = input("가위/바위/보를 선택하세요 ")

com = random();
if com > 0.66:
    com = "가위"
elif com > 0.33:
    com = "바위"
else:
    com = "보"

#print(com)

if (me == "가위" and com == "보")|(me == "바위" and com == "가위")|(me == "보" and com == "바위"):
    result = "이김"
elif (me == "가위" and com == "바위")|(me == "바위" and com == "보")|(me == "보" and com == "가위"):
    result = "짐"
else:
    result = "비김"
    
print("나:{}".format(me))
print("컴:{}".format(com))
print("결과:{}".format(result))

 

결과 화면1

 

 

 

과제2

 

첫수를 입력하세요 1
끝수를 입력하세요 5
배수를 입력하세요 2
1에서 5까지의 2의 배수 합은 6입니다.

 

더보기
# 첫수를 입력하세요 1
# 끝수를 입력하세요 5
# 배수를 입력하세요 2
# 1에서 5까지의 2의 배수 합은 6입니다.

su1 = int(input("첫수를 입력하세요 "))
su2 = int(input("끝수를 입력하세요 "))
su3 = int(input("배수를 입력하세요 "))

arr = list(range(su1, su2+1))
#print(arr)

res = 0
for i in arr:
    #print(i)
    if i%su3 == 0:
        res += i

print(str(su1) + "에서 " + str(su2) + "까지의 " + str(su3) + "의 배수 합은 " + str(res) + "입니다.")

 

결과 화면2

 

 

 

과제3

 

com = (1 ~ 99까지를 넣어줌) 50
수를 입력하시오 40
40    UP
수를 입력하시오 60
60    DW
수를 입력하시오 50
50    ANSWER

 

더보기
# com = (1 ~ 99까지를 넣어줌) 50
# 수를 입력하시오 40
# 40    UP
# 수를 입력하시오 60
# 60    DW
# 수를 입력하시오 50
# 50    ANSWER
from random import random


com = int(random()*99)
#print(com)

while True:
    su = int(input("수를 입력하시오 "))
    
    if su > com:
        print(str(su) + "\tDW")
    elif su < com:
        print(str(su) + "\tUP")
    else:
        print(str(su) + "\tANSWER")
        break

 

결과 화면3

 

 

 

과제4

 

첫별수를 입력하세요 3
끝별수를 입력하세요 5
★★★
★★★★
★★★★★

 

더보기
# 첫별수를 입력하세요 3
# 끝별수를 입력하세요 5
# ★★★
# ★★★★
# ★★★★★

su1 = int(input("첫별수를 입력하세요 "))
su2 = int(input("끝별수를 입력하세요 "))

def getStar(cnt):
    ret = ""
    for i in range(cnt):
        ret +="★"
    return ret

for i in range(su1, su2):
    print(getStar(i))

 

결과 화면4

 

 

반응형

'Python' 카테고리의 다른 글

[Python] 6장 자바 SWING 설치 방법 및 생성, 실행 방법  (0) 2024.03.27
[Python] 5장 클래스  (0) 2024.03.27
[Python] 4장 리턴  (0) 2024.03.26
[Python] 3장 함수와 pass, 랜덤  (0) 2024.03.26
[Python] 2.5장 과제  (0) 2024.03.25
1 ··· 8 9 10 11 12 13