코딩하는 털보

파이썬 기본 - 1 본문

IT Study/Python

파이썬 기본 - 1

이정인 2021. 4. 12. 20:36

파이썬 언어 기본

Data type

# 숫자형
print(5)
print(-10)
print(0.00031)
print(3*5)

# 문자열 자료형
print("카타리나")
print('카타리나')
# 문자열 자료형 복제
print('ㅎ'*9)

# boolean
print(5 < 10)
print(5 > 10)
print(True)
print(False)
print(not True)
print(not False)
print(not (5 > 10))

# 변수
day = 15
name = "삼겹살"
# 문자형이아닌 자료형을 문자열에 '+' 할때는 str()로 묶어준다.
print(str(day)+"일의 점심 매뉴는 "+name+"입니다.")
# ','로 문자열을 합칠 수 있으며 이때는 자동 형변환이 일어나며 ',' 자리에 띄어쓰기가 발생한다.
print(day, "일의 점심 매뉴는 ", name, "입니다.")

# 주석
'''여러 
문장의
주석'''

station = "사당"
print(station+" 행 열차가 들어오고 있습니다.")
station = "신도림"
print(station+" 행 열차가 들어오고 있습니다.")
station = "인천공항"
print(station+" 행 열차가 들어오고 있습니다.")

Operator

