[Python/기초 정리]

SooYeon Yeon·2022년 6월 18일
0

파이썬/알고리즘

목록 보기
24/35

파이썬 특징

  • 인터프리터 언어
  • 동적인 데이터 타입 결정 (변수와 값을 써주면 내부적으로 타입이 정해짐)
  • 플랫폼 독립적 언어
  • 많은 수 라이브러리

파이썬 변수 이름 명명 규칙

  1. 꼭 지켜야 할 것
  • 특수문자 X (_는 사용 가능)
  • 변수 이름이 숫자로 시작할 수 없음
  • 띄어쓰기 X
  • 대소문자 구분
  • 예약어 금지 (if, for, while)
  1. 아름다운 문화
  • 맨 앞 소문자로 시작
  • 알아 볼 수 있는 이름으로 짓기
  • 언더바로 구분 짓는 방법 (snake), 두번 째 단어의 첫번째를 대문자로(camel)

반복문

  • enumerate를 통해 여러 변수를 이용 가능
for i, fruit in enumerate(fruits):
    print(i)
    print(fruit)

딕셔너리

딕셔너리 키 접근

for course in courses.keys():
	print(course)

딕셔너리 값 접근

for value in dict_ex.values():
	print(value)

딕셔너리 키, 값 함께 접근

for item in dict_ex.items():
	print(item)

for key, value in dict_ex.items():
	print(key)
	print(value)

문자열

  • 작은 따옴표, 큰 따옴표 등을 표현하고 싶을 때
print("어쩌구'")
print('어쩌구"')
print('\'')
print('\"')
print('\\')
print('\t')

모듈

모듈 접근

import funcSum
myCalc.funcSum
# 바로 접근
from mycalc import funcSum
funcSum(1,2)

모듈 - 네트워크로 리퀘스트 접근

!pip install requests

import requests
import json
response = requests.get("http://.../product/list")
data = json.loads(response.text)
for i in data['result']:
    print(i['name'])

객체지향 프로그래밍

Class, self 사용하기

class Smartphone:
    version = ""
    battery = 0
    
    def charge(self):
        self.battery = self.battery + 10
        
    def update(self, new):
        self.version = new
  • 파이썬에서 class를 만들고 메소드를 쓸 때 self라는 것을 사용할 수 있음

생성자

class Player:
    nickname=""
    item=[]
    hp=0
    x=0
    y=0
    z=0
    
    def __init__(self, nickname):
        self.nickname = nickname
        self.hp = 100
    
    def getItem(self, item):
        self.item.append(item)
        
    def attacked(self):
        self.hp = self.hp - 10
    
    def moveX(self, x):
        self.x = self.x + x
        
    def moveY(self, y):
        self.y = self.y + y

player1 = Player("1번플레이어")
  • 클래스를 이용해 객체 생성시 처음 객체 상태를 정의하는 것 (init사용)

상속

class Animal:
    foot = 0
    
class Dog(Animal):
    sound = "멍멍"
    
class Cat(Animal):
    sound = "야옹"
    
class Bird(Animal):
    sound = "안녕하세요"

d = Dog()
d.foot = 4
print(d.foot)
print(d.sound)
# 4
# 멍멍
  • class 자식클래스명(부모클래스명):
          자식클래스 내용
    형태로 소괄호 안에 상속할 부모클래스 명 입력

Super을 받아 상속

class EngStudent(Student):
    classroom = '201호'
    lecture='파이썬'
    
    def __init__(self,name,age,state):
        super(EngStudent, self).__init__(name, age, state)

ysy = EngStudent("YSY",23,"공부중")
print(ysy.name+"학생은"+ysy.classroom+ysy.statement)

오버로딩과 오버라이딩

오버로딩 : 똑같은 함수를 사용하는 방식을 다르게 해서 사용하게 해줌, 하나의 클래스 안에서 메소드를 여러방식으로 사용하게 해줄 수 ㅁ있는 것

오버라이딩 : 상속받은 클래스에서 받은 메소드를 자신에게 맞게 변경해서 사용

오버라이딩

class Car :
    speed = 0 
    def upSpeed(self):
        seld.speed = self.speed + 10
        print("현재 속도 : " + self.speed)

class SportsCar(Car):
    def upSpeed(self):
        self.speed = self.speed + 50
        print("스포츠카의 현재 속도 : " + self.speed)

문제 풀이 연습

업 앤 다운 게임

import random
random_number = random.randint(1,51)

user_input = int(input())
while(True):
    if user_input < random_number :
        print('업')
        user_input = int(input())
    elif user_input > random_number:
        print('다운')
        user_input = int(input())
    else:
        print('정답')
        break

로또 번호 생성기

# 중복없는 6개 숫자가 뽑혀야 함
# 랜덤생성하다가 같으면 다시 뽑아야함

import random

lotto = []
i=1
while i<=6:
    tmp = random.randint(1,46)
    if tmp in lotto:
        i-=1

    else:
        lotto.append(tmp)
    i+=1
    
print(lotto)

숫자 야구 게임

import random
baseball_auto = []
i=1
while i<=3:
    tmp = random.randint(1,10)
    if tmp in baseball_auto:
        i-=1
    else:
        baseball_auto.append(tmp)
    i+=1

#print('컴퓨터',baseball_auto)

user_input = []
for i in range(3):
    num = int(input())
    user_input.append(num)

strike=0
ball=0
out=0

check = False
while (True):
    for i, number in enumerate(user_input):
        #print("i number baseball auto",i,number,baseball_auto,end='')
        #print()
    
        if number == baseball_auto[i]:
            strike+=1
        elif number in baseball_auto:
            ball+=1
        else:
            out+=1
        print(strike,"strike ",ball,"ball",out,"out",end='')
        print()
        if strike == 3:
            print("정답입니다. 게임이 끝났습니다")
            check=True
            break
    if (check):
        break
    user_input = []
    strike=0
    ball=0
    out=0
    for i in range(3):
        num = int(input())
        user_input.append(num)

0개의 댓글