首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自动计算平均学分绩点的Python实现

我们都会面临计算平均学分绩点的问题,虽然只是加法与乘法的混合运算,但是当一个人计算全班同学的平均学分绩点时,这简直是个噩梦,所以呢,今天我们来做一个自动化的脚本文件,只要按顺序输入各科成绩即可自动得出结果下面开始:

首先看一下规则(以我自己所在系为例):

里面说的很明白了,就不再重述,接下来我们进行Python的代码实现。

首先根据成绩与绩点的对应关系,我们自然想到利用if-else结构;

然后要将用户输入的值的个位截取出来;

初步的代码是这样子的:

grade=0.0#初始化grade

score=int(raw_input("请输入0-100之间的整数成绩: "))

sc=score

s=str(sc)

mid2=int(s[1])#截取第二位

if 90

grade=grade+4.0+0.1*mid2

elif 80

grade=grade+3.0+0.1*mid2

elif 70

grade=grade+2.0+0.1*mid2

elif 60

grade=grade+1.0+0.1*mid2

else:

grade=0

测试了一下,没有出现问题,我们进行下一步:封装成函数

def f(class_name):

grade=0.0

score=int(raw_input("请输入0-100之间的整数成绩: "))

sc=score

s=str(sc)

mid2=int(s[1])

if 90

grade=grade+4.0+0.1*mid2

elif 80

grade=grade+3.0+0.1*mid2

elif 70

grade=grade+2.0+0.1*mid2

elif 60

grade=grade+1.0+0.1*mid2

else:

grade=0

return grade

现在,这个函数f已经可以被调用了,我们还需要一个调用函数f函数:

def getg():

sf=6.0*f('sf')

cwf=4.0*f('cwf')

gll=4.0*f('gll')

ty=1.0*f('ty')

my=3.0*f('my')

yy=3.5*f('yy')

jjx=3.0*f('jjx')

su=sf+cwf+gll+ty+my+yy+jjx

result=su/(6+4+4+1+3+3.5+3)

print"您的平均学分绩点为:", result

上述代码中sf,cwf等等都是课程的拼音首字母组合,它们分别代表数分,常微分,概率论,体育,马原,英语,微观经济学 。

现在我们就可以把上述代码合在一起了,全部代码以及使用方法如下:

# -*- coding: cp936 -*-

"""

使用方法:

运行本脚本,在Python的终端里输入 “ getg()”,

按照”数分,常微分,概率论,体育,马原,英语,微观经济学“

的顺序依次输入对应的成绩即可自动求解您的平均学分绩点

"""

deff(class_name):

grade=0.0

score=int(raw_input("请输入0-100之间的整数成绩: "))

sc=score

s=str(sc)

mid2=int(s[1])

if 90

grade=grade+4.0+0.1*mid2

elif 80

grade=grade+3.0+0.1*mid2

elif 70

grade=grade+2.0+0.1*mid2

elif 60

grade=grade+1.0+0.1*mid2

else:

grade=0

return grade

defgetg():

sf=6.0*f('sf')

cwf=4.0*f('cwf')

gll=4.0*f('gll')

ty=1.0*f('ty')

my=3.0*f('my')

yy=3.5*f('yy')

jjx=3.0*f('jjx')

su=sf+cwf+gll+ty+my+yy+jjx

result=su/(6+4+4+1+3+3.5+3)

print"您的平均学分绩点为:", result

假定某同学的数分,常微分,概率论,体育,马原,英语,微观经济学成绩分别为:65,76,70,86,60,71,85,演示如下:

再来一个:84,88,88,76,77,90,88

看来效果还不错。

时间匆忙,排版很乱,先到这儿,大家可以根据自己所在院系的规则进行改动下就可以使用了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180306G16ZDG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券