회사에서 틈틈이 하다보니 Google Colab을 애용하게 된다.
글씨체가 맘에 안들어서 학기중에는 전혀 사용하지 않았는데 (심지어 교수님이 수업을 코렙으로 진행하셨음에도 불구하고)
연동성은 역시 코렙이다.
깃허브는 아직 낯설어서 못 친해지는 중.
1 2 3 4 5 | mix_list = ["푸", 20, True] num_list = [5,2,4,3,1] num_list.extend(mix_list) print(mix_list) print(num_list) | cs |
실행하면 num_list와 mix_list의 값이 하나로 합쳐져서 num_list에 들어가게 된다.
함수의 반환값 유무에 따른 차이
1) 별도 문장으로 실행한 뒤에 변경된 리스트 내용을 print()문으로 출력
: append(), insert(), clear(), sort(), reverse(), extend()
2) print() 문 안에서 실행함과 동시에 값을 출력
: index(), pop(), count()
딕셔너리명에 대괄호를 붙이고 그 안에 key를 넣으면 key에 해당하는 value에 접근 가능.
대괄호 대신 get() 함수를 사용해도 알 수 있지만 결과가 완전히 같지는 않다.
정의되지 않은 key 전달시,
대괄호를 사용하면 오류가 발생하고 프로그램을 바로 종료한다.
get() 함수를 사용하면 오류가 발생하지 않고 None을 출력한다.
get() 함수의 기본 형식 : get(key, default=None)
학기중에도 이터러블 개념이 잘 안잡혔던 것이 기억이 난다.
- 이터러블 : 순회 가능한 객체 (예 : 리스트, 문자열, 튜플 등)
- 이터레이터 : 이터러블에서 생성된 객체로, next()를 사용해 값을 하나씩 반환
set() 은 이터러블을 받아서 집합을 생성하는 함수이다.
대괄호는 단순히 리스트를 나타내는 표기법이다.
세트는 데이터의 순서를 보장하지 않는다.
그래서 세트에 저장한 값을 출력하면 실행할 때마다 결과가 달라진다.
오류가 완전 나거덩요.
지선생님께서 Python 환경을 다시 시작하거나 range를 변수로 사용하지 않도록 변경하라 하십니다.
오류 설명 버튼을 누르니 개선된 코드까지 알려주는 제미니 슨생님 감사요.
실습 문제를 답안지 안보고 푸는 순간이 과연 오기는 할까 싶다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # 5.6 from random import * # Restore the original functionality of 'list' del list # OR, avoid shadowing built-ins by using a different variable name throughout. # 1부터 20까지 숫자로 리스트 생성 participants = list(range(1, 21)) # Now this line will use the built-in 'list' print("참여자 목록:", participants) # 리스트 섞기 shuffle(participants) print("섞인 참여자 목록:", participants) # 치킨 당첨자 선정 (1명) chicken_winner = sample(participants, 1) print("치킨 당첨자:", chicken_winner) # 치킨 당첨자를 리스트에서 제거 participants.remove(chicken_winner[0]) print("남은 참여자 목록:", participants) # 커피 당첨자 선정 (3명) coffee_winners = sample(participants, 3) print("커피 당첨자:", coffee_winners) | cs |
코드에서 waiting_no는 리스트 [1, 2, 3, 4, 5]의 값을 하나씩 가져오므로, format()의 첫 번째 인자만 사용한다.
따라서 위 코드에서 {}와 {0}은 동일하게 동작한다.
range() 함수
이 함수는 다음과 같이 3가지 형식으로 사용할 수 있다.
range(숫자)
: 0부터 지정한 숫자 직전까지의 숫자를 생성
range(시작 숫자, 끝 숫자)
: 시작 숫자부터 끝 숫자 직전까지의 숫자를 생성
range(시작 숫자, 끝 숫자, 간격)
: 시작 숫자부터 끝 숫자 직전까지의 숫자를 지정한 간격만큼 증가(또는 감소)시키며 생성
실습을 하다보니 궁금한 점이 생겨서 지피티 쌤의 도움을 받았다.
지피티 쌤이 안계실 적에는 대체 어떻게 공부들을 하신겁니까!
student 는 정수형(int) 변수이며, 루프 안에서 특정 학생 번호를 나타낸다.
다시말해, student는 range 함수의 반환값으로 for 루프가 실행될 때마가 하나의 정수값을 순차적으로 받는다.
반면, absent 와 no_book 은 리스트(list)로, 여러 학생 번호를 저장하는 데이터 구조이다.
둘의 역할과 데이터 타입이 다르다!
리스트 컴프리헨션(list comprehension)
= 한 줄 for 문
for 뿐만 아니라 if 문의 조건도 함께 사용할 수 있다.
형식 : [동작 for 변수 in 반복 대상]
randrange()
파이썬의 random 모듈에서 제공하는 함수로, 특정 범위 내에서 정수를 랜덤하게 생성한다.
random.randrange(start, stop[, step])
start : 시작 값(포함)
stop : 끝 값 (포함하지 않음)
step : 숫자 간의 간격 (선택 사항, 기본값은 1)
randint(a, b) : a 이상 b 이하의 정수를 랜덤하게 생성 (양쪽 모두 포함)
uniform(a, b) : a 이상 b 이하의 실수를 랜덤하게 생성
random() : 0.0 이상 1.0 미만의 실수를 랜덤하게 생성
choise() : 리스트나 문자열 같은 시퀀스에서 랜덤하게 한 요소를 선택
sample() : 리스트나 문자열 같은 시퀀스에서 중복 없이 특정 개수의 요소를 랜덤하게 선택
shuffle() : 리스트의 요소 순서를 랜덤하게 섞는다.
1 2 3 4 5 6 7 8 9 10 11 | price = 1000 goods = 6 total = 0 for i in range(1, goods + 1): print("2+1 상품입니다.") if i % 3 == 0: continue total += price print("총 가격은 " + str(total) + "원입니다.") | cs |
이 때 return 문을 보면 수수료(commission)와 기존 잔액에서 출금액과 수수료를 뺀 금액(balance - money - commission)을 쉼표로 구분해 함께 반환한다. (튜플형태)
튜플은 변수명에 소괄호가 있거나 없거나 실행 결과는 동일하다.
또한 값에도 소괄호가 없어도 된다.
[파이썬 6일차] ~ 5.2 딕셔너리 (종이책 p.123 ~ 141)
[파이썬 7일차] ~ 5.6 실습 문제 : 당첨자 뽑기 (종이책 p.142 ~ 157)
[파이썬 8일차] ~ 6.1 조건에 따라 분기하기 : 조건문 (종이책 p.159 ~ 170)
[파이썬 9일차] ~ 6.3 실습 문제 : 택시 승객 수 구하기 (종이책 p.171 ~ 188)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 6.3 from random import * customers = 0 for i in range(1,51): time = randrange(5, 51) if 5 <= time <= 15: print("[0] {0}번째 손님 (소요시간 : {1}분)".format(i, time)) customers += 1 else: print("[ ] {0}번째 손님 (소요시간 : {1}분)".format(i, time)) print("총 탑승객 : {0}명".format(customers)) | cs |
[파이썬 10일차] ~ 7.2 전달값과 반환값 (종이책 p.189 ~ 201)
회사에서 카톡확인하다가 뿜어버렸습니다... 네 안죽더라고요...