标题:网上扒了一个简单的代码,不知道问题出在哪
只看楼主
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:100
注 册:2016-6-24
结帖率:66.67%
已结贴  问题点数:20 回复次数:7 
网上扒了一个简单的代码,不知道问题出在哪
学生管理系统,我在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()

下面是运行结果,看不懂哪有问题?
搜索更多相关主题的帖子: 学生 print 学生信息 修改 input 
2019-01-15 22:02
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:7 
aaa要加引号吧

剑栈风樯各苦辛,别时冰雪到时春
2019-01-15 22:15
闫哈哈
Rank: 1
等 级:新手上路
威 望:1
帖 子:4
专家分:7
注 册:2019-1-17
得分:7 
回复 2楼 林月儿
input输入默认就是str

人生啊 地不熟
2019-01-17 11:52
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
回复 3楼 闫哈哈
要加的

剑栈风樯各苦辛,别时冰雪到时春
2019-01-17 14:45
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:7 
input改成raw_input即可
2019-01-18 13:17
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:100
注 册:2016-6-24
得分:0 
回复 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值这里不改呢?
//希望您可以帮我看看问题,谢谢!!!!
2019-02-01 19:45
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
https://

剑栈风樯各苦辛,别时冰雪到时春
2019-02-01 19:49
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:100
注 册:2016-6-24
得分:0 
回复 7楼 林月儿
好的,谢谢
2019-02-19 20:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492705-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.615374 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved