如何修复 python curses 中转换为参数 2 的错误?
How do I fix a converting to parameter 2 error in python curses?
我在 Unicurses 工作,这是 python 的 curses 跨平台模块。我试图将“@”字符放在控制台的中央。我的代码是这样的:
from unicurses import *
def main():
stdscr = initscr()
max_y, max_x = getmaxyx( stdscr )
move( max_y/2, max_x/2 )
addstr("@")
#addstr(str(getmaxyx(stdscr)))
getch()
endwin()
return 0
if __name__ == "__main__" :
main()
我一直收到错误消息
ctypes.ArgumentError was unhandled by user code
Message: argument 2: <class 'TypeError'>: Don't know how to convert parameter 2
对于这一行:
move( max_y/2, max_x/2 )
有谁知道这个错误的原因并修复它。谢谢!
问题是您将浮点数传递给 move
函数,而您应该传递整数。使用整数除法运算符 //
而不是 /
.
from unicurses import *
def main():
stdscr = initscr()
max_y, max_x = getmaxyx( stdscr )
move( max_y//2, max_x//2 ) # Use integer division to truncate the floats
addstr("@")
getch()
endwin()
return 0
if __name__ == "__main__" :
main()
我在 Unicurses 工作,这是 python 的 curses 跨平台模块。我试图将“@”字符放在控制台的中央。我的代码是这样的:
from unicurses import *
def main():
stdscr = initscr()
max_y, max_x = getmaxyx( stdscr )
move( max_y/2, max_x/2 )
addstr("@")
#addstr(str(getmaxyx(stdscr)))
getch()
endwin()
return 0
if __name__ == "__main__" :
main()
我一直收到错误消息
ctypes.ArgumentError was unhandled by user code
Message: argument 2: <class 'TypeError'>: Don't know how to convert parameter 2
对于这一行:
move( max_y/2, max_x/2 )
有谁知道这个错误的原因并修复它。谢谢!
问题是您将浮点数传递给 move
函数,而您应该传递整数。使用整数除法运算符 //
而不是 /
.
from unicurses import *
def main():
stdscr = initscr()
max_y, max_x = getmaxyx( stdscr )
move( max_y//2, max_x//2 ) # Use integer division to truncate the floats
addstr("@")
getch()
endwin()
return 0
if __name__ == "__main__" :
main()