看一个有意思的列子,以下两段代码实现的功能:只要输入演员名,就打印出:××出演了电影××。两段代码的不同之处在于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)
02-13 09:24