繁体   English   中英

为什么我的最小功能不能打印任何内容?

[英]Why does my minimum function not print anything?

我无法弄清楚为什么我的代码没有返回最低分数:

def min_score(student):
    x = student[0]
    for i in student:
        if i < x:
            minimum = i
            i += 1
            print('Minimum score:', minimum)
            return minimum

brian = [input('Enter brians scores:')]
min_score(brian)

我尝试将.split()添加到输入的末尾,但这没有任何作用。

您的input语句需要一些调整。 以前,它只是一个stringlist 您需要做的是用whitespace split数字,将每个元素映射到int ,然后将其转换为list

brian = list(map(int,input('Enter brians scores:').split()))

并且您的功能也几乎不需要更改。

def min_score(student):
    x_min = student[0]
    for ele in student[1:]:
        if ele < x_min:
            x_min = ele

    print('Minimum score:', x_min)
    return x_min

#driver值:

IN : Enter brians scores: 3 5 1
IN : brian = [3,5,1]
OUT : Minimum score: 1

但是,当然,使用列表中的min函数要容易得多。

brian = list(map(int,input('Enter brians scores:').split()))
print('Minimum score:', min(brian))

brian是一个字符串。 python中的字符串是字符列表。 使用for循环,您可以遍历字符串中的每个字符。 您应该分割字符串以获取列表(字符串!)。 要评估值,您需要转换列表的每个元素。 另外,您的变量和缩进都有问题。 这有效:

def min_score(student):
    minimum = int(student[0])
    for score in student:
        i = int(score)
        if i < minimum:
            minimum = i
    print('Minimum score:', minimum)
    return minimum

brian = input('Enter brians scores:').split()
min_score(brian)

试试这个,我假设分数在输入时以逗号分隔。

def min_score(student):

    x = student[0]
    print x
    for i in student:
        if i < x:
            x = i
    print('Minimum score:', x)
    return x

brian = input('Enter brians scores:')
min_score(brian)

除了Kaushik的更改之外,您还需要删除该行

i += 1

在for循环中,每次执行for循环时,i都已更改。 您还必须在for循环结束时返回最小值。 如果找到小于i的值后立即返回最小值,则只会找到第一个最小值,而不是整个列表的最小值。 修改后的代码如下所示:

def min_score(student):
    minimum = student[0]
    for i in student:
        if i < minimum:
            minimum = i
    return minimum

brian = list(map(int,input('Enter brians scores:')))
print min_score(brian)

如果你把

 44,33,55

输入中,函数将返回

33

准确。

  1. 您的函数正在将输入列表的元素与x进行比较,但您将其赋给minimum
  2. printreturn嵌套在if ,您将等不及整个列表的最小值。
  3. 不要增加i ; 这是您列表中的值,而不是索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM