[TIL#6] Python 기초 -2
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))
Author And Source
이 문제에 관하여([TIL#6] Python 기초 -2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@junchi211/TIL6-Python-기초-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)