ppp099 发表于 2022-3-18 15:18:01

python循环停止不了

def input_student(name=" ",age=" ",achi=" "):
    name = input("请输入名字:")
    age = int(input("请输入年龄"))
    achi = int(input("请输入成绩"))
    L=[]
    while len(name) != 0:
      L.append(input_student())
      name = input("请输入名字:")
      age = int(input("请输入年龄"))
      achi = int(input("请输入成绩"))
    return L
input_student()
print(L)


写一个程序,任意输入n个学生的信息,形成字典后存于列表中 input_studet()
学生的信息包括:姓名(字符串),年龄(整数),成绩(浮点数)
循环输入学生信息,知道输入学生姓名为空时结束输入

名字为空时,无法终止循环

isdkz 发表于 2022-3-18 15:36:56

第一个问题:
你用了递归,你 append 那里不应该调用自身

第二个问题:
你要把 input_student() 的结果赋值给 L 才能打印,

不然你是没法在全局 print 一个局部变量的
def input_student(name=" ",age=" ",achi=" "):
    name = input("请输入名字:")
    if not name:
      return
    age = int(input("请输入年龄"))
    achi = int(input("请输入成绩"))
    L=[]
    while len(name) != 0:
      L.append((name, age, achi))
      name = input("请输入名字:")
      if not name:
            break
      age = int(input("请输入年龄"))
      achi = int(input("请输入成绩"))
    return L
L = input_student()
print(L)
页: [1]
查看完整版本: python循环停止不了