엘피프 원인 내 번호 목록을 업데이트 할 수 있도록 파이썬 코드를 작성하려면 어떻게해야합니까? 비어있는 빈 목록으로 시작한 다음 목록에서 사용자가 얼마나 많은 새로운 점수를 추가했는지 물어봐야합니다. 그런 다음 목록에 해당 숫자를 추가하십시오. 그런 다음 메뉴 시스템으로 돌아가서 질문해야합니다. 사용자가 목록에서 해당 숫자의 평균을 원하면 3을 누릅니다. 여기에 내 문제는 아래 코드는 elif 절에서 점수가 업데이트되고 있지만 일단 목록이 나오면 목록이 다시 비어있는 것입니다. 도와주세요!elif 절 내에서 목록을 업데이트하고 목록을 반환하는 방법
답변
빈 목록을 루프 앞에 바인딩하는 문을 이동하십시오.
scores = []
while 1:
...
나는 그것을 시도했지만 avgScores()를 호출하려고했을 때 여전히 "s + = scores [index] TypeError : + = : 'int'및 'list'"에 대해 지원되지 않는 피연산자 유형 –
아마도 점수 목록에 목록을 추가하기 때문일 것입니다. 'scores.append (addScores())'는'addScores()'의 반환 값을 여러분의 점수 목록에 추가합니다. 'addScores()'는리스트를 반환합니다. '[3,4], [7,5], [3,4]]와 같은 목록의 목록을'scores '로 만든다. – Matt
귀하의 addScores 방법은리스트를 돌려 것처럼, Append 메서드는 하나의 요소에 대해, 대신 ELIF 문에 APPEND의 연장 사용으로 보인다.
또한 addScores 메서드는 추가 할 로컬 점수 목록을 인스턴스화하지 않으므로 인스턴스가 생성되지 않으므로 빈 목록을 반환합니다. 수정하고자하는 목록을 전달하거나, 그것이 반환하는 지역 목록을 가져야합니다. 현재는 어느 쪽도하지 않습니다.
우선 함수는 while 루프에 정의하면 안됩니다. 루프 밖에서 정의하고 인수를 전달하십시오. 점수 목록을 추적하는 명확한 방법은 프로그램의 모든 함수가 전역 변수를 액세스 할 수 있도록 전역 변수를 사용하는 것입니다. 내가 문을 제외하고/두 개의 시도를 추가
scores = []
def addScores():
enteredScores = []
while True:
numOfScores = input("How many new scores would you like to add: ")
try:
if int(numOfScores) > 0:
for i in range(int(numOfScores)):
newInput = input("Please enter a score: ")
enteredScores.append(newInput)
print(enteredScores)
return enteredScores
else:
print("Please enter a positive integer.")
continue
except ValueError:
print("Please enter a positive integer.")
while True:
print("0 - Clear scores")
print("1 - Input more scores")
print("2 - Print scores")
print("3 - Average scores")
option = input("Please choose an option: ")
if option == 0:
scores = []
elif option == 1:
scores += addScores()
elif option == 2:
print("Scores:", scores)
elif option == 3:
try:
avgScore = sum(scores)/len(scores)
print("Average:", avgScore)
except TypeError:
print("Invalid score contained in list.")
else:
print("Quitting current program.")
break
replay = input("Do you wish to continue? (Y/N)")
replay = replay.lower()
if replay == "y" or replay == "yes":
continue
else:
break
print("Goodbye!")
: 같은
귀하의 수정 된 코드는 볼 수 있었다. 프로그램에서 오류가 발생하고 언급 된 유형 (ValueError 및 TypeError) 중 하나에 해당하면 프로그램을 종료하는 대신 except 문과 함께 오류를 처리합니다. 만약 당신이 그들을 덮지 않은, 당신은 그들을 제거하고 프로그램이 잘 작동합니다. 또한 논리를 약간 정리했는데 원래는 재생 변수가 아무 것도하지 않았으므로 루프로 이동하여 이제 프로그램을 계속하거나 중단합니다.
왜 전역 변수인가? 단순히 함수 인수로 전달할 수 있습니다. 또한 첫 번째 줄은 전혀 유용하지 않습니다. global 문은 변수 _이 함수 _가 전역 변수임을 선언하기위한 것입니다. – Bakuriu
저는 글로벌 구문이 좀 더 깔끔하다고 생각합니다. 그러나 어느쪽으로 든 갈 수 있습니다. 첫 줄에 대한 메모를 보내 주셔서 감사합니다. 지금 알려 드리겠습니다. –
Globals는 끔찍하며 사용하지 않아야합니다. 코드 규칙이 잘못되어 취약하고 관리하기 어려운 코드로 이어집니다. 파이썬의 Goto 문입니다. "전역"을 원하면 클래스와 init을 사용해야합니다. –
- 1. json으로 목록을 반환하는 방법
- 2. SwingWorker를 사용하여 목록을 반환하는 방법
- 3. Readonly 바인딩 목록을 반환하는 방법
- 4. ASPX에서 SharePoint 목록을 만들고 읽고, 업데이트하고, 삭제합니다.
- 5. 일반 목록을 반환하는 함수
- 6. 목록을 반환하는 저장소를 조롱하다
- 7. 트리 내에서 목록을 만드시겠습니까?
- 8. 메서드 내에서 목록을 사용하려면 어떻게해야합니까?
- 9. webdav에서 svn 디렉토리 목록을 반환하는 방법
- 10. C#에서 Windows 프로세스 목록을 반환하는 방법?
- 11. 함수가 인수 목록을 배열 참조로 반환하는 방법
- 12. 안드로이드 aidl 파일 MyObject의 목록을 반환하는 방법?
- 13. asp.net에서 json 포스트에 목록을 반환하는 방법
- 14. JSON 개체 형식의 목록을 반환하는 방법 springMVC?
- 15. 아래의 코드에서 URL 목록을 반환하는 방법
- 16. .net ashx Web Handler 목록을 반환하는 방법
- 17. 일반 목록을 반환하는 방법은 무엇입니까?
- 18. 시스템 volumines 목록을 반환하는 프로그램
- 19. 스킴 - 증가하는 목록을 반환하는 함수
- 20. 텍스트 필드 내에서 스크롤 목록을 만드는 방법
- 21. 세션에 목록을 넣고 Javascript 내에서 사용하는 방법
- 22. Freemarker 템플릿 내에서 목록을 만드는 방법
- 23. 서버 내에서 호스팅되는 도메인 목록을 검색하는 방법
- 24. 목록 목록을 받아 들여 목록을 반환하는 SML 메서드
- 25. 목록을 일반적으로 정렬하는 방법
- 26. Android : 목록이없는 목록을 업데이트하는 방법
- 27. ASP.NET - 고객의 목록을 반환하는 등의 하나로서 나는 목록을 반환하는 함수와 WCF 서비스가 어떻게 페이지 데이터
- 28. JEditorPane에 추천 목록을 추가하는 방법
- 29. Geocoder.getFromLocationName (...)이 빈 목록을 반환하는 이유는 무엇입니까?
- 30. 속성 값 목록을 반환하는 쿼리를 객관화합니다.
<숙제가 있다고 가정> 교수님/강사가 변수 및 변수 전달 범위에 대해 이야기 해 주셨을 경우,이 두 가지가 코드와 문제를 상당히 빨리 정리하는 것 같습니다. –