파이썬의 정수

Tae Yoon·2023년 1월 28일
0

정수형에서 "+" 문과 함께 쓸때 str(변수)로 써야함
print문에서 '+'을 쓸 때 ','로 대체 가능 (대신 출력문에서는 한칸 띄어서 나옴)

//몫
%나머지
== 같은지 확인 True False
!= 같지않다 True False
and 둘 다 만족
& 둘 다 만족
or 둘 중 하나라도
| 둘 중 하나라도

숫자처리함수

abs() 절대값
pow(밑 숫자 ,제곱) 제곱
max(숫자들) 최댓값
min(숫자들) 최솟값
round() 반올림
floor() 내림 #from math import 필요
ceil() 올림 #from math import
필요
sqrt() 제곱근 #from math import * 필요

from math import * #math library 사용

from random import *
print (random()) # 0.0~1.0 미만의 임의의값 생성 (만약 정수형으로 만들고 싶으면 int를 앞에 붙이면됨)
randrange(숫자1,숫자2) #숫자1~숫자2 미만 사이의 수를 램덤생성
randint(숫자1,숫자2) #숫자1~숫자2 이하 사이의 수를 랜덤생성

"""
출력할 문장 # 여러줄로 print 가능
"""

슬라이스
[0:2] #0부터 2직전까지
[:6] # 처음부터 6직전까지
[7:]# 7부터 끝까지
[-7]# 맨뒤에서 7번째부터 끝까지

문자열 처리함수
변수.lower() #모두 소문자
변수.upper() # 모두 대문자
변수[0].isupper() # 0번째가 대문자 인지 확인
변수[0].islower() # 0번째가 소문자 인지 확인
len(변수) #글자 개수 알려줌
변수.replace("바꿀 문자 ","바뀌는 문자")
변수.index("n") #n 이 몇번째에 있는지 알려줌
변수.index("n",index+1) #n다음 부터 시작해 다음n이 몇번째 인지 알려줌
변수.find("n") #index 랑은 같은데 find는 만약 원하는 값이 없으면 -1 반환, index는 오류가 남
변수.count("n") #n이 몇번 들어갔는지 출력

문자열 포맷
#방법 1
print("나는 %d살 입니다."%20) #d는 정수만 가능
print("나는 %s을 좋아해요"%"파이썬")#s 는 문자열
print("Apple %c로 시작해요."%"a") #c 는 한 글자
print("나는 %s색과 %s색을 좋아해요."%("파란","빨간")) # 순서대로 들어감
#방법2
print("나는 {}살입니다".format(20)) #중괄호 안에 format안의 값 대입
print("나는 {}색과 {}색을 좋아해요".format("파란","빨간")) # 순서대로 대입
print("나는 {0}색과 {1}색을 좋아해요".format("파란","빨간")) #숫자대로 대입
#방법3
print("나는 {age}살이며,{color}색을 좋아해요".format(age=20,color="빨간")) #방법2랑 비슷하지만 함수를 정의하여대입
#방법4
age=20
color="빨간"
print(f"나는 {age}살이며,{color}색을 좋아해요.")

탈출문자
\n :줄바꿈->한 줄 바꿔서 나옴
\:문장내에서 \출력
\r :커서를 맨앞으로 이동 #print("red apple"\r"pine")->red 대신 pine이 들어감
\b:백스페이스 (한 글자 삭제)
\t: 탭

리스트 []
print(변수.index(찾을 내용) #리스트 안에서 찾기
변수.append("더할 것") # 더하다
변수.insert( 순서,"넣을 말") #끝이 아닌 사이나 처음에 넣기
변수.pop() #뒤에서 하나 빼기
변수.count() #개수 세기
.sort() #정렬 하기
.reverse() #순서뒤집기
.clear() #모두 지우기
.extend(합칠리스트) #기존리스트와 합칠리스트 출력
shuffle(변수) #리스트 순서를 무작위로 바꿈(random library필요)
sample(변수, 뽑을 개수) #변수에서 뽑을 개수 만큼 무작위로 뽑음(random library필요)

사전 {키:밸류}
사전은 키의 중복 불가
{3:"문자"} #3은키 문자는 밸류
사전 자료형에서 값을 불러오는 방법
1)변수[키]
2)변수.get(키)
만약 없는 키를 "1번방식"으로 호출하면 프로그램 종료하고 그 이후 print 는 출력되지않음
"2번방식"으로 없는 키를 호출하면 None이 뜨고 이후 print는 출력함
print(키 in 변수) #어떤 값이 있는지 확인하는 방법 있으면 True , 없으면 False
키는 숫자여도 되고 문자열도 가능
변수[키]="넣고 싶은 것" #변수에 새로운 키를 넣고 밸류 할당 만약 이미 있는 키라면 밸류 업데이트
del 변수[키] #원하는 키를 삭제함
print(변수.keys()) #key 들만 출력
print(변수.values()) #value 들만 출력
print(변수.items()) #key, value 둘다 출력
변수.clear #모두지우기

튜플 ()
#내용추가나 삭제 불가 /속도가 더 빠름
변수=("내용")
print(변수[0])
(변수1, 변수2)=("내용1","내용2") #한번에 값을 선언하는게 가능

세트 #집합 {}
중복 안됨, 순서 없음
my_set={1,2,3,3,3} #출력하면 {1,2,3}만나옴
교집합 1)print(변수1&변수2) ,2)print(변수1.intersection(변수2))
합집합 1)print(변수1|변수2), 2)print(변수1.union(변수2))
차집합 1)print(변수1-변수2), 2)print(변수1.difference(변수2))
변수.add("추가할 거") #세트에 추가함
변수.remove("뺄거") #세트에서 삭제

자료구조의 변경
type(변수) #자료형을 알 수 있음
ex) 변수=list(변수) #list ,tuple,set등 이렇게 자료형 변경 가능

if
if 조건문:
출력문
elif 조건문:
출력문
else:
출력문
조건문에서 조건을 추가하려면 and 또는 or 사용
input() #사용자의 입력을 받는 문장 (input은 항상 문자열로 받아들임, 숫자를 사용하고 싶으면 앞에 int 사용)

for
for 변수 in [넣을 것들]:
출력문
for 변수 in range(): #숫자가 순차적으로 증가할 떄 range 사용
출력문 #range(5)는 0,1,2,3,4
#range(1,6) 1이 시작 6미만 까지 나옴 1,2,3,4,5

while #조건문이 만족할 때까지 반복
while 조건:
출력문
while True: #계속 반복

continue,break
continue #계속 지속
break #반복문 탈출

한 줄 for
#번호 앞에 100을 붙임
student=[1,2,3,4,5]
print(student)
student=[i+100 for i in student]
print(student)
#이름을 길이로 변환
student=["iron man","thor","groot"]
student=[len(i) for i in student]
print(student)
#이름을 대문자로 변환
student=["iron man","thor","groot"]
student=[i.upper() for i in student]
print(student)

함수
def 함수이름(전달하려는 값):
수행될 내용 #함수정의
함수이름() #함수의호출

return #반환값

기본값
def 함수이름(전달하려는 값=기본적으로 넣을 값):
수행될 내용 #기본값은 함수 호출 시 넣은 값이 없다면 기본값으로 넣은 것이 나옴

함수호출시 매개변수의 순서가 뒤 섞여도 '='을 이용하면 원래 순서대로 출력
ex def profile(name,age,main_lan):
print(name,age,main_lan)
profile(name="유재석",main_lan="파이썬",age=20)

end=" " #print 문 출력시 줄바꿈을 하지않고 아랫줄 print문을 옆으로 같이 출력

가변인자
*매개변수 #가변인자형태
가변인자는 서로 다른 개수의 값을 넣어줄 때 사용

지역변수, 전역변수
지역변수 : 함수내에서만 사용되는 변수
전역변수 : 전역공간에서 사용되는 변수
global 변수 #전역공간에 있는 변수 사용

