| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 679 人关注过本帖
标题:网上扒了一个简单的代码,不知道问题出在哪
只看楼主 加入收藏
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:100
注 册:2016-6-24
结帖率:69.57%
  已结贴   问题点数: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()

下面是运行结果,看不懂哪有问题?
附件: 您没有浏览附件的权限,请 登录注册
2019-01-15 22:02
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:117
帖 子:1842
专家分:8094
注 册: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
来 自:湖南
等 级:版主
威 望:117
帖 子:1842
专家分:8094
注 册:2015-3-19
  得分:0 
回复 3楼 闫哈哈
要加的

知命以下无敌
2019-01-17 14:45
apull
Rank: 10Rank: 10Rank: 10
来 自:三体星系
等 级:贵宾
威 望:23
帖 子:504
专家分:1614
注 册:2010-3-16
  得分:7 
input改成raw_input即可
2019-01-18 13:17
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分: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
来 自:湖南
等 级:版主
威 望:117
帖 子:1842
专家分:8094
注 册:2015-3-19
  得分:0 
https://www.cnblogs.com/littlebob/p/9159892.html

知命以下无敌
2019-02-01 19:49
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:100
注 册:2016-6-24
  得分:0 
回复 7楼 林月儿
好的,谢谢
2019-02-19 20:16







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

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