我打算打印最长和最短的单词的长度,但不确定我哪里出错了

时间:2016-11-14 22:03:53

标签: python python-3.x

import string
a = input("Input a string ")
aSplit = a.split()
for aString in aSplit:
    print (aString)
sLen =(len(aString))

def minmax(sLen):
    if len(1) == 0 : return None
    smallest = largest = 1[0]
    for n in 1 :
        if n < smallest : smallest = n
        elif n > largest : largest = n
    return (smallest, largest)
print (minmax, sLen)

我目前得到的是minmax的打印结果:

function ex4. locals .minmax at 0x03FFD1E0 6 

我希望让它更漂亮并打印最小值。

1 个答案:

答案 0 :(得分:0)

您的代码存在许多问题,但主要问题是您如何调用该函数。您应该像print(minmax(sLen))一样调用它,即使这样,您也无法获得预期的结果,因为sLen表示aSplit列表中最后一个元素的长度。< / p>

要根据您的问题获取字符串中最长和最短的单词的长度,您可以使用以下代码。

def minmax(my_string):
    string_list = my_string.split() # Split string into list
    sorted_list = sorted(map(len, string_list)) # Apply len() to all elements of list and sort
    output = (sorted_list[0], sorted_list[-1]) # Use list indexing to get first and last element of list
    return output