lcy123555 发表于 2022-12-29 11:02:30

python37讲课后习题

movies = {}

print("欢迎进入鱼C影评小程序")
print("1.数据录入")
print("2.查询数据")
print("3.退出程序")
op = int(input("请输入想要的功能(1/2/3):"))

while op != 3:
    if op == 1:
      go = True
      while go:
            movie = input('请输入电影名字')
            date = input('请输入日期')
            directors =
            actors =
            scores = input('请输入电影评分')
            movies =

            if 'NO' == input("请问是否继续录入(YES/NO):"):
                go = False

    if op == 2:
      name = input('请输入要查询的电影名称')
      if name in movies:
            print(f'电影名称为{name}')
            print(f'上映日期为{movies}')
            print(f"导演名单:{movies}")
            print(f"演员名单:{movies}")
            print(f"当前评分:{movies}")
      else:
            print('没有这个')
op = int(input("\n请输入想要的功能(1/2/3):"))

isdkz 发表于 2022-12-29 11:20:35

本帖最后由 isdkz 于 2022-12-29 11:31 编辑

因为你对 op 的赋值在循环外所以在循环中 op 的值一直不变,所以你退不出的不是内层循环,

而是外层循环,然后从外层循环又进入了内层循环

movies = {}

print("欢迎进入鱼C影评小程序")

while True:
    print("1.数据录入")
    print("2.查询数据")
    print("3.退出程序")
    op = int(input("请输入想要的功能(1/2/3):"))
   
    if op == 3:
      break

    if op == 1:
      go = True
      while go:
            movie = input('请输入电影名字')
            date = input('请输入日期')
            directors =
            actors =
            scores = input('请输入电影评分')
            movies =

            if 'NO' == input("请问是否继续录入(YES/NO):"):
                go = False

    if op == 2:
      name = input('请输入要查询的电影名称')
      if name in movies:
            print(f'电影名称为{name}')
            print(f'上映日期为{movies}')
            print(f"导演名单:{movies}")
            print(f"演员名单:{movies}")
            print(f"当前评分:{movies}")
      else:
            print('没有这个')

lcy123555 发表于 2022-12-29 11:25:41

isdkz 发表于 2022-12-29 11:20
因为你对 op 的赋值在循环外所以在循环中 op 的值一直不变,所以你退不出的不是内层循环,

而是外层循环 ...

movies = {}
   
print("欢迎进入鱼C影评小程序")
print("1.数据录入")
print("2.查询数据")
print("3.退出程序")
op = int(input("请输入想要的功能(1/2/3):"))
   
while op != 3:
    if op == 1:
      go = True
      while go:
            movie = input("请输入电影名称:")
            date = input("请输入上映日期:")
            directors =
            actors =
            scores = input("请输入电影评分:")
            movies =
   
            if 'N' == input("请问是否继续录入(Y/N):"):
                go = False
   
    if op == 2:
      name = input("请输入电影名称:")
      if name in movies:
            print(f"电影名称:{name}")
            print(f"上映日期:{movies}")
            print(f"导演名单:{movies}")
            print(f"演员名单:{movies}")
            print(f"当前评分:{movies}")
      else:
            print("查无此片!")
   
    op = int(input("\n请输入想要的功能(1/2/3):"))




小甲鱼的答案不是和我写的一样嘛,为什么他的可以退出

isdkz 发表于 2022-12-29 11:28:25

lcy123555 发表于 2022-12-29 11:25
小甲鱼的答案不是和我写的一样嘛,为什么他的可以退出

因为第34行,他在循环里面改变了 op 的值,而你的并没有,你把最后一行放在循环外边了

lcy123555 发表于 2022-12-29 11:32:19

isdkz 发表于 2022-12-29 11:28
因为第34行,他在循环里面改变了 op 的值,而你的并没有,你把最后一行放在循环外边了

明白了,谢谢哈
页: [1]
查看完整版本: python37讲课后习题