看一个有意思的列子,以下两段代码实现的功能:只要输入演员名,就打印出:××出演了电影××。两段代码的不同之处在于input( )的位置,第一段代码位于for循环外面,第二段代码位于for循环内部。
通过测试发现,第一段代码第一次查询就可以准确打印出结果,但是第二段代码却需要循环第i次才能打印出结果。以查询“雷佳音”为例,第二段代码需要重复查询第三次才能打印出结果;查询“章子怡”则需要重复查询第二次才能打印出结果。
这是为什么呢?
1 movies = { 2 '妖猫传':['黄轩','染谷将太'], 3 '无问西东':['章子怡','王力宏','祖峰'], 4 '超时空同居':['雷佳音','佟丽娅'], 5 } 6 while True: 7 actor = input('你想查询哪个演员?') 8 for movie in movies: # 用 for 遍历字典 9 actors = movies[movie] # 读取各个字典的主演表 10 if actor in actors: 11 print(actor + '出演了电影' + movie)
1 movies = { 2 '妖猫传':['黄轩','染谷将太'], 3 '无问西东':['章子怡','王力宏','祖峰'], 4 '超时空同居':['雷佳音','佟丽娅'], 5 } 6 while True: 7 for movie in movies: # 用 for 遍历字典 8 actor = input('你想查询哪个演员?') 9 actors = movies[movie] # 读取各个字典的主演表 10 if actor in actors: 11 print(actor + '出演了电影' + movie)