알쏭달쏭 공부한거 쓰기
hw7 본문
https://colab.research.google.com/drive/1x2iu5p76vVhGdaHyMKyRvWXYu6TrzTfh?usp=sharing
6.25
def a():
E_d={}
print('사전 프로그램 시작... 종료는 q를 입력')
while True:
user=input('$ ')
if user=='q':
print('사전 프로그램을 종료합니다.')
break
elif user[0]=='<':
e_,k_=user.split(':')
E_d[e_[2:]]=k_
print(E_d)
elif user[0]=='>':
print(user[2:])
print(E_d.get(user[2:],f'{user[2:]}가 사전에 없습니다.'))
else:
print('입력 오류가 발생했습니다.')
a()
hw7.1
def a():
q1='다음은 어떤 단어에 대한 설명일까요?\n"최근에 가장 떠오르는 프로그래밍 언어"'
q2='다음은 어떤 단어에 대한 설명일까요?\n"데이터를 저장하는 메모리 공간"'
q3='다음은 어떤 단어에 대한 설명일까요?\n"작업을 수행하는 문장들의 집합에 이름을 붙인 것"'
q4='다음은 어떤 단어에 대한 설명일까요?\n"서로 관련이 없는 항목들의 모임"'
quiz={q1:'파이썬',q2:'변수',q3:'함수',q4:'리스트'}
for i in quiz:
print(i)
print('(1)파이썬\t (2)변수\t (3)함수\t (4)리스트')
user=input()
if user==quiz[i]:
print('정답입니다.')
else:
print(f'오답입니다. 정답은 {quiz[i]}입니다.')
print()
a()
9일차 실습 문제
https://colab.research.google.com/drive/1NrGiqH2bslaVbRPzDg-hohmWBQuf83L9 (외부 사이트로 연결합니다.)
#2,3: 자동차, 엘레베이터 클래스 작성 및 테스트
1) 코드 수정
(1)
```
class MyClass:
def __init__(self):
self.radius = 10
```
(2)
```
class MyClass:
def __init__(self, r):
self.__radius = r
a = MyClass(10)
print(a.get_radius())
(1)radius 변수가 정의 되지 않았다.
(2)get_radius 함수가 정의 되지 않았다.
#2
## 2. Car 클래스 작성 후, Car 객체를 생성하여 A 지점에서 B지점까지 운행하시오.
- 멤버 변수: mileage(private)
- 메소드: 직진, 우회전, 좌회전
이 외에 필요한 메소드가 있다면 알아서 작성하세요.
---
실행 예시
```
25m 직진합니다.
좌회전 후 30m 직진합니다.
우회전 후 15m 직진합니다.
...
...
총 주행거리는 90m 입니다.
class Car:
def __init__(self,mileage=0):
self._mileage=mileage
def go(self,mile):
self._mileage+=mile
print(f'{mile}m 직진합니다.')
def turn_right(self):
print('좌회전 후',end=' ')
def turn_left(self):
print('우회전 후',end=' ')
def __str__(self):
return f'총 주행거리는 {self._mileage}m 입니다.'
mycar=Car()
mycar.go(25)
mycar.turn_right()
mycar.go(30)
mycar.turn_right()
mycar.go(15)
mycar.turn_left()
mycar.go(20)
print(mycar)
## 3. Elevator 클래스를 작성한 후, Elevator 객체를 생성한 후 아래와 같이 테스트하시오.
* 속성(인스턴스 변수)
* `_floor` : -2층에서 10층까지의 층수를 표현, 0층은 로비를 의미한다.
* `_is_open` : 문 열림 상태를 표현. 문이 열린 경우 True, 문이 닫힌 경우 False.
* 동작(메소드)
* `__init__()` : 디폴트 층수는 로비, 디폴트 문 열림 상태는 닫힘이다.
* `move(destination)` : 문을 닫은 후 도착 층(destination)으로 이동한다. 도착 층으로 이동했다면 문을 연다. 단, 도착 층이 유효하지 않은 값인 경우 '유효한 층수를 입력해주세요.'라는 문장을 출력할 것.
* 아래 테스트 코드와 결과를 보고 추가로 필요한 메소드가 있다면 작성할 것.
---
테스트 코드 1)
```
e = Elevator() # 엘레베이터 생성
print(e)
e.open() # 엘레베이터의 문을 연다
e.close() # 엘레베이터의 문을 연다
```
실행 결과 1)
```
이 엘레베이터는 현재 로비층에 있으며, 문이 닫혀있습니다.
문이 열립니다.
문이 닫힙니다.
```
---
테스트 코드 2)
```
e = Elevator()
print(e)
e.move(10) #10층으로 이동
print(e)
```
실행 결과 2)
```
이 엘레베이터는 현재 로비층에 있으며, 문이 닫혀있습니다.
문이 닫힙니다.
10층에 도착했습니다.
문이 열립니다.
이 엘레베이터는 현재 10층에 있으며, 문이 열려있습니다.
```
---
테스트 코드 3)
```
e = Elevator()
e.move(-10) #유효하지 않은 층수인 지하 10층으로 이동
print(e)
```
실행 결과 3)
```
문이 닫힙니다.
유효한 층수를 입력해주세요.
이 엘레베이터는 현재 로비층에 있으며, 문이 닫혀있습니다.
```
class Elevator:
def __init__(self,floor=0,is_open=False):
self._floor=floor
self._is_open=is_open
def __str__(self):
if self._floor==0:
flo='로비'
else:
flo=self._floor
if self._is_open==False:
door='닫혀있습니다.'
else:
door='열려있습니다.'
return f'이 엘리베이터는 현재 {flo}층에 있으며, 문이 {door}'
def open(self):
self._is_open=True
print('문이 열립니다.')
def close(self):
self._is_open=False
print('문이 닫힙니다.')
def move (self, destination):
self.close()
if destination<-2:
print('유효한 층수를 입력해주세요.')
else:
self._floor=destination
print(f'{self._floor}에 도착했습니다.')
self.open()
e = Elevator() # 엘레베이터 생성
print(e)
e.open() # 엘레베이터의 문을 연다
e.close() # 엘레베이터의 문을 연다
e = Elevator()
print(e)
e.move(10) #10층으로 이동
print(e)
e = Elevator()
e.move(-10) #유효하지 않은 층수인 지하 10층으로 이동
print(e)
7일차 실습 문제
https://colab.research.google.com/drive/1McVY7e0CFbMh2jnZ_3GUhMWihoy0S-iW?usp=sharing (외부 사이트로 연결합니다.)
#6.16, dts6, dts7 + 오늘 실습 문제 복습
def a():
student_tuple = (('191101', '홍길동', '010-123-45xx'), ('191102', '임꺽정', '010-223-45xx'), ('191103', '장길산', '010-323-45xx') )
num,name,_=zip(*student_tuple)
a=dict(zip(num, name))
print(a)
while True:
user=input('학번을 입력하세요: ')
#print(f'{user}번의 학생은 {a.get(user,"해당 학번의 학생이 없습니다.")}입니다.')
#191106번의 학생은 해당 학번의 학생이 없습니다.입니다.
if int(user)>0:
if a.get(user)!=None:
print(f'{user}번의 학생은 {a.get(user)}입니다.')
else:
print('해당 학번의 학생이 없습니다.')
else:
print('프로그램을 종료합니다.')
break
a()
'''
{'191101': '홍길동', '191102': '임꺽정', '191103': '장길산'}
학번을 입력하세요: 191102
191102번의 학생은 임꺽정입니다.
학번을 입력하세요: 191106
해당 학번의 학생이 없습니다.
학번을 입력하세요: -3
프로그램을 종료합니다.
'''
## dts6. 학생 3명의 3과목 성적이 딕셔너리에 저장되어 있다. 각 학생의 평균 성적을 출력하시오.
```
score = {'Kim': [99,83,95], 'Lee': [68,45,78], 'Choi':[25,56,69]}
```
---
실행 결과
```
Kim : 92.333점
Lee : 63.667점
Choi : 50.000점
```
def a():
score = {'Kim': [99,83,95], 'Lee': [68,45,78], 'Choi':[25,56,69]}
for i in score:
print(f'{i} : {sum(score[i])/len(score[i]):.3f}')
a()
## dts7. 위 문제에서 학생의 성적을 입력 받도록 수정하고 학생의 성적을 출력하시오.
---
실행 결과
```
Kim의 성적을 입력해주세요(성적은 공백으로 구분): 100 80 95
Lee의 성적을 입력해주세요(성적은 공백으로 구분): 70 60 90
Choi의 성적을 입력해주세요(성적은 공백으로 구분): 30 100 90
Kim: [100, 80, 95]
Lee: [70, 60, 90]
Choi: [30, 100, 90]
```
def a():
score={}
score['Kim']=[int(x) for x in input('Kim의 성적을 입력해주세요(성적은 공백으로 구분):').split()]
score['Lee']=[int(x) for x in input('Kim의 성적을 입력해주세요(성적은 공백으로 구분):').split()]
score['Choi']=[int(x) for x in input('Kim의 성적을 입력해주세요(성적은 공백으로 구분):').split()]
#Kim, Lee, Choi 가 영어라서 변수처리됨 아니라면 문자열로 표현
#input('Kim의 성적을 입력해주세요(성적은 공백으로 구분):').split() 이것 만 하니까 점수들이 Kim:['100', '80', '95'] 이렇게 문자열 처리되서 나온다.
for i in score:
print(f'{i}:{score[i]}')
a()
'파이썬 -23여름학기(ㄱㅎㅈ)' 카테고리의 다른 글
7-10 (0) | 2023.07.10 |
---|---|
HW8,HW9 (0) | 2023.07.09 |
HW8 정리 (0) | 2023.07.09 |
2023 여름 파이썬 중간 족보 (0) | 2023.07.09 |
7/7 파이썬 수업-클래스 복습, Gui, time (0) | 2023.07.07 |