单向链表练习

设计一个python程序,可以让用户输入数据来新增学生数据节点,并建立一个单向链表。当用户输入结束后,可遍历此链表,并显示其内容,并求出当前链表中所以学生的数学与英语的平均成绩。此学生节点的结构数据类型如下:

clss student:
	def __init__(self):
		self.name=''
		self.Math=0
		self.Eng=0
		self.no=''
		self.next=None

范例程序:

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=0
Esum=0
num=0
student_no=0
select=0

while select !=2:
	print('(1) 新增(2)离开')
	try:
		select=int(input('请输入1或2:'))
	except:
		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
		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

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

执行结果如下:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值