我创建了一个基本的python/PyQt程序,它要求用户输入文本。然后,程序将检查文本在输入的结尾或结尾是否有“空格”键。但是,当运行程序时,(即使输入不带空格的字符串),它也会连续返回警告消息框
代码如下:
answer = page.answer.text()
# validate submitted answer...
answerlength = (len(answer))-1
if answer[0] or answer[answerlength] == '':
QtGui.QMessageBox.warning(
self, 'Error', 'Please remove the space/s before (or after) your answer!')
注意:这是一段编写的程序,不是完整的程序
您错误地解释了python中的
or
运算符。请参阅以下代码:事实上,代码的计算结果为
True
atif answer[0]
,除非该位置为空,如果有任何字符(包括空格),则该位置不为空。由于or
的性质,其余的将永远不会得到评估您还可以使用负切片表示法从末尾对字符串进行切片:
或者使用^{} 和^{}
下面是一个示例,它检查结束和开始都不包含任何空格字符,使用^{} ,注意您可以将
tuples
传递给str.startswith()
和str.endswith()
问题是
if answer[0] or answer[answerlength] == ''
将始终计算为True
,因为如果answer[0]
包含任何字符,它将被视为True
您应该这样做:
我不知道python是如何工作的,但我认为您的if语句无效,您应该这样使用它:
相关问题 更多 >
编程相关推荐