gpt4 book ai didi

python - 诅咒 window.getstr()

转载 作者:行者123 更新时间:2023-11-30 23:28:42 27 4
gpt4 key购买 nike

我正在尝试学习 Windows XP 上的 Python 诅咒。我可以让 window.getkey 命令正常工作,但命令 window.getstr 不仅失败而且程序退出。以下是示例代码行:

x = window.getkey()  # this works
y = window.getstr() # this fails

显然,为了让第一行工作,我已经正确导入了curses并执行了stdscr =curses.initscr()命令。我的窗口已定义并且可以工作。我尝试将窗口坐标放置在 getstr 括号内,并且使用了 window.move。两者都不起作用。

知道为什么 getstr 不起作用吗?

以下是第一个建议之后的更多信息:

首先,在命令提示符窗口而不是从桌面运行程序的建议是一个很好的建议,因为窗口确实消失了。

以下是整个程序:

# program = testcurses
import curses
stdscr = curses.initscr()

window = stdscr.subwin(23,79,0,0)
window.box()
window.refresh()
window.addstr(2,10, "This is my line of text")
window.addstr(4,20,"What happened? ")
window.refresh()

mykey = window.getkey(5,20)
mystr = window.getstr (6,20)
#window.addstr (7,1, "Key data should be here: ")
#window.addstr (7,33, mykey)
window.addstr (8,1, "Str data should be here: ")
window.addstr (8,33,mystr)
window.refresh()

我注释了与关键数据显示相关的行,因为它工作正常。

这是回溯消息的相关部分:

window.addstr(8,33,mystr)类型错误:必须是 str,而不是 bytes。

汤姆

最佳答案

回溯告诉您,变量 mystr 是一个字节对象而不是字符串。这意味着您必须先对其进行解码,然后才能将其用作字符串,这是 addstr() 所需要的。

这是您需要进行的更改:

mystr = window.getstr(6,20).decode(encoding="utf-8")

这只是一个 Python 3 问题!我也使用 Python 2.7 对此进行了测试,无需进行此更改即可工作。该问题的出现是由于 Python 2 和 3 之间的字节/字符串处理不同。我假设您在自己使用 py3 时遵循了 py2 教程。

关于python - 诅咒 window.getstr(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21505871/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com