我在这里有一个函数,我希望它计算列表的长度,如1,2,3,4,5 = 5 但该功能仅计算数字1234 = 4 我该怎么办?
def mylen(alist):
if alist:
return 1 + mylen(alist[1:])
return 0
def main():
alist=input("Enter a list of number :")
print(mylen(alist))
main()
fyi我不能使用len
答案 0 :(得分:3)
我假设您希望mylen('1234')= 1。接受输入并用逗号分隔符分割数字。
def mylen(alist):
if alist:
return 1 + mylen(alist[1:])
return 0
def main():
alist=input("Enter a number :")
print(mylen(alist.split(','))
main()
计算机不需要对语言内置的东西进行如此多的处理。这样可以正常工作:
alist=input("Enter a number :")
print(len(alist.split(','))
答案 1 :(得分:0)
我运行了你的代码,结果似乎是正确的。如果您的输出是9而不是5,那可能是因为逗号也被计算在内。
print(len(alist.split(','))
答案 2 :(得分:0)
在Python 3中:
alist=input("Enter a list of number :")
alist
现在将成为一个字符串。如果输入“1,2,3,4,5”,a list
将是字符串"1,2,3,4,5"
,而不是数字列表[1,2,3,4,5]
。
字符串是序列类型,就像列表一样,因此您的代码也可以使用字符串,并计算其中元素(字符)的数量。
您可以使用split
转换列表中的输入:
userinput = input("Enter a list of number :")
alist = userinput.split(",")
(请注意,这仍然是字符串列表,而不是数字,但这与此练习无关。)