鱼C论坛

 找回密码
 立即注册
查看: 2497|回复: 9

[已解决]python 单链表求助

[复制链接]
发表于 2018-9-21 22:45:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#

import sys

class student:
    def __init__(self):
        self.name=''
        self.Math=0
        self.Eng=0
        self.no=''
        self.next=None
        
head=student() #建立链表的头部
head.next=None
ptr = head
Msum=Esum=num=student_no=0
select=0

while select !=2:
    print('(1)新增 (2)离开 =>')
    try:
        select=int(input('请输入一个选项: '))
    except ValueError:
         print('输入错误')
         print('请重新输入\n')
    if select ==1:
        new_data=student() #新增下一个元素
        new_data.name=input('姓名:')
        new_data.no=input('学号:')
        new_data.Math=eval(input('数学成绩:'))
        new_data.Eng=eval(input('英语成绩:'))
        ptr.next=new_data #存取指针设置为新元素所在的位置
        new_data.next=None #下一元素的next先设置为None
        ptr=ptr.next
        num=num+1

ptr=head.next #设置存取指针从链表的头部开始
print()
while ptr !=None:
    print('姓名:%s\t学号:%s\t数学成绩:%d\t英语成绩:%d' \
           %(ptr.name,ptr.no,ptr.Math,ptr.Eng))
    Msum=Msum+ptr.Math
    Esum=Esum+ptr.Eng
    student_no=student_no+1
    ptr=ptr.next #将ptr移往下一个元素

if student_no !=0:
    print('---------------------------------------------------------')
    print('本链表中学生的数学平均成绩:%.2f 英语平均成绩:%.2f' \
      %(Msum/student_no,Esum/student_no))

我想问下上述代码为什么不能用python 2 跑,就单链表的实现而言,python3和python2的差别很大吗?求告知,谢谢
最佳答案
2018-9-21 22:53:54
没有第二版,不过第二版的要求输入是 raw_input(), print 不是函数,不用括号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-21 22:53:54 | 显示全部楼层    本楼为最佳答案   
没有第二版,不过第二版的要求输入是 raw_input(), print 不是函数,不用括号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-22 13:21:58 | 显示全部楼层
claws0n 发表于 2018-9-21 22:53
没有第二版,不过第二版的要求输入是 raw_input(), print 不是函数,不用括号

但是按照你这样说的方法,修改之python 2.7还是不能运行,我不太明白你说的意思,我比较想知道的就是为什么python 2.7不能运行,因为这个就是按照单链表实现的,还希望能讲解一下,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-22 14:00:07 | 显示全部楼层
Trami 发表于 2018-9-22 13:21
但是按照你这样说的方法,修改之python 2.7还是不能运行,我不太明白你说的意思,我比较想知道的就是为什 ...

T_T 无法帮你试,但你可以把报错的内容告诉我
py3 修改的是语法(小修)、函数、对象,你的架构没有问题,所以目前判断是这两个函数的调用方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-22 16:47:28 | 显示全部楼层
claws0n 发表于 2018-9-22 14:00
T_T 无法帮你试,但你可以把报错的内容告诉我
py3 修改的是语法(小修)、函数、对象,你的架构没有问题 ...

(1)新增 (2)离开 =>
请输入一个选项: 1
姓名:jh
Traceback (most recent call last):
  File "CH03_01.py", line 28, in <module>
    new_data.name=input('姓名:')
  File "<string>", line 1, in <module>
NameError: name 'jh' is not defined

当我输入一个名字之后就会出现这样的错误,辛苦帮看下,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-22 17:02:31 | 显示全部楼层
本帖最后由 claws0n 于 2018-9-22 17:04 编辑
Trami 发表于 2018-9-22 16:47
(1)新增 (2)离开 =>
请输入一个选项: 1
姓名:jh


?不是换回去 raw_input(...) ?
py2 的 input() 是  eval(raw_input()), jh 无法被 eval
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-22 22:47:13 | 显示全部楼层
claws0n 发表于 2018-9-22 17:02
?不是换回去 raw_input(...) ?
py2 的 input() 是  eval(raw_input()), jh 无法被 eval

哦哦哦,刚刚发现了错误了,但是现在还是有一个问题,现在就是当按下2的时候,应该会输出所有的成绩和平均分,现在就是按下 2 直接报错
(1)新增 (2)离开 =>
请输入一个选项: 1
姓名:gf
学号:32
数学成绩:44
英语成绩:55
(1)新增 (2)离开 =>
请输入一个选项: 1
姓名:zzz
学号:22
数学成绩:34
英语成绩:34
(1)新增 (2)离开 =>
请输入一个选项: 2
()
Traceback (most recent call last):
  File "CH03_01.py", line 41, in <module>
    %(ptr.name,ptr.no,ptr.Math,ptr.Eng))
TypeError: %d format: a number is required, not str
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-22 22:57:55 | 显示全部楼层
Trami 发表于 2018-9-22 22:47
哦哦哦,刚刚发现了错误了,但是现在还是有一个问题,现在就是当按下2的时候,应该会输出所有的成绩和平 ...

print '姓名:%s\t学号:%s\t数学成绩:%d\t英语成绩:%d' \ % (ptr.name, ptr.no, ptr.Math, ptr.Eng)  #应该是对的

new_data.Math=int(input('数学成绩:')) #换成 int 试试?
new_data.Eng=int(input('英语成绩:'))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-24 21:32:49 | 显示全部楼层
claws0n 发表于 2018-9-22 22:57
print '姓名:%s\t学号:%s\t数学成绩:%d\t英语成绩:%d' \ % (ptr.name, ptr.no, ptr.Math, ptr.Eng)  #应 ...

可以了,辛苦你了,感谢你的讲解,中秋快乐,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-24 22:45:51 | 显示全部楼层
Trami 发表于 2018-9-24 21:32
可以了,辛苦你了,感谢你的讲解,中秋快乐,谢谢

中秋节快乐 ^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 01:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表