Python 转换错误:无法将序列乘以类型为"float"的非 int



尝试使LCD 20x4工作。但我得到了一个错误:

错误消息="无法将序列乘以'float'类型的非int。">

这是抛出错误的行:

string = " " * (LCD_WIDTH / 2 - len(string) / 2) + string + " " * ((LCD_WIDTH - 1) / 2 - len(string) / 2)

它应该将文本居中显示在LCD上。这是完整的代码:

def lcd_display_string(self, string, line, mode = 1):
if line == 1:
self.lcd_write(0x80)
if line == 2:
self.lcd_write(0xC0)
if line == 3:
self.lcd_write(0x94)
if line == 4:
self.lcd_write(0xD4)
if mode == 0: # left alignment
string = string + " " * (LCD_WIDTH - len(string))
if mode == 1: # centered
string = " " * (LCD_WIDTH / 2 - len(string) / 2) + string + " " * ((LCD_WIDTH - 1) / 2 - len(string) / 2)
if mode == 2: # right alignment
string = " " * (LCD_WIDTH - len(string)) + string
for char in string:
self.lcd_write(ord(char), Rs)

模式0和2正常

您的问题已正确识别:表达式

" " * ((LCD_WIDTH - 1) / 2 - len(string) / 2)

无效,因为右边的数字是浮点值。只需使用整数运算。

" " * ((LCD_WIDTH - 1) // 2 - len(string) // 2)

相关内容

最新更新