<s>Human: 对于给定的一组电影数据，编写一个程序，将其按照年份从小到大排序，并输出前20个代表性的电影。
数据示例(每行代表一部电影，格式为：电影名 年份 评分):
The Shawshank Redemption 1994 9.3
The Godfather 1972 9.2
The Dark Knight 2008 9.0
Pulp Fiction 1994 8.9
The Lord of the Rings: The Return of the King 2003 8.9
Forrest Gump 1994 8.8
Fight Club 1999 8.8
Inception 2010 8.8
The Lord of the Rings: The Fellowship of the Ring 2001 8.8
The Lord of the Rings: The Two Towers 2002 8.7
</s><s>Assistant: # 定义读取数据的函数read_data
def read_data():
    data_list = []  # 定义空列表用于存储数据
    with open('movies.txt', 'r', encoding='UTF-8') as f:
        for line in f:  # 逐行读取数据
            line = line.strip()  # 去除行尾的换行符
            if line:  # 如果不为空行
                movie_info = line.split()  # 按空格分隔电影名、年份、评分
                movie_info[1] = int(movie_info[1])  # 将年份转为整数
                movie_info[2] = float(movie_info[2])  # 将评分转为浮点数
                data_list.append(movie_info)  # 将电影信息添加到列表末尾
    return data_list

# 定义排序函数sorted_by_year
def sorted_by_year(data_list):
    sorted_list = sorted(data_list, key=lambda x: x[1])  # 按年份从小到大排序
    return sorted_list

# 定义输出函数print_top20
def print_top20(data_list):
    for i in range(20):  # 输出前20个电影
        print(f'{i+1}. {data_list[i][0]} ({data_list[i][1]}) {data_list[i][2]:.1f}')

# 主程序
if __name__ == '__main__':
    data = read_data()  # 读取数据
    sorted_data = sorted_by_year(data)  # 按年份排序
    print_top20(sorted_data)  # 输出前20个电影信息
</s>