Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:+;的操作数类型不受支持:';int';和';非类型';_Python_Bash_Python 2.7_Typeerror - Fatal编程技术网

Python TypeError:+;的操作数类型不受支持:';int';和';非类型';

Python TypeError:+;的操作数类型不受支持:';int';和';非类型';,python,bash,python-2.7,typeerror,Python,Bash,Python 2.7,Typeerror,如果用文字写出1到x,则此未完成的代码旨在返回字母总数: #!/usr/bin/python def Base1(n): if (n==1): return len('one') if (n==2): return len('two') if (n==3): return len('three') if (n==4): return len('four') if (n==5): return len('five')

如果用文字写出1到x,则此未完成的代码旨在返回字母总数:

#!/usr/bin/python
def Base1(n):
  if (n==1):
      return len('one') 
  if (n==2):
    return len('two') 
  if (n==3):
      return len('three')
  if (n==4):
      return len('four') 
  if (n==5):
      return len('five') 
  if (n==6):
      return len('six') 
  if (n==7):
      return len('seven') 
  if (n==8):
      return len('eight')
  if (n==9):
      return len('nine')
def Base10(g):
  if (g == 10):
    return len('ten')
  if (g == 11):
    return len('eleven')
  if (g == 12):
    return len('twelve')
  if (g == 13):
    return len('thirteen')
  if (g == 14):
    return len('fourteen')
  if (g == 15):
    return len('fifteen')
  if (g == 16):
    return len('sixteen')
  if (g == 17):
    return len('seventeen')
  if (g == 18):
    return len('eightteen')
  if (g == 19):
    return len('nineteen')
  if (g == 20):
    return len('twenty')
  if (g > 20):
    return BiggerThan20(g)
def BiggerThan20(t):
  if t<30:
    return len('twenty')+Base1(t-20)
  if t<40:
    return len('twenty')+Base1(t-20)


def trial(runcounter):
  summitup = 0
  if (len(str(runcounter))==1):
    summitup += Base1(runcounter)
  if (len(str(runcounter))==2):
    summitup += Base10(runcounter)
  return summitup

lettersum = 0

start = int(input("Please enter an integer: "))
for k in range(1, start+1, 1):
  lettersum += trial(k)
 #print (k, lettersum)
print(lettersum)
#/usr/bin/python
def Base1(n):
如果(n==1):
返回len('one')
如果(n==2):
返回len('two')
如果(n==3):
返回len('3')
如果(n==4):
返回len('4')
如果(n==5):
返回长度('5')
如果(n==6):
返回len('six')
如果(n==7):
返回len('seven')
如果(n==8):
返回len('8')
如果(n==9):
返回长度('9')
def Base10(g):
如果(g==10):
返回长度('10')
如果(g==11):
返回len('11')
如果(g==12):
返回len('12')
如果(g==13):
返回len(‘十三’)
如果(g==14):
返回len('十四')
如果(g==15):
返回长度('15')
如果(g==16):
返回len('16')
如果(g==17):
返回len('17')
如果(g==18):
返回长度(“八分之一”)
如果(g==19):
返回len(‘十九’)
如果(g==20):
返回长度(二十)
如果(g>20):
返回大于20(g)
def BiggerThan20(t):

如果t
Base1
没有为数字10或更大的数字返回任何内容

>>> Base1(1)
3
>>> Base1(10) # None
>>> Base1(20) # None

>>> len('twenty') + Base1(10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
>>Base1(1)
3.
>>>Base1(10)#无
>>>Base1(20)#无
>>>len(‘二十’)+Base1(10)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:不支持+:'int'和'NoneType'的操作数类型
Base10
BiggerThan20
也有同样的问题

  • Base10
    对于小于10的数字不返回
  • BiggerThan20
    不会返回大于等于40的数字
    • falsetru是正确的

      也许你想要这个:

      if t<40:
      return len('twenty')+Base1(t-20)
      

      if t
      Base1(t-20)
      ->
      Base1(12)
      返回
      None
      ,因为您没有在
      Base1
      中处理输入>9的案例。作为一种风格,您不应该在if语句中使用括号
      if n==1:
      是首选。此外,您的if语句链可能应该在第一个
      if
      谢谢后使用
      elif
      ,但这会产生相同的错误代码。我真的忘了30的案子了。。。
      if t<40:
      return len('twenty')+Base1(t-20)
      
      if t<40:
      return len('thirty')+Base1(t-30)