[TIL#6] Python 기초 -2

49961 단어 TILpythonTIL

Table of Contents
1. 기본문법

1. 기본문법


  • List(리스트)
subway = [10, 20, 30] # subway라는 list를 만듦 [ ] 이용.
print(subway)
subway = ["유재석", "조세호", "박명수"]
print(subway)
print(subway.index("조세호")) # 리스트에서 "조세호" 라는 단어를 찾기위해서는 .index("")를 이용한다.
subway.append("하하") #.append()는 리스트에 문자 추가
#print(subway)
subway.insert(1, "정형돈") # 유재석과 조세호 사이에 정형돈을 넣음 .insert (넣은 index  번호, "")
print(subway)
print(subway.pop()) # pop은 뒤에서 부터 빼냄.
print(subway)
subway.append("유재석")
print(subway)
print(subway.count("유재석")) # 같은 값 카운트 
num_list = [5,2,6,1,3]
num_list.sort() # 숫자 정렬, 낮은수부터 높음 수
print(num_list)
num_list.reverse() # 숫자 정렬, 높은 수부터 낮은 수로
print(num_list)
num_list.clear() # 리스트 안의 수를 제거
print(num_list)
num_list = [5,2,6,1,3]
mix_list = ["조세호", 20, True] # list는 다야한 자료형 함께 사용 가능 (문자열, 정수 boolean)
print(mix_list)
num_list.extend(mix_list) # list 확장 num_list 와 mix_list
print(num_list)
  • 사전
    사전 자료형은 key와 value형으로 나온다. Key는 중복이 안됨.
    {Key : Value} 로를 사용한다.
cabinet = {3 : "유재섯", 100: "정형동"}
print(cabinet[3])
print(cabinet[100])
print(cabinet.get(3)) 
# print(cabinet[5]) # 프로그램 오류가 나면 바로 프로그램을 종료시킴. 다음이 진행이 안됨.
# print(cabinet.get(5, "사용가능")) # 오류가 나지만 none or 사용가능 출력되고 다음으로 진행 됨.
print(3 in cabinet)
print(5 in cabinet)
cabinet = {"A-3" : "유재석", "B-100": "장형돈"}
print(cabinet["A-3"])
print(cabinet["B-100"])
cabinet["A-3"] = "하하" #  유재석 빼고 하하 추가
cabinet["B-100"] = "지효" #  장형돈 빼고 지효 추가
print(cabinet["A-3"])
print(cabinet["B-100"])
print(cabinet)
del cabinet["A-3"] # 제거도 가능
print(cabinet)
print(cabinet.keys()) #Key 만 출력
print(cabinet.values()) # value 만 츨력
print(cabinet.items()) # key , value 출력
cabinet.clear() #  cabinet 안의 모든 값 삭제
print(cabinet)
  • 튜플
    튜플은 리스트와 다르게 내용 변경이나 추가 할 수 없음.
    하지만 속도가 리스트보다 빠름.
menu = ("돈까스" , "치즈까스")
print(menu[0])
print(menu[1])
(name, age, hobby) = ("김종국", 20, "코딩")
print(name, age, hobby)
  • 집합 (set)
my_set = {1,2,3,3,3,3} # 중복되는 값은 하나로 나옴. 순서도 없음
print(my_set)
java = {"유재석", "김태호", "양세형"}
python = set(["유재석", "박명수"])
print(java & python) # java 와 python 교집합
print(java.intersection(python)) # java 와 python 교집합
print(java | python) # java 와 python 합집합
print(java.union(python)) # java 와 python 합집합
print(java - python) # java 와 python  차집합
print(java.difference(python)) # java 와 python 차집합
python.add("김태호")
print(python) # 추가
java.remove("김태호")
print(java) # 삭제
  • 자료구조의 변경
menu = {"커피", "우유", "주스"}
print(menu, type(menu)) # set 구조
menu = list(menu) 
print(menu, type(menu)) # list로 변경
menu = tuple(menu)
print(menu, type(menu)) # tuple로 벼경
  • Quiz
from random import *
users = range(1, 21) # 1 ~20 까지 숫자 생성
users = list(users)
shuffle(users)
winners = sample(users, 4)
print("---당첨자 발표 ---")
print("치킨 당첨자 : {0}".format(winners[0]))
print("커피 당첨자 : {0}".format(winners[1:]))
print("---축하합니다.---")
  • if
weather =  input("오늘 날씨는 어때요? ") # input은 사용자의 input을 넣을수 있음.
if weather == "비" or weather == "눈": # 마지막에 : 를 꼭 넣을것!
    print("우산을 챙기세요.")
elif weather == "미세먼지": # 마지막에 : 를 꼭 넣을것!
    print("마스크를 챙기세요.")
else: 
    print("준비물 필요 없어요.")
temp = int(input("기온은 어때요? ")) # 온도는 정수형태 이기때문에 int로 감싸준다. 
if 30 <= temp:
    print("너무 더워요.")
elif 10 <= temp and temp < 30:
    print("괜찮은 날씨에요.")
elif 0<= temp  < 10:
     print("외투를 챙겨요.")
else:
    print("너무 추워요.")
  • for (반복문)
for waiting_no in range(5): # waiting_no 의 값들이 순차적으로 0,1,2,3,4
    print("대기번호 {}".format(waiting_no)) # 마지막 작업하고 이 for문은 끝난다.
starbucks = ["아이언맨" , "토르", "그루트"]
for customer in starbucks:
    print("{0}, 커피가 준비되었습니다.".format(customer))
  • while
customer = "토르"
index = 5
while index >= 1:
print("{0}, 커피가 준비 되었습니다. {1}번 남았어요.".format(customer, index))
index -= 1
if index == 0:
print("커피는 폐기처분 되었습니다.")
person = ""
while person != customer : #while 문은 조건을 만족 할 때까지 계속 된다. 
    print("{0}, 커피가 준비 되었습니다.".format(customer))
    person = input("이름이 어떻게 되세요? ")
  • contine 와 break
absent = [2, 5]
no_book = [7] 
for student in range(1, 11):
    if student in absent:
        continue
    elif student in no_book:
        print("오늘 수업 여기까지. {0}교무실로 따라와.".format(student))
        break
    print("{0}, read a book".format(student))
  • 한 줄 for
students = [1,2,3,4,5]
students = [i+100 for i in students]
print(students)
students = ["ironman", "Thor", "Thanos"]
students = [len(i) for i in students]
print(students)
students = [i.upper() for i in students]
print(students)
  • quiz
cnt = 0
for i in range(1,51):
    time = randrange(5, 51)
    if 5 <= time <= 15:
        print("[O] {0} 번째손님 (소요시간 :{1}분)".format(i, time))
        cnt += 1
    else :
        print("[ ] {0} 번째손님 (소요시간 :{1}분)".format(i,time))
print("총 탑승 승객 : {0}".format(cnt))
``
  • funciton (함수)
    함수 정의는 def 함수이름(): 정의만해서는 출력이 되지 않고 함수를 입력해야 출력이 된다.
def open_account():
    print("새로운 계좌가 생성되었습니다.")
open_account()
  • 전달값과 반환값
def open_account():
    print("새로운 계좌가 생성되었습니다.")
def deposit(balnace, money):
    print("입금이 완료되었습니다. 잔액은 {0} 원입니다.".format(balance + money))
    return balance + money
def withdraw(balance, money):
    if balance >= money:
        print("complete withdraw. balance {0}".format(balance - money))
        return balance - money
    else: 
        print("no withdraw. balance{0}".format(balance))
        return balance
def withdraw_night(balance, money):
    commission = 100
    return commission, balance - money - commission #  여러개 값 한번에 받기
balance = 1000
balance = deposit(balance, 2000)
commission, balance = withdraw_night(balance, 500)
print("수수료는 {0} 원 이며, 잔액은 {1} 원 입니다.".format(commission, balance))
  • 함수 기본값 설정
    반복되는 값을 기본으로 설정 할 수 있음.
# def profile (name, age, main_lang):
#     print("이름: {0}\t 나이 : {1}\t주 사용안어: {2}"
#     .format(name, age , main_lang))
# profile("유재석", 20 , "파이썬")
# profile("김태호", 20 , "자바")
def profile (name, age = 17, main_lang = "python"):
    print("이름: {0}\t 나이 : {1}\t주 사용안어: {2}".format(name, age , main_lang))
profile("유재석")
profile("김태호")
  • 키워드 값을 이용한 함수 호출
    키워드 값을 넣어서 함수 호출하면 순서에 상관없이 입력하여도 함수 정의 한대로 출력이 된다.
def profile (name, age, main_lang):
    print(name, age, main_lang)
profile (name = "유재석", main_lang="python", age=20)
  • 가변인자
def profile(name, age, *language):
    print("이름 : {0} \t 나이: {1} \t".format(name, age),end=" ") # end="" 는 다음문장 출력을 바로 옆으로 붙이는 효과
    for lang in language:
        print(lang, end=" ")
    print() # lang는 없으므로 없는 값으로 프린트하라는 명령인듯
profile("유재석", 20, "python", "java", "c","C++", "c#")
profile("김태호", 25, "kotlin","swift")
  • 지역변수와 전역변수
    지역변수는 함수내에서만 쓸수 있는것 , 함수가 호출 되면 만들어지고 끝나면 사라지는것
    전역변수는 프로그램내에서 어디서든 쓸 수 있는 것
gun = 10
def checkpoint(soliders):
  # gun = 20 # 이런 변수가 지역변수 특정함 함수 내에서만 사용 할 수 있다. 
  global gun # 전역 공간에 있는 gun을 사용. (함수 밖의  gun 변수 사용)
  gun = gun - soliders
  print("[함수 내] 남은 총 : {0}". format(gun))
def checkpoint_ret(gun, soliders): # 전역변수를 사용하기 보다 이처럼 사용하길 권장한다. 
  gun = gun - soliders
  print("[함수 내] 남은 총 : {0}". format(gun))
  return gun
print("전체총: {0}".format(gun))
gun = checkpoint_ret(gun, 2) # 리턴된 값을 받아서 아래에서 출력해줌
print("남은총: {0}".format(gun))
  • Quiz
height = 175
def std_weight(height, gender):
    if gender == "남자": 
        return height * height *22
    else:
        return height * height *21
gender = "남자"
weight = round(std_weight(height / 100,gender),2) # weight 변수를 꼭 만들고 함수 호출 하도록 소수 둘째자리까지는 round 사용
print("키 {0} {1}의 표준 체중은 {2}kg 입니다.".format(height,gender,weight))

좋은 웹페이지 즐겨찾기