저는 최근에 클래스가 파이썬으로 발전함에 따라 과제물 등급이 점점 낮아지고있는 것을 눈치 챘습니다. 누군가 내가이 코드 조각에 대해 잘못된 점을 알 수 있도록 도와 줄 수 있는지 궁금합니다. 왜 그들이 틀렸을까요? 긴 게시물 일 수도 있지만 앞으로 이러한 실수를 저지르는 데 도움이되는 도움을 주시면 감사하겠습니다.이전에 작성한 코드의 개정판을 찾으십시오.
def geometric(l):
'list(int) ==> bool, returns True if the integers form a geometric sequence'
res = False
if (l[1]/l[0]) == (l[2]/l[1]):
res = True
return res
이것은 잘못된 것으로 간주 된 코드입니다. 코드가 말하듯이, int의리스트를 취해 그들이 기하학적 순서에 있는지의 여부를 리턴합니다. 내 책은 a1/a0이 a2/a1과 같으면 2, 4, 8, 16 등으로 잘 작동하는 시퀀스가 기하학적이라고 말합니다.이 문제는 첫 번째 두 개의 인덱스 만 확인한다는 것을 깨달았습니다. 나머지 숫자는 무시합니다. 이 문제를 해결하려면 무엇을 쓸 수 있습니까?
def letter2number(grade):
'''string ==> int, returns the numeric equivalent to the letter grade, adding 0.3 if the grade contains a +
and subtracts 0.3 if the grade contains a -'''
res = 0
if 'F' in grade:
res = 0
elif 'D' in grade:
res = 1
elif 'C' in grade:
res = 2
elif 'B' in grade:
res = 3
elif 'A' in grade:
res = 4
if '+' in grade:
res += 0.3
elif '-' in grade:
res -= 0.3
return res
이것은 잘못 생각한 것이 아니라 정확히 생각한 것보다 훨씬 길었습니다. 그가 파일에 쓴 코멘트는 "성적을 색인의 등급으로 설정했다"였지만 독립적 인 실험실 이었기 때문에 도움을 요청할 수 없었습니다. 각 학년에 목록의 가치를 부여하려고 시도했지만 정확하게 색인을 생성 할 수 없었습니다. 나를 위해 혼란 된
def leap(n):
'int ==> bool, returns True if the year is a leap year, False otherwise'
res = False
if n % 4 == 0 and n % 400 == 0 or not n % 100 == 0:
res = True
return res
로 번역 if 문을 알아내는 '가 4로 나누어 있지만 400로 나누어 경우를 제외하고 100이 아닌 경우 올해는 윤년이다 ". 분명히 내가 쓴 것은 모든 홀수 숫자에 대해 작동하지만 실제로 그 이유를 파악할 수는 없습니다.
'n % 4 == 0 및 n % 400 == 0 또는 n % 100 == 0 '은 (n % 4 == 0 및 n % 400 == 0) 또는 n % 100 = = 0'은'n % 4 == 0이 아니고 (n % 400 == 0 또는 n % 100 == 0이 아닙니다.)'올바른 것입니다. 즉, '및'은 '또는'보다 우선 순위가 높습니다. –
이제 이것에 대해 생각해 봅니다. 아마도이 사이트는 http://codereview.stackexchange.com에 속해있을 것입니다. – abarnert
사실, 이것은 확실히 [codereview.se]에 속하지 않습니다. [faq] (http://codereview.stackexchange.com/faq)에 따르면 문제 해결, 디버깅 또는 코드 스 니펫 이해에 대한 질문은 ** 주제 **에서 다루고 있습니다. – Adam