注册 登录
编程论坛 Python论坛

网上扒了一个简单的代码,不知道问题出在哪

选调生 发布于 2019-01-15 22:02, 2765 次点击
学生管理系统,我在windows下用pycharm运行的
程序代码:

#!/usr/bin/env python
#
-*- coding:utf-8 -*-
#
用来保存学生的所有信息
stuInfos = []
# 全局变量
newName = ""
newSex = ""
newPhone = ""


# 打印功能提示
def printMenu():
    print("=" * 30)
    print("      学生管理系统v1.0")
    print("1.添加学生信息")
    print("2.删除学生信息")
    print("3.修改学生信息")
    print("4.查询学生信息")
    print("5.显示所有学生信息")
    print("0.退出系统")
    print("=" * 30)


# 获取一个学生的信息
def getInfo():
    global newName
    global newSex
    global newPhone
    # 这三个是全局变量,要对其进行修改,则要先声明
    newName = input("请输入学生的姓名:")
    newSex = input("请输入学生的性别:")
    newPhone = input("请输入学生的手机号码:")
    # 通过列表的形式把数据整合成一个整体,然后返回
    return [newName, newSex, newPhone]


# 添加学生信息
def addStuInfo():
    result = getInfo()
    newInfo = {}
    newInfo['name'] = result[0]
    newInfo['sex'] = result[1]
    newInfo['phone'] = result[2]
    stuInfos.append(newInfo)


# 修改一个学生的信息
def modifyStuInfo():
    stuId = int(input("请输入要修改的学生的序号:"))
    getInfo()
    # 先获得要修改的学生在stuInfos中的位置,即stuId-1,当前位置是以字典形式存的,再找字典中要修改的值对应的键,即姓名···
    stuInfos[stuId - 1]['name'] = newName
    stuInfos[stuId - 1]['sex'] = newSex
    stuInfos[stuId - 1]['phone'] = newPhone


def main():
    while True:
        # 打印提示信息
        printMenu()
        key = input("请输入你要选择的操作:")
        if key == 1:
            # 添加学生信息
            addStuInfo()
        elif key == 3:
            # 修改学生信息
            modifyStuInfo()
        elif key == 5:
            print("=" * 30)
            print("学生的信息如下:")
            print("序号  姓名   性别   手机号码")
            i = 1
            for tempInfo in stuInfos:
                print("%d   %s   %s     %s" % (i, tempInfo['name'], tempInfo['sex'], tempInfo['phone']))
                i += 1


# 调用主函数
main()

下面是运行结果,看不懂哪有问题?
只有本站会员才能查看附件,请 登录
7 回复
#2
林月儿2019-01-15 22:15
aaa要加引号吧
#3
闫哈哈2019-01-17 11:52
回复 2楼 林月儿
input输入默认就是str
#4
林月儿2019-01-17 14:45
回复 3楼 闫哈哈
要加的
#5
apull2019-01-18 13:17
input改成raw_input即可
#6
选调生2019-02-01 19:45
回复 5楼 apull
您好!可以再麻烦一下么,谢啦!

//我把下面获取学生信息代码块里的input都改成了raw_input

newName = raw_input("请输入学生的姓名:")
newSex = raw_input("请输入学生的性别:")
newPhone = raw_input("请输入学生的手机号码:")

//然后把修改学生信息代码块里的input也改成了raw_input

stuId = int(raw_input("请输入要修改的学生的序号:"))

//但是没有改main函数里输入key值的input

def main():
   while True:
   # 打印提示信息
   printMenu()
   key = input("请输入你要选择的操作:")

//之后代码就可以正常运行和操作了。我想问下为什么要改成raw_input就可以了,还有为什么key值这里不改呢?
//希望您可以帮我看看问题,谢谢!!!!
#7
林月儿2019-02-01 19:49
https://
#8
选调生2019-02-19 20:16
回复 7楼 林月儿
好的,谢谢
1