표준입출력
출력시 값 사이에 ,를 넣고 출력하면 띄어쓰기 되고 출력
출력시 값 사이에 +를 넣고 출력하면 띄어쓰기 없이 붙어서 출력
print("값1","값2",sep=" ") #sep=" " 을 이용해 ','가 들어가는 부분에 대신들어갈 내용을 넣어 원하는 방법으로 출력 ex) , vs
print("값" ,end=" ") #end=" " 는 문장을 끝부분에 어떠한 것을 넣고 다음 출력문을 옆으로 출력
print("값" ,file=sys.stdout) #문장을 표준출력으로 처리 import sys 필요
print("값" ,file=sys.stderr) #문장을 표준에러로 처리 import sys 필요
print(변수.ljust(칸수)) #출력되는 문장에서 칸 수만큼 띄어쓰고 왼쪽정렬함
print(변수.rjust(칸수)) #출력되는 문장에서 칸 수만큼 띄어쓰고 오른쪽정렬함체
print("출력할 것" .zfill(숫자)) #숫자만큼 공간을 확보하고 값이 없는 빈 공간에는 0을 채워 넣는다
input을 이용해서 입력받은 값은 항상 문자열로 저장

다양한 출력포맷
print("{0: >10}".format(500) #빈 자리는 빈공간으로 두고, 오른쪽 정렬을 하되 , 총 10자리 공간확보
print("{0: >+10}".format(500) #양수일 떈 +로 표시,음수일 떈 -로 표시
print("{0:<+10}".format(500) #왼쪽정렬하고, 빈칸으로 로 채움 부호표시도
print("{0:,}".format(100000000000)) #3자리마다 콤마 찍어주기
print("{0:+,}".format(100000000000)) #3자리마다 콤마 찍어주기 ,부호표시도
print("{0:f}".format(5/3)) #소수점 출력
rint("{0:.2f}".format(5/3)) #소수점 특정 자리수 까지만 표시(소수점 3째 자리에서 반올림)

파일입출력
변수=open("파일명","w",encoding="utf8) #open을 통해서 파일을 열 수 있음 "w"는 파일을 쓰기위해 사용한다는 의미 ,encoding="utf8"을 정의해주지 않으면 한글을 썻을때 이상하게 쓰일 수있음
print("넣을 문장",file=변수명) #문장을 파일에 저장
변수.close() #항상 파일을 열었을 때는 닫는 것도 해야함
변수=open("파일명","a",encoding="utf8) 에서 만약 이미있는 파일에 "w"를 한번 더쓰면 덮어쓰기가 됨 이어쓰기 하려면 "a"를 써야함
변수.write("\n넣을 문장") #이 방법은 출력문을 이용해서 저장하는 방식과 달리 줄바꿈 키인 \n없이 쓰면 한줄로 써짐
변수=open("파일명","r",encoding="utf8) #"r"은 읽는다는 뜻 파일을 불러오고 싶을때 사용
print(변수.read()) #을 이용해 파일의 모든 값을 출력한다
print(변수.readline()) #줄별로 읽기 한 줄 읽고 커서는 다음 줄로 이동
변수.readlines() #list형태로 저장

pickle 프로그램상에서 사용하고 있는 데이터를 파일로 형태로 저장
import pickle
변수=open("파일명","wb") #b는 바이너리를 뜻함 pickle 사용시에는 바이너리 타입설정 필수 ,encoding 은 필요없음
pickle.dump(파일에 저장할 내용이있는 변수, 파일명) #변수에 있는 정보를 file에 저장
변수=open("파일명","rb") #파일 불러온다
파일에 저장되 내용이 담긴 변수=pickle.load(변수명) #file에 있는 정보를 불러오기

with
with open("파일명","rb") as 변수명: #파일을 변수에 저장한다
print(pickle.load(변수명)) #with 문을 사용하면 close를 안써도됨

클래스
class 클래스이름:
def init(self,인자들):
self.인자=변수 #self는 자기자신을 뜻함

init 파이썬에서 쓰이는 생성자
클래스로 생산 되는 것 : 객체

멤버변수
클래스내에서 정의된 변수(init함수 안에있는 self.변수 로 되있는거)
파이썬에서 추가로 외부에서 객체를 만들어서 쓸 수있음

메소드
self는 자기 자신을 의미 메소드에서 항상 self를 적어준다
self.변수 는 클래스 자기자신의 멤버변수를 출력 그냥 변수는 전달받은 값을 사용하겠다??

상속
class 클래스명(상속하려는 클래스명):
상속하려는 클래스명.init(인자)

다중상속
class 클래스명(상속하려는 클래스명1, 클래스명2):
상속하려는 클래스명.init(인자)

연산자 오버로딩
자식클래스에서 메소드를 새롭게 정의해서 사용하는 것

pass
아무것도 안 하고 넘어간다

super
상속 받았을떄 초기화 하는 방법
super().init(인자 ) #super를 통해 초기화하면 self는 안씀
다중 상속할때는 super를 이용하면 안됨

예외처리
try:
실행문
except Valueerror:
출력문 #try에 있는 실행문을 실행했을 때 잘못된 값을 넣어(ex 문자)오류가 발생하면 except에 있는 출력문을 출력
except ZeroDivisionError as err:
print(err) #0으로 나누는 것에대한 에러를 처리함
except:
출력문 #위의 except들 중에 해당하는 에러가 없을 때 이 출력문을 출력
except Exception as err:
print(err) #어떤 에러인지 메시지를 받고 싶을 때 사용
#except 에러명 as err:
print(err) #어떤 에러인지 메시지받음

에러발생시키기
try:
if 조건문:
raise 에러명
except 에러명:
출력문 #raise를 이용조건문을 만족하면 이 후 문장을 처리하지않고 에러구문으로 간다

사용자 정의 예외처리
class BigNumberError(Exception):
def init(self,msg):
self.msg=msg
def str(self):
return self.msg
try:
print("한 자리 숫자 나누기 전용 계산기입니다.")
num1=int(input("첫 번쨰 숫자를 입력하세요:"))
num2=int(input("두 번쨰 숫자를 입력하세요:"))
if num1>=10 or num2>=10:
raise BigNumberError("입력값 {0},{1}".format(num1,num2))
print("{0}/{1}={2}".format(num1,num2,int(num1/num2)))
except ValueError:
print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요.")
except BigNumberError as err:
print("에러가 발생하였습니다. 한 자리 숫자만 입력하세요.")
print(err)

finally #예외처리 구문에서 정상적으로 실행이되거나 에러가 발생하거나 상관없이 실행이 되는 구문
finally:
출력문

모듈
import 파일명 #호출방법
파일명.함수 #사용법
import 파일명 as 호출명 #별명을 지어준다
호출명. # 파일명이 길면 as 호출명을 이용해 짧게 가능
from 파일명 import * #파일의 모든것을 사용한다 파일명이나 호출명 안 붙이고 함수로 바로 사용가능
from 파일명 import 함수명 #파일의 특정한 함수만 사용한다
from 파일명 import 함수명 as 호출명 #특정함수를 호출명을 이용해 사용가능

패키지
클래스나 함수는 바로 import 할 수 없음

all
from 패키지 import * 을 쓸 때 공개 범위를 정해주기 위해서 사용
all=['파일이름']

모듈직접실행

패키지,모듈 위치
import inspect
print(inspect.getfile(패키지,모듈이름))

내장함수 #import 필요없이 사용할 수 있음
input:사용자 입력을 받는 함수
dir: 어떤 객체를 넘겨줬을 떄 그 개체가 어떤 변수와 함수를 가지고 있는지 표시

외장함수 #import 필요
glob: 경로 내의 폴더/파일 목록조회
import glob
print(glob.glob('*.py')) #확장자가 py인 모든 파일

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN