def myNames():
names = []
while True:
a = input("Enter Name: ")
if a != "done":
names.append(a)
elif a == "done":
return names
def all_lengths(myNames):
num_of_strings = len(myNames)
total_size = 0
for item in myNames:
total_size += len(item)
ave_size = float(total_size) / float(num_of_strings)
print(ave_size)
all_lengths(myNames())
def longestWord(myNames):
count = 0
for i in myNames:
if len(i) > count:
count = len(i)
word = I
print ("the longest string is ", word)
我怎样才能让它打印出用户输入的最长的名字,例如:在Samantha和John中,它会说Samantha是最长的名字。我需要它来计算最长的名称,并从第一个函数开始显示它,而不会让我再次输入名称
你应该试着更准确地说出你真正想问什么,然后重新组织它,这样每个人都会更容易理解
如果要检查列表中最长的字符串,只需如下操作:
允许您存储变量。事实上,你已经在你的函数中做了很多
初学者经常忽略的另一点是
def
语句不运行任何代码。它们创建函数,直到您调用它们或将相同的名称用于其他对象为止当前调用函数需要更改的行是
所有长度(myNames())
存储结果而不是嵌套调用:
现在你也可以打电话了
注释
手工实现这些功能是一种很好的学习体验。以下是关于如何改进代码的一些评论:
Python用户通常只对类名使用CamelCase。函数和变量是用snake_形式编写的。因此
my_names
而不是myNames
和longest_word
而不是longestWord
除法运算符
/
自动返回一个float
,即使从python 3开始输入是int
。不需要在total_size / num_of_strings
中转换。如果需要整数截断,则必须使用//
floor divide操作符显式地请求它在对序列计算求和时,即使求和的属性是间接的,也要使用
sum
内置函数:如上面的示例所示,函数应该只做一件事,并且通常返回一个值。计算平均值和打印是两件事,其他地方的打印也是如此
内置的
max
有一个key
关键字,可以将longest_name
替换为相关问题 更多 >
编程相关推荐