python 메소드 실습
조회수 1799회
특별한 메소드 실습 강의인데요
None가 왜 나오는건지 그리고 몸무게 수치는 walk -0.1 eat+0.1인데 뒤의 소숫점도 궁금합니다.
뒤의 소숫점은 이전의 강의에서 들었던거 같은데 기억이 잘 안나 한번더 질문하게 되었습니다...
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
"None"은 print하려고 한 function의 리턴값입니다. 만약에 해당 function에서 return 명령문을 사용하지 않으면 return None 이 function의 끝에 묵시적으로 추가된답니다.
그리고 68.7 - 0.1의 결과가 68.60000000000001로 출력되는 것은 binary floating-point의 기본적 특성이지요. Python의 버그도 아니고, 님의 코드의 버그도 아니지요. floating-point 연산을 지원하는 모든 언어에서는 똑같은 결과를 얻을 수 있을 것입니다^
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
class Human(): def __init__(self, name, weight): self.name = name self.weight = weight def __str__(self): return "{} (몸무게 {}kg)".format(self.name, self.weight) def eat(self): self.weight += 0.1 print("{}가 먹어서 {}kg이 되었습니다.".format(self.name, self.weight)) def walk(self): self.weight -= 0.1 print("{}가 걸어서 {}kg이 되었습니다.".format(self.name, self.weight)) # 아래에서 person을 이름과 몸무게를 가지는 Human클래스의 인스턴스로 만들어보세요. person = Human("하하", 68.7) print(person) print(person.walk()) print(person.eat()) print(person.walk())
return값이 문자열화 해주는 함수에 들어있는데 walk와 eat에도 return값을 줘야하나요? (문자열화 하는 str 이것도 잘 이해는 안가지만..)
-
(•́ ✖ •̀)
알 수 없는 사용자
- 이 경우는 person.walk(); person.walk(); person.eat() 처럼 써 주세요 메소드 안에서 print하니 굳이 뭔가 리턴하지 않아도 됩니다. 알 수 없는 사용자 2016.5.23 11:13
-
댓글 입력