Python中的运算符的⼀切运算结果都是浮点数
letters1 = ['天','前','我','最','是','⼈','间','留','不','住','去','⽇','台']
def print_center(letters):
length = len(letters)
html里的float是什么意思n = (length - 7) / 2
print(letters[n:n+7])
print_center(letters1)
# 报错:TypeError: list indices must be integers or slices, not float
#(类型错误:列表分⽚必须⽤数字,⽽不是浮点数)
你可能会奇怪,列表长度是 13,(13-7)/2 的结果是 3,不会出现⼩数的结果啊?
但实际上,Python 中的/运算符的⼀切运算结果都是浮点数。所以,(13 - 7) / 2结果是3.0,⽽不是3。这样,letters1[n:n+7]就相当于letters1[3.0:3.0+7],于是就报错了。
应该改为:
n =int( (length - 7) / 2)