wanggg 发表于 2022-1-7 20:49

python小白,自学问题求助

为什么代码会受上方注释掉的代码影响?应该怎么解决?

ccwuax 发表于 2022-1-8 10:42

这问题我也碰到过,我理解是字符串,所以有影响,可以把3引号移到对应代码段,应该就没问题了

sapin 发表于 2022-1-8 11:10

你上方代码的缩进是什么样的

felixzhao1111 发表于 2022-1-8 11:37

多行注释需要和上方的代码保持同样的缩进格式

iandros 发表于 2022-1-8 11:47

felixzhao1111 发表于 2022-1-8 11:37
多行注释需要和上方的代码保持同样的缩进格式

是说多行代码要和三引号同样缩进吗?

Unexpectedly 发表于 2022-1-8 12:23

python没有括号,都是靠缩进的,你必须跟你前面的代码缩进一样

a2612995 发表于 2022-1-8 13:45

舆情参考

本帖最后由 a2612995 于 2022-1-8 13:46 编辑

persons=[]#全局变量
names=[]
#主页
def info():
    print("名片管理系统v1.1")
    print("-"*30)
    print("1.添加名片")
    print("2.查询名片")
    print("3.修改名片")
    print("4.删除名片")
    print("5.显示所有名片")
    print("6.退出")
    print("-"*30)
    return
#添加名片
def add():
    n=int(input("请输入要添加的名片数量:"))
    for i in range(n):
      name=input("请输入第%d张名片的姓名:"%(i+1))
      tell=input("请输入第%d张名片的电话:"%(i+1))
      person={}
      person=tell
      persons.append(person)
    print("="*30)
    print("名片添加完毕!")
    for i in range(len(persons)):
      for key in persons.keys():
            names.append(key)
    #print("names:",names)
    return
#查询名片
def select():
    name=input("请输入要查询的姓名:")
    k=0
    for i in range(len(names)):
      if name==names:
            k=i
            break
    print("="*30)
    if k==i:
      print("%s:%s"%(name,persons))
      print("查询完毕!")
    else:
      print("查无此人!")
    return
#修改名片
def update():
    name=input("请输入要修改的名片的姓名:")
    k=0
    for i in range(len(names)):
      if name==names:
            tell=input("请输入要修改名片的电话:")
            k=i
            break
    print("="*30)
    if k==i:
      persons=tell
      print("修改完毕!")
    else:
      print("查无此人!")
    return
#删除名片
def delete():
    name=input("请输入要删除的名片的姓名:")
    k=0
    for i in range(len(names)):
      if name==names:
            k=i
            break
    print("="*30)
    if k==i:      
      names.pop(k)
      persons.pop(k)
      print("删除完毕!")
    else:
      print("查无此人!")
    return
#显示所有名片
def select_all():
    print("="*30)
    for i in range(len(persons)):
      for key,value in persons.items():
            print("%s : %s"%(key,value))
    print("="*30)
    print("共%d张"%(len(persons)))
    print("显示完毕!")
    return
#主函数
def main():
    info()
    while True:
      n=int(input("请选择功能序号:"))
      if n==1:
            add()
      elif n==2:
            select()
      elif n==3:
            update()
      elif n==4:
            delete()
      elif n==5:
            select_all()
      elif n==6:
            yes=input("你真的要退出吗?yes/no:")
            if yes=="yes":
                break
      else:
            print("输入有误,请重输!")
    return
#调用主函数
main()#程序入口

xian54966 发表于 2022-1-8 15:46

应该是缩进问题

wuaikirin 发表于 2022-1-8 16:18

缩进有问题,pycharm 都贴心的给你标红了

wshuo 发表于 2022-1-10 22:25

python没有真正意义上的多行注释,只有#这种单行注释(不需要考虑缩进),而所谓多行注释可以通过引号来实现,但是其原理就是让其变成一个没有变量名的字符串,那么需要保持其缩进
页: [1]
查看完整版本: python小白,自学问题求助