leoliu121 发表于 2020-4-3 18:08:32

按照作业答案输入的,但是报错。

大家好,这是作业中的一道题,我按照答案输入的代码,但是运行时会报错,如图:


这个错误的地方显示的是在if instr == 3: 这个位置的,把指令3这段代码都删除,程序就可以正常运行,请大家帮忙看看是哪里出错了呢?谢谢了。

print("""|---欢迎使用通讯录查询系统---|\n1.查询\n2.插入\n3.删除\n4.退出""")
contacts = dict()
while 1:
    instr = int(input("\n请输入相关的指令:"))
    if instr == 1:
      name = input("请输入联系人姓名:")
      if name in contacts:
            print (name + ":" + contacts)
      else:
            print("您输入的姓名不存在!")

    if instr == 2:
      name = input("请输入联系人姓名:")
      if name in contacts:
            print("您输入的姓名已经存在")
            print (name + ":" + contacts)
            if input("是否修改此用户资料?(Yes or No)") == Yes:
                contacts = input("请输入新的用户号码:")
            else:
                contacts = input("请输入新的用户号码:")


   if instr == 3:
         name = input("请输入联系人姓名:")
      if name in contacts:
            del(contacts)
      else:
            print("您输入的姓名不存在!")

    if instr == 4:
      break

print ("感谢使用通讯录!")
            

zltzlt 发表于 2020-4-3 18:10:04

缩进错误,这样试试:

print("""|---欢迎使用通讯录查询系统---|\n1.查询\n2.插入\n3.删除\n4.退出""")
contacts = dict()
while 1:
    instr = int(input("\n请输入相关的指令:"))
    if instr == 1:
      name = input("请输入联系人姓名:")
      if name in contacts:
            print(name + ":" + contacts)
      else:
            print("您输入的姓名不存在!")

    if instr == 2:
      name = input("请输入联系人姓名:")
      if name in contacts:
            print("您输入的姓名已经存在")
            print(name + ":" + contacts)
            if input("是否修改此用户资料?(Yes or No)") == Yes:
                contacts = input("请输入新的用户号码:")
            else:
                contacts = input("请输入新的用户号码:")

    if instr == 3:
      name = input("请输入联系人姓名:")
      if name in contacts:
            del (contacts)
      else:
            print("您输入的姓名不存在!")

    if instr == 4:
      break

print("感谢使用通讯录!")

一个账号 发表于 2020-4-3 18:13:36

缩进错误,name 那里多了个空格,改成这样:

print("""|---欢迎使用通讯录查询系统---|\n1.查询\n2.插入\n3.删除\n4.退出""")
contacts = dict()
while 1:
    instr = int(input("\n请输入相关的指令:"))
    if instr == 1:
      name = input("请输入联系人姓名:")
      if name in contacts:
            print(name + ":" + contacts)
      else:
            print("您输入的姓名不存在!")

    if instr == 2:
      name = input("请输入联系人姓名:")
      if name in contacts:
            print("您输入的姓名已经存在")
            print(name + ":" + contacts)
            if input("是否修改此用户资料?(Yes or No)") == Yes:
                contacts = input("请输入新的用户号码:")
            else:
                contacts = input("请输入新的用户号码:")

    if instr == 3:
      name = input("请输入联系人姓名:")
      if name in contacts:
            del (contacts)
      else:
            print("您输入的姓名不存在!")

    if instr == 4:
      break

print("感谢使用通讯录!")

leoliu121 发表于 2020-4-3 18:20:26

一个账号 发表于 2020-4-3 18:13
缩进错误,name 那里多了个空格,改成这样:

请问是哪一行的name多个空格呢?~~

一个账号 发表于 2020-4-3 18:20:55

leoliu121 发表于 2020-4-3 18:20
请问是哪一行的name多个空格呢?~~

第 24 行

leoliu121 发表于 2020-4-3 18:23:13

zltzlt 发表于 2020-4-3 18:10
缩进错误,这样试试:

请问是哪一行缩进错误呢?~~这种情况应该如何快速调整好呢?谢谢~~

zltzlt 发表于 2020-4-3 18:24:58

leoliu121 发表于 2020-4-3 18:23
请问是哪一行缩进错误呢?~~这种情况应该如何快速调整好呢?谢谢~~

在第 24 行:

leoliu121 发表于 2020-4-3 18:35:28

感谢两位,我发现if instr == 3 这整段代码的缩进都有问题。。。。然后修改过来了,谢谢你们了~~~

隔壁繁星吖 发表于 2020-4-3 19:36:37

我来晚了?
都说写Python的都是用尺去比划缩进的{:10_250:}

leoliu121 发表于 2020-4-3 22:30:15

隔壁繁星吖 发表于 2020-4-3 19:36
我来晚了?
都说写Python的都是用尺去比划缩进的

好主意,哈哈~~
页: [1]
查看完整版本: 按照作业答案输入的,但是报错。