22.12.8(목) - python class

화이팅·2022년 12월 8일
0

zbase

목록 보기
4/17

-정수 2개 한번에 선언
n1=2 ; n2=2

-추상클래스

from abc import ABCMeta
from abc import abstractmethod

class airplane(metaclass=ABCMeta):
@abstractmethod
def

추상클래스 만들어 놓고 하위클래스에서 알맞게 변경


클래스 만들어 놓고 사용하는 방법 정리
1. 클래스 만들기
2. 생성자 ( 클래스변수 선언, 값 설정)
a=airplane()
-> 생성자를 통해 만들어지고 설정된 값을 클래스 메서드를 이용해 값 출력


  • 예외: 문법적인 문제는 없으나 실행 중 발생하는 예상하지 못한 문제 ( 에러x)
    ex) n/0
    예외관련 클래스는 Exception 클래스를 상속한다.

예외처리

try:
~
except:
try ~ 예외 발생 구문
except 예외 발생 시 출력

-try~excpet(예외 발생 o) ~ else(예외발생 x) : 예외가 발생하지 않은 경우에 실행하는 구문
-finally : 예외발생과 상관없이 항상 실행
-try~except~else~finally

-exception클래스 : 예외를 담당하는 클래스

except Exception as e:

-raise키워드 : 예외 발생시킴
def str(self): #self 메서드는 오류 메시지를 print문으로 출력할 경우 사용

ex)
class Passwordlengthshortexcepthin(Exception):
def init (self,str):
super().init(f'{str}: 길이 5미만)


<class 정리>
클래스 안에 변수, 메서드 추가가능
init 메서드 -> 클래스 맴버 변수 값 초기화]
init (self, 매개변수1,매개변수2..)
self.매개변수1 = 매개변수1
self.매개변수2= 매개변수2
정의된 변수는 클래스 안에서 사용 가능


  • 텍스트파일 쓰기
    기본함수
    텍스트파일
    -> 파일 열기 open()
    -> 읽기 또는 쓰기 read() or write()
    -> 파일 닫기 close() # 반드시 닫아줘야함

  • 파일읽기
    file=open('위치','r')
    str=file.read() # 숫자 or 문자 무조건 문자열로 읽어야함
    print(f'str:{str}')
    file.close()

open()
'w' : 쓰기 전용 (파일이 있으면 덮어씌움)
'a' : 쓰기 전용(파일이 있으면 덧붙임)
'x' : 쓰기 전용 ( 파일이 있으면 에러발생)
'r' : 읽기 전용 ( 파일이 없으면 에러발생)

  1. 파이썬 소수구하기 ( 나누어지는 수가 1과 자기자신밖에 없음 따라서 나누어서 0이 나오면 안됨)

    num=int(input('2이상의 숫자 입력 : '))
    if num>=2:
    for n in range(2,num):
    if num % n ==0:
    is_prime= Flase
    break
    if is_prime :
    소수

  2. 약수구하기

    for i in range(1,num+1):
    if num % i ==0:
    li.append(i)

-with ~as문을 이용하면 파일 닫기 (close)를 생략할 수 있음
ex)

file=open(uri+ 'python.txt' ,'a')
file.write('hello ')
file.close

=

with open(uri+'python.txt','a') as f:
f.write('hello')

-writelines()는 리스트 또는 튜플 데이터를 파일에 쓰기 위한 함수
ex)

languages=[...]
for item in languages:
with open(uri+'languages.txt' ,'a') as f:
f.write(item)
f.write(\n)

=

with open(uri + 'languages.txt','a') as f:
f.writelines(languages)

#개행

f.writelines(item + '\n ' for item in languages)

///
... 너무 어렵다.
진도 따라가기 급급하고 심지어 밀렸다.!
한 번씩만 들어서 절대 이해 안 되는 거 아는데 아..

모르겠다.

profile
하하...하.

0개의 댓글