2016-11-27 1 views
-1

저는 막혔습니다. 시작하려면 벽돌 벽을 때리면 도움이 필요합니다.파이썬에서 함수를 평균 작성 하시겠습니까?

따라서 다음과 같이 정의 된 두 개의 목록과 하나의 표가 있어야합니다.

• 액터 : 액터 이름 인 문자열 목록. 0 ≤ i ≤ len (Actors) - 1 인 각 i에 대해 우리는 Actor [i]를 i 번째 액터로 참조합니다.

• 영화, 영화 이름 인 문자열 목록. 각 i에 대해 0 ≤ i ≤ len (Films) - 1, 우리는 i 번째 필름으로 Film [i]를 참조합니다.

• 악보, 액터 및 열에 해당하는 행이 해당하는 영화 표. 점수 [i] [j]는 다음과 같이 정의 된 정수입니다.

- Scores [i] [j] = -1 인 경우 i 번째 배우가 j 번째 영화의 별이 아니란 것을 의미합니다.

- Scores [i] [j] ≥ 0 인 경우 j 번째 영화의 i 번째 배우의 점수입니다. 점수가 0-100 범위에 있다고 가정 할 수 있습니다. 데이터의 유효성을 검사 할 필요가 없습니다.

위의 구조를 내 프로그램에서 고정 된 것으로 정의 할 수 있으므로 사용자에게 입력을 요청할 필요가 없습니다.

그래서 인수가 정수 A의 테이블 A와 양의 정수 i 인 함수를 작성합니다. 이 함수는 A [i] (A의 i 행)의 음수가 아닌 항목의 평균을 반환해야합니다.

감사 젬마

+0

당신은 [루프]을 (https://docs.python.org/3해야 할 수도 있습니다 시도 /tutorial/controlflow.html#for-statements); 이것은 [함수 정의] (https://docs.python.org/3/tutorial/controlflow.html#defining-functions); [sum()] (https://docs.python.org/3/library/functions.html#sum)이 도움이 될 것입니다. 목록은 목록 일 수 있습니다 - 목록 [작업] (https://docs.python.org/3/tutorial/introduction.html#lists)의 방법은 여기 – wwii

+0

무언가를 시도하십시오. 문제를 해결할 수 있다고 생각하십시오.이를 참조하고 필요에 따라 수정하십시오. 문제를 작은 문제로 나누고 그 문제를 즉시 해결하십시오. 작은 문제를 해결할 때 발생하는 문제로 여기로 돌아옵니다. – wwii

답변

1
import numpy as np 

actors = ['Brad Pitt', 'George Clooney', 'Matt Damon', 'Rowan Atkinson'] 

films = ['Oceans 11', 'Oceans 12', 'Bean'] 

actors_dimension = (len(actors)) 

longest_actor_length = len(max(actors, key=len)) 
longest_film_length = len(max(films, key=len)) 
longest_overall_length = max(longest_actor_length, longest_film_length) 
padding = longest_overall_length 

scores_width = len(films) + 1 
scores_height = len(actors) + 1 

scores = [[' '.rjust(padding) for x in range(scores_width)] for y in range(scores_height)] 

#Setting films 
for i, film in enumerate(films): 
    scores[0][i+1] = film.rjust(padding) 

#Setting actors 
for i, actor in enumerate(actors): 
    scores[i+1][0] = actor.rjust(padding) 

#Filling data 
#Brad Pitt 
scores[1][1] = '1'.rjust(padding) 
scores[1][2] = '1'.rjust(padding) 
scores[1][3] = '-1'.rjust(padding) 

#George Clooney 
scores[2][1] = '1'.rjust(padding) 
scores[2][2] = '1'.rjust(padding) 
scores[2][3] = '-1'.rjust(padding) 

'Matt Damon' 
scores[3][1] = '1'.rjust(padding) 
scores[3][2] = '1'.rjust(padding) 
scores[3][3] = '-1'.rjust(padding) 

'Rowan Atkinson' 
scores[4][1] = '-1'.rjust(padding) 
scores[4][2] = '-1'.rjust(padding) 
scores[4][3] = '1'.rjust(padding) 

def average_of_row(row): 
    if((row > actors_dimension) or (row <= 0)): 
    print('That row is not in the table or has no actor') 
    else: 
    actor = (scores[:][row]).pop(0).strip() 
    actors_scores = [int(x) for x in ((scores[:][row]))] 
    print("%s's average score is: %f" % (actor, float((sum(actors_scores)/len(actors_scores))))) 

print(np.matrix(scores)) 

average_of_row(1) #Brad Pitt 
average_of_row(4) #Rowan Atkinson 

출력 :

[['    ' '  Oceans 11' '  Oceans 12' '   Bean'] 
['  Brad Pitt' '    1' '    1' '   -1'] 
['George Clooney' '    1' '    1' '   -1'] 
[' Matt Damon' '    1' '    1' '   -1'] 
['Rowan Atkinson' '   -1' '   -1' '    1']] 
Brad Pitt's average score is: 0.333333 
Rowan Atkinson's average score is: -0.333333 

here!

+0

정말 고맙습니다. 저에게 생각하고 코딩 해 주셔서 감사합니다. 대단히 감사합니다. – NoobyD

관련 문제