繁体   English   中英

使用递归/将“无”附加到我的输出

[英]Using Recursion / Getting 'None' attached to my output

出于某种原因,我似乎无法正确地返回东西。 我正在尝试使用递归使字符串成为首字母缩略词(请忽略我的代码草率,哈哈)但它只是将 None 附加到我想要的输出的末尾!

我怎样才能解决这个问题? 同样,这个问题需要递归!

def recAbbrev(lst):
    'return a single string with the first character of all the strings in a list combined and capitalized.'
    if len(lst)== [] :
        return 0
    
    if len(lst)>0:
        if type(lst[0])==list:
            return 1 + recAbbrev(lst[0])
        else:
            acronym = ""
            letter = ""
            letter = letter + lst[0][:1]
            letter = letter.upper()
            acronym = acronym + letter
            print(acronym, end = '')  
            return recAbbrev(lst[1:])
           

输出

Traceback (most recent call last):
  File "C:\Users\17734\OneDrive\Desktop\fall 2021\csc242\homework\csc242hw7-s.py", line 80, in <module>
    print(recEvenNumbers(['c','a','t',' ' ,0,'h',1,'a',2,'t',100]))
  File "C:\Users\17734\OneDrive\Desktop\fall 2021\csc242\homework\csc242hw7-.py", line 49, in recEvenNumbers
    return recEvenNumbers(lst[1:])
  File "C:\Users\17734\OneDrive\Desktop\fall 2021\csc242\homework\csc242hw7-s.py", line 49, in recEvenNumbers
    return recEvenNumbers(lst[1:])
  File "C:\Users\17734\OneDrive\Desktop\fall 2021\csc242\homework\csc242hw7-As.py", line 49, in recEvenNumbers
    return recEvenNumbers(lst[1:])
  [Previous line repeated 1 more time]
  File "C:\Users\17734\OneDrive\Desktop\fall 2021\csc242\homework\csc242hw7-s.py", line 47, in recEvenNumbers
    return recEvenNumbers(evens)
  File "C:\Users\17734\OneDrive\Desktop\fall 2021\csc242\homework\csc242hw7-.py", line 44, in recEvenNumbers
    elif type(lst[0]) == int:
TypeError: 'int' object is not subscriptable

启动 recAbbrev 无 CPUNone RAMNone 启动 recEvenNumbers


thank you!

len返回一个int而你不想返回 0

    if len(lst)== 0:
        return ''

暂无
暂无

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

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