Python - 使用参数作为字符串并调用函数

2024-09-26 18:01:39 发布

您现在位置:Python中文网/ 问答频道 /正文

问题

我希望get_scores接受tests并将其用作intx > 0但能够打印测试。我试着摆弄了一段时间,却得不到我想要的。你知道吗

我试过的

我的问题是我希望get_scores方法打印“测试加权的百分比是多少”。测试被分配给一个int,所以它不能打印任何东西,除非我这样做打印一个int,我不希望它这样做:

int(input("What percentage are" + str(x) + "weighted?"

我试过几种不同的方法,比如:

get_initial_input function (   like this: testsp = get_scores("tests")    )

这使得x > 0无法处理,因为x是一个字符串。我也试过:

int(x) > 0 

。。。看看它是否像把它改回int那样简单(不起作用)。你知道吗

代码

def main():
    tests = get_initial_input("tests")
    assignments = get_initial_input("assignments")
    exercises = get_initial_input("exercises")
    labs = get_initial_input("labs")
    finals = get_initial_input("finals")
    testsp = get_scores(tests)
    assignmentsp = get_scores(assignments)
    exercisesp = get_scores(exercises)
    labsp = get_scores(labs)
    finalsp = get_scores(finals)
def get_initial_input(x):
    val = int(input("How many "+ x + " were there?    "))
    return val

def get_scores(x):
    if x > 0:
            xp = int(input("What percentage are "+ str(x) + " weighted?"))
            return xp

main()

有没有办法得到我想要的?你知道吗

提前谢谢你的帮助。你知道吗


Tags: 方法inputgetdeftestswhatareinitial
2条回答

您可以让get_scores接受两个参数:一个是给出赋值类型的字符串,因此需要打印什么,另一个是此类赋值的数量:

def get_scores(x, kind):
    if x > 0:
        xp = int(input("What percentage are "+ kind + " weighted?"))
        return xp

你可以这样称呼:

testsp = get_scores(tests, 'tests)

但是在没有if的情况下编写函数,并在调用函数之前进行检查可能更有意义。你知道吗

我可能有点困惑,但听起来好像您试图使用变量tests同时表示整数值和字符串。您可以将测试转换为字符串,然后使用字符串索引来获取所需内容:

tests = ["tests"]

现在,您可以使用以下命令将第二个值放入列表:

tests.append(get_initial_input(tests))

现在,当您想要打印字符串时,只需使用print tests[0],当您想要打印测试的数量时,使用print tests[1]。你知道吗

相关问题 更多 >

    热门问题