打印出函数时,有什么方法可以避免出现“ None”?

时间:2019-10-28 11:37:15

标签: python-3.x

我正在尝试计算对象的平均成绩。但是当我打印功能时,我没有打印。 而且我不知道如何解决它。

我尝试返回值,而不是打印该函数,但是它不起作用。


    def karakterKonversjon(bokstav):
            if bokstav == 'A':
                return 6 
            if bokstav == 'B':
                return 5
            if bokstav == 'C':
                return 4
            if bokstav == 'D':
                return 3
            if bokstav == 'E':
                return 2
            if bokstav == 'F':
                return 1

    def konversjonTilBokstav(tall):
        if tall == 6:
            return 'A'
        if tall == 5:
            return 'B'
        if tall == 4:
            return 'C'
        if tall == 3:
            return 'D'
        if tall == 2:
            return 'E'
        if tall == 1:
            return 'F'


    def beregnSnitt():
            nummer_karakter = 0
            suM = 0

            for i in emner:

                if emner[i] != "":
                    tall_karakter = eksamen.karakterKonversjon(emner[i])
                    suM += (tall_karakter * studiepoeng)

            suM /= totalPoeng
            rundetSvar = eksamen.normal_round(suM)
            eksamen.konversjonTilBokstav(rundetSvar)
            print(rundetSvar)

    def normal_round(suM):
            if (float (suM) < 5):
                print(math.floor(suM))
            else:
                print(math.ceil(suM))

我期望的结果是

4
C

但是我得到

4
None

1 个答案:

答案 0 :(得分:-1)

我对您的代码进行了一些修改: (我假设您正在eksamen文件中导入数学)

def karakterKonversjon(bokstav): # make this function more efficient
    atof = ['A','B','C','D','E','F']
    for i in range(len(atof)):
        if bokstav.upper() == atof[i]:
            return len(atof) - i

def konversjonTilBokstav(tall): # make this function more efficient
    atof = ['A','B','C','D','E','F']
    for i in range(1,7):
        if tall == i:
            return atof[len(atof)-i]


def beregnSnitt():
        nummer_karakter = 0
        suM = 0

        for i in range(len(emner)): # if enmer == "enmer"(for example) you cannot reference enmer['e'] without raising an error

            if emner[i] != "":
                tall_karakter = eksamen.karakterKonversjon(emner[i])
                suM += (tall_karakter * studiepoeng)

        suM /= totalPoeng
        rundetSvar = eksamen.normal_round(suM)
        eksamen.konversjonTilBokstav(rundetSvar)
        print(rundetSvar)

def normal_round(suM):
        if (float (suM) < 5):
            print(math.floor(suM))
        else:
            print(math.ceil(suM))

除了我所做的区别之外,您的代码应该可以正常工作,但是我无法在不知道enmer是什么(我认为是字符串)或studiepoeng是什么的情况下进行测试。

函数konversjonTilBokstav对我来说很好用。但是我在代码段中包含的内容应该少是意大利面条代码