본문 바로가기
  • 달려가보자고~!
개발공부/Nomadcoders

Python 배우기(나만의 정리)

by 도전왕 2022. 8. 26.

 

  • 파이썬은 항상 코드를 위에서부터 아래로 읽는다.
  • 코드 스타일 가이드
    - Camel case : javascript에서 사용하는 관습들, variable을 설정할 때 myAge 이런 식으로 사용.
    - Snake case : _를 사용함, 파이썬에서 사용, my_age, 시작할때 문자로 시작할 것(특수기호나 숫자, 공백이 있으면 안 됨)
  • 문자열을 나타낼 때에는 큰따옴표"" 쓰기.
  • Boolean
    - 논리학에서 참(true)와 거짓(false)을 나타내는 데에 사용.
    - 파이썬에서도 마찬가지고 사용.
    - True, False 처럼 무조건 첫 자를 대문자로 사용.
  • Function
    - 사용시 몇 번이고 재사용이 가능한 코드.
    - Function을 실행시키기 위해서는 ( )가 붙어야 함.
    - Function에 속하는 코드를 입력하려면 탭(Tab)이나 스페이스 두 번으로 공간을 둠.
    - Function에 따라오는 ( ) 안의 값을 parameter, 따로 variable을 설정한 값의 ( )를 argument 라 함.
    - parameter : 함수 안으로 데이터를 보내 함수의 결과를 바꿀 수 있게 해주는 것, 보낸 데이터로 함수 결과를 만듦.
  • f" "로 문자열을 표현하면 변수를 직관적으로 표현 가능(변수는 변수명을 중괄호{ }로 나타냄)
my_name = “Kim”
my_age = 28
print(f“hello my name is {my_name}, I have {my_age} years in the earth”)

Console창 : hello my name is Kim, I have 28 years in the earth

 

   - f를 넣지 않았을 때.

my_name = “Kim”
my_age = 28   
print(“hello my name is {my_name}, I have {my_age} years in the earth”)

Console창: hello my name is {my_name}, I have {my_age} years in the earth

 

  • 함수에서 값을 return 한 뒤의 코드는 실행되지 않는다.
def hello():
	return "안녕"
	print("잘가") -> 출력 안 됨.

 

  • '같다'는 등호를 쓰려면 두번 입력해야 함(==)
  • !=  : 같지 않다는 뜻.
  • 조건문
if 조건문 :
	print()
#false일 때에는
else :
	print()

       - elif는 코드에 또 다른 대안과 조건을 넣는 것.
       - else는 대안만 나오는 것.
       - if 부분이 true이고 if 안에 있는 코드를 실행하였다면, python은 뒷부분의 조건을 확인하지 않음.
         뒤에 맞는 조건이 있더라도 실행하지 않음.

  • int는 string이 아니라 숫자로 표현하게 해 줌.
  • and : 동시에 두 가지 조건을 확인할 수 있게 해 줌. 앞부분 조건이 false라면 전체가 false처리가 됨. 전체가 모두 true가 되어야 함.
  • or : 둘 중 하나만 true이기만 하면 됨. 무조건 하나는 true여야만 조건이 실행됨.
True and True == True
True and False == False
False and True == False
False and False == False

True or True == True
True or False == True
False or True == True
False or False == False

 

  • input : 사용자에게 input을 요청하고 사용자가 키보드로 입력한 문자열을 반환함.
  • The Python Standard Library
  • Module을 추가하려면 맨 윗줄에 from ~ import ~
from bs4 import BeautifulSoup

 

  • randint는 Library에 있지만 import 시켜줘야 함. 
from random import randint

 

  • #을 붙이면 주석으로 처리되어 인식되지 않음. 한 줄씩 할 때는 #을 사용.
    큰 덩어리 코드 자체를 주석 처리하고 싶다면 3개의 큰따옴표"""를 맨 위와 맨 아래에 넣음.
#이 문장을 무시한다.

"""
이 문단 또한 무시할 것이다.
왜냐하면 Python에서 설정하였으니까.
오늘도 하나씩 알아간다.
"""

 

  • While : if와 비슷한 조건문, 중지할 때까지 계속 동작함, 조건이 true일 때에는 계속 동작, false일 때 멈춤.
  • 간단한 숫자 맞추기 게임
from random import randint

print("Welcome to Python Casino")
pc_choice = randint(1, 50)

Playing = True

while Playing :
    user_choice = int(input("Choose number(1~50):"))
    if user_choice == pc_choice:
        print("You won!")
        Playing = False
    elif user_choice > pc_choice:
        print("Lower!")
    elif user_choice < pc_choice:
        print("Higher!")

 

  • Data structure
    - 데이터를 구조화하고 싶을 때 사용.
    - 숫자를 셀 때 0부터 셈. 0, 1, 2, 3 순. 거꾸로도 접근 가능함. -1을 쓰면 마지막 것을 불러옴. -1, -2, -3 순. 
    - List : 하나의 variable 안에 있어야 함, [ ]를 사용, 콤마(,)를 사용해서 데이터를 구분. ex) ["Mon", "Tue", "Wed"]
                데이터를 변형시키는 것에 아주 유용함, 작업하기에도 용이함.
    - Tuple : list와 비슷한데 더 간단함, ( )를 사용, 불변성을 가짐, 만들 때는 ( ), 그 안의 아이템에 접근할 때는 [ ]
                   ex) days = ("Mon", "Tue", "Wed")
                           print(days[0])
    - Dict : { }를 사용, list는 값이 정렬만 되어있지만 Dict는 키와 값 쌍으로 이루어짐, 많은 속성들을 가진 데이터를 사용하고
                 싶을 때 아주 유용, list처럼 변경 가능함.
                 ex) Player = {
                            'name' : 'Kim'
                            'age' : 28
                            'alive' : True
                        }
                 데이터를 추가하고 싶을 때는 대괄호[ ] 안에 키를 집어넣고 (' ') 값을 써줌.
                 ex) player['xp'] = 1500

  • tuple이나 list를 만들 때 복수형을 사용함. for문에서는 for에 단수형, in에 복수형(tuple이나 list 이름일 것)
  • https://pypi.org/  : 다른 사람들이 만든 project나 module을 모아둔 곳.

  • 연습하기 - URL for 문 연습, https:// 붙이기
    - 첫 번째
websites = (
    "google.com",
    "https://airbnb.com",
    "twitter.com",
    "facebook.com",
    "https://tictok.com"
)

for website in websites:
    if not website.startswith("https://"):
        website = f"https://{website}"
    print(website)

       - 두 번째

from requests import get

websites = (
    "google.com",
    "https://airbnb.com",
    "twitter.com",
    "facebook.com",
    "https://tiktok.com"
)

results = {

}

for website in websites:
    if not website.startswith("https://"):
        website = f"https://{website}"
    response = get(website)
    if response.status_code == 200:
        results[website] = "OK"
    else :
        results[website] = "FAILED"

print(results)

 


 

댓글