# 숫자형 연산자
print(10 + 3)
print(10 - 3)
print(10 * 3)
print(10 / 3)
number = (2+3) * 4
print(number) # 20
number += 2
print(number) # 22
number *= 2
print(number) # 44
print(10 // 3)
print(10 % 3)
print(10 ** 5)

print(10 > 3)
print(10 < 3)
print(10 >= 3)
print(10 <= 3)

print(10 == 3)
print(10 != 3)

print((3 > 10) and (3 < 5))
print((3 > 10) & (3 < 5))

print((3 > 10) or (3 < 5))
print((3 > 10) | (3 < 5))

print(1 < 3 < 5)

# 숫자처리 함수
print(abs(-5)) # |-5|
print(pow(4, 2)) # 4^2 = 16
print(max(5, 10, 20)) # 최대값 20
print(min(5, 10, 20)) # 최소값 5
print(round(3.14)) # 반올림
print(round(3.14, 1)) # 소수 첫째자리까지 반올림

# math 라이브러리의 함수
from math import *
print(floor(4.99)) # 내림
print(ceil(3.14)) # 올림
print(sqrt(16)) # 제곱근

# 랜덤함수, 난수 생성
from random import *
print(random()) # 0.0 이상 1.0 미만의 임의의 값을 생성
print(random()*10) # 0.0 이상 10.0 미만의 임의의 값을 생성
print(int(random()*10)) # 0 이상 10 미만의 임의의 정수 생성
print(int(random()*10)+1) # 1 이상 10 이하의 임의의 정수 생성

print(randrange(1, 46)) # 1 부터 46 미만의 임의의 정수를 생성
print(randint(1, 45)) # 1 부터 45 이하의 임의의 정수를 생성

num = randint(4, 28)
print("오프라인 스터디 모임 날짜는 매월" + str(num) + "일로 선정되었습니다." )

String

# 문자열
sentence1 = '허가되지 않았습니다.'
print(sentence1)
sentence2 = "그렇습니다."
print(sentence2)
sentence3 = """
허가되지 않은 
접근입니다.
"""
print(sentence3)

# 슬라이싱
jumin = "910130-1234567"
print("성별 : " + jumin[7]) # 7번째 인덱스의 값
print("생년 : " + jumin[0:2]) # 0부터~2번 전까지의 인덱스의 값
print("월 : " + jumin[2:4]) # 2부터~4번 전까지의 인덱스의 값
print("일 : " + jumin[4:6]) # 4부터~6번 전까지의 인덱스의 값
print("생년월일 : "+ jumin[:6]) # 처음부터 6번 전까지의 인덱스의 값
print("뒤 7자리 : "+ jumin[7:]) # 7부터 끝까지의 인덱스의 값
print("뒤 7자리 : "+ jumin[-7:]) # 뒤에서 -7 부터 끝까지

# 문자열 처리 함수
python = "Python is Amazing"
print(python.lower()) # 대문자로
print(python.upper()) # 소문자로
print(python[0].isupper())
print(python[0].islower())
print(len(python))
print(python.replace("Python", "Java")) # 문자열 변환

index = python.index("n")
print("n 은 "+str(index)+"번째에 있습니다.")
index = python.index("n", index + 1)
print("다음 n 은 "+str(index)+"번째에 있습니다.")

print(python.find("n"))
#print(python.index("java")) # index()는 없으면 error
print(python.find("java")) # find()는 없으면 -1

print(python.count("n")) # "n" 몇번

# 문자열 포맷
print("a" + "b")
print("a", "b")

print("나는 %d살 입니다." % 20) # d : 정수
print("나는 %s을 좋아합니다." % "Python") # s : 문자열
print("Apple은 %c로 시작합니다." % 'a') # c : 문자
print("나는 %s와 %s을 좋아합니다." % ("바다", "강"))

print("나는 {}살 입니다.".format(20))
print("나는 {}와 {}을 좋아합니다.".format("바다", "강"))
print("나는 {1}와 {0}을 좋아합니다.".format("바다", "강"))
print("나는 {age}살이고, {color}색을 좋아합니다.".format(age = 20, color = "파란"))

age = 20
color = "파란"
print(f"나는 {age}살이고, {color}색을 좋아합니다.") # f로 시작하면 실제 변수를 사용

# 탈출 문자
print("백문이 불여일견\n백견이 불여일타") # 줄바꿈

print("저의 이름은 '이정인'입니다.")
print('저의 이름은 "이정인"입니다.')
print("저의 이름은 \"이정인\"입니다.")
print("C:\\Users\\Root")

print("Red Apple\rPine") # 커서를 맨 앞으로 이동
print("Red \bApple") # backspace
print("Red\tApple") # tab

address = "http://naver.com"
base = address.replace("http://","")
base = base[:base.index(".")]
print(base[:3]+str(len(base))+str(base.count("e"))+"!")

Data structure

# 리스트 [args]
subway = [10, 20, 30]

print(subway[1]) # 20
print(subway.index(20)) # 1

subway.append(40)
print(subway) # [10, 20, 30, 40]

subway.insert(3, 35)
print(subway) # [10, 20, 30, 35, 40]

print(subway.pop()) # 뒤에서 빼기 40
print(subway) # [10, 20, 30, 35]

subway.append(30)
print(subway) # [10, 20, 30, 35, 30]
print(subway.count(30)) # 2 (30 2개)

subway.sort() # 오름차순 정렬
print(subway) # [10, 20, 30, 30, 35]

subway.reverse() # 뒤집기
print(subway) # [35, 30, 30, 20, 10]

subway.clear() # 비우기
print(subway) # []

subway.append(30) # 여러 자료형을 담을 수 있다.
subway.append(True)
subway.append("백")
print(subway) # [30, True, '백']

newsubway = [10, 20]
newsubway.extend(subway) # 리스트 확장
print(newsubway) # [10, 20, 30, True, '백']

# 딕셔너리 {K:V}
myDict = {1:"테란", 2:"프로토스"}
print(myDict) # {1: '테란', 2: '프로토스'}
print(myDict[1]) # 테란
print(myDict[2]) # 프로토스

print(myDict.get(1)) # 테란
print(myDict.get(2)) # 프로토스

print(myDict.get(3)) #print(myDict[4]) # get은 해당 키가 없는경우 None, []는 예외 처리
print(myDict.get(3), "없음") # 없음

print(1 in myDict) # True
print(3 in myDict) # False

myDict[3] = "저그" # 쌍 추가
myDict[2] = "플토" # 변경
print(myDict) # {1: '테란', 2: '플토', 3: '저그'}

del myDict[2] # 제거
print(myDict) # {1: '테란', 3: '저그'}

print(myDict.keys()) # 키만 출력, dict_keys([1, 3])
print(myDict.values()) # 값만 출력, dict_values(['테란', '저그'])
print(myDict.items()) # 키값 출력, dict_items([(1, '테란'), (3, '저그')])

myDict.clear() # 비우기
print(myDict) # {}

# 튜플 (args)
# 리스트와 다르게 변경 추가 불가능, 속도가 빠름
menu = ("돈까스", "우동")

print(menu) # ('돈까스', '우동')
print(menu[0]) # 돈까스
print(menu[1]) # 우동

# 세트 {args}
# 중복이 안되고 순서가 없는 자료형
mySet = {1,2,3,3,3}

print(mySet) # {1, 2, 3}

mySet1 = mySet
mySet2 = {3, 4, 5}

print(mySet1 & mySet2) #교집합 {3}
print(mySet1.intersection(mySet2)) #교집합 {3}
print(mySet1 | mySet2) #합집합 {1, 2, 3, 4, 5}
print(mySet1.union(mySet2)) #합집합 {1, 2, 3, 4, 5}

print(mySet1 - mySet2) #차집합 {1, 2}
print(mySet1.difference(mySet2)) #차집합 {1, 2}

mySet2.add(1) # 추가
print(mySet2) # {1, 3, 4, 5}

mySet2.remove(4) # 제거
print(mySet2) # {1, 3, 5}

# 자료 구조의 변경

mySet = {1,2,3,4,5}
print(mySet, type(mySet)) # {1, 2, 3, 4, 5} <class 'set'>
myList = list(mySet)
print(myList, type(myList)) # [1, 2, 3, 4, 5] <class 'list'>
myTuple = tuple(myList)
print(myTuple, type(myTuple)) # (1, 2, 3, 4, 5) <class 'tuple'>
mySet = set(myTuple)
print(mySet, type(mySet)) # {1, 2, 3, 4, 5} <class 'set'>

# 예제
from random import *
lst = list(range(1,21)) # 1~20
chicken = sample(lst,1)
lst.remove(chicken[0])
coffee = sample(lst,3)

print(" -- 당첨자 발표 --")
print("치킨 당첨자 : "+str(chicken))
print("커피 당첨자 : "+str(coffee))
print(" -- 축하합니다 --")
Comments