Question: book_data = [] for line in open(booklist.txt): book_data.append(tuple(line.strip().split(,))) ratings = {} i = 0 name = for line in open('ratings.txt'): if i % 2
book_data = []
for line in open("booklist.txt"): book_data.append(tuple(line.strip().split(",")))
ratings = {} i = 0 name = "" for line in open('ratings.txt'): if i % 2 == 0: name = line.strip().lower() else: data = [int(d) for d in line.strip().split()] ratings[name] = data i += 1
def dotprod(x, y): result = 0 for i in range(len(book_data)): result += ratings[x][i] * ratings[y][i] return result
def buddies(name): affinity_scores = [] for other in ratings: if other != name: affinity_score = dotprod(name, other) affinity_scores.append((other, affinity_score)) affinity_scores = sorted(affinity_scores, key=lambda x: x[1], reverse=True) return sorted([affinity_scores[0][0], affinity_scores[1][0]])
def recommend(name): friend1, friend2 = buddies(name) recommendations = [] for i in range(len(book_data)): if ratings[name][i] == 0: if ratings[friend1][i] >= 3 or ratings[friend2][i] >= 3: recommendations.append(book_data[i]) return recommendations
def report(): result = "" names = sorted(ratings.keys()) for name in names: recommendations = recommend(name) result += name + ": " + str(buddies(name)) + " " for recommendation in recommendations: result += "\t" + str(recommendation) + " " result += " " return result.strip()
def main(): """ Prints recommendations for all readers """ with open('recommendations.txt', 'w') as rec_file: print(report(), file=rec_file) print(report())
if __name__ == '__main__': main()
book_data.append (tuple (line.strip().split(","))) ^ SyntaxError: invalid character in identifier
Can someone help me out with this SyntaxError?
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
