【问题标题】:TypeError: unsupported operand type(s) for -: 'str' and 'int' [Python]TypeError: 不支持的操作数类型 -: 'str' 和 'int' [Python]
【发布时间】:2020-01-11 18:34:48
【问题描述】:

为什么这个错误一直出现?我只是想创建一个表。 代码如下:

import datetime


q= datetime.date(2004,12,25)

e= datetime.date(2019,11,23) 

f= datetime.date(2019,11,26)

p= datetime.date(2004,12,13)

nam=[["attack on titan",10,"completed",p,q],["one punch man",10,"WATCHING",e,f]]

print("|         NAME           | SCORE |   STATUS   |  DATE STARTED  |    DATE ENDED   |") 

for KI in nam:
  print("|",KI[0]," "*22-len(KI[0]),"|"," ",KI[1]," ","|",KI[2]," "*(10-len(KI[2])),"|",""*2,KI[3], 
         " "*2,"|"," "*3,KI[4]," "*2,"|")

不要过多关注空间乘法。

错误:

|         NAME           | SCORE |   STATUS   |  DATE STARTED  |    DATE ENDED   |


Traceback (most recent call last):


    line 9, in <module>

    print("|",KI[0]," "*22-len(KI[0]),"|"," ",KI[1]," ","|",KI[2]," "*(10-len(KI[2])),"|"," "*2,KI[3]," "*2,"|"," "*3,KI[4]," "*2,"|")


TypeError: unsupported operand type(s) for -: 'str' and 'int'
.........................................................................................               

【问题讨论】:

  • 您是否尝试在表格中通过" "*22-len(KI[0] 创建空间,因为 KI[0] 是“攻击泰坦”?
  • 是的,这就是我想要做的。这将填补剩下的空间。

标签: python python-3.x list python-datetime


【解决方案1】:

" "*22-len(KI[0]) 发生错误。
" "*22 是由 22 个空格组成的字符串,len(KI[0]) 是整数。
正如TypeError 告诉你的那样,从字符串中减去一个整数是没有意义的。
我猜你的意图是" "*(22-len(KI[0]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 2012-11-29
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    相关资源
    最近更新 更多