如何在def函数的print语句中删除括号

时间:2019-07-04 05:07:05

标签: python

我正在尝试从打印功能中删除括号。

frames = [1,2,3,4,5,6,7,8,9,10]
scores = [10,7,10,7,6,7,9,5,10]

def FindLowest(scores):

    sorted_list = sorted(scores)
    low = sorted_list[0]
    rnd = 0

    for i in range(len(frames)):
        if scores[i] == low:
            rnd = i + 1
            break
    return low, rnd

    print("Lowest Score is",FindLowest(scores))

最低得分为5,出现在第8帧

实际输出=最低分数是(5,8)

5 个答案:

答案 0 :(得分:1)

尝试对低分数及其框架使用带有占位符的打印语句:

def FindLowest(scores):
    sorted_list = sorted(scores)
    low = sorted_list[0]
    rnd = 0

    for i in range(len(frames)):
        if scores[i] == low:
        rnd = i + 1
        break

    return low, rnd

result = FindLowest(score)

print "Lowest score is %d and it occured in frame %d" % (result[0], result[1])

或者如果您使用的是Python 3,请使用此版本的print

print("Lowest score is %d and it occured in frame %d" % (result[0], result[1]))

答案 1 :(得分:0)

您的函数返回一个元组,并且您正在打印该元组。您需要拆开元组,或重构函数以返回其他内容。

通过by,您的函数似乎效率很低。 <ui:composition template="/pages/layout.xhtml"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { $('tr > td.y_n').each(function() { colsole.log("in function"); if ($(this).text() === "Passed") { colsole.log("in if"); $(this).css('background-color', '#FF0000'); } else { colsole.log("in if else"); $(this).css('background-color', '#3AC709'); } }); }); </script> <p:dataTable id="idExecution" var="varTS" value="#{executionBean.lstLiveSelectedSuiteData}" style="margin-bottom:20px"> <f:facet name="header"> Steps </f:facet> <p:column headerText="Status" class="y_n" > <h:outputText value="#{varTS.status}" /> </p:column> <p:column headerText="Error Message"> <h:outputText value="#{varTS.errorMessage}" /> </p:column> </p:dataTable> </ui:composition> 两个列表并按score元素进行排序会更有意义。

zip

def FindLowest(scores): return min(enumerate(scores), key=lambda x: x[1]) idx, score = FindLowest(scores) print("Lowest score is {0} and it occurred in frame {1}".format(score, frames[idx])) 将每个列表索引与其在列表中的值配对;然后,我们选择值最低的索引,值对。

enumerate优先于min()可能会稍微提高效率,但最重要的是,它可以告诉读者确切的情况。

这也避免了在函数内部使用sorted()[0]作为全局变量。或者,您可以将框架列表作为第二个参数传递,但是也许您也应该真正重命名该函数。或直接内联它,因为它非常简单:

frames

但是我更喜欢第一种方法。

答案 2 :(得分:0)

问题是您要从函数返回一个元组并打印整个元组。

而不是打印元组的每个元素

frames = [1,2,3,4,5,6,7,8,9,10]
scores = [10,7,10,7,6,7,9,5,10]

def FindLowest(scores):

    sorted_list = sorted(scores)
    low = sorted_list[0]
    rnd = 0

    for i in range(len(frames)):
        if scores[i] == low:
            rnd = i + 1
            break
    return low, rnd
print("Lowest Score is " + str(FindLowest(scores)[0]) + "," + str(FindLowest(scores)[1]))

或用于python2打印

frames = [1,2,3,4,5,6,7,8,9,10]
scores = [10,7,10,7,6,7,9,5,10]

def FindLowest(scores):

    sorted_list = sorted(scores)
    low = sorted_list[0]
    rnd = 0

    for i in range(len(frames)):
        if scores[i] == low:
            rnd = i + 1
            break
    return low, rnd
a,b = FindLowest(scores)
print("Lowest Score is ",a,b)

答案 3 :(得分:0)

更改此

return low, rnd

对此

return f'{low}, {rnd}'

答案 4 :(得分:0)

只需将您的print更改为此:

print("Lowest score is %d and it occurred in frame %d" % FindLowest(scores))