我不知道标题是否使用了正确的术语,但我希望得到一些代码并尝试减少代码的长度,这样我就可以更快地输入评估。这是以及如果我以漫长的方式做到这一点的示例。
WebElement table = driver.findElement(By.id("tblSBResults"));
String date = table.findElement(By.xpath("tbody/tr[1]/td[1]")).getText();
但是,我试图通过以下方式做一些事情来缩小规模:
Valid = True
while Valid:
Column = int(input("Insert Column: "))
Row = int(input("Insert Row: "))
if Row < 0 or Row > 9 or Column < 0 or Column > 9:
Valid = False
有人可以解释为什么它似乎不起作用,有人可以证明他们将如何解决它。我只是试图减少我的if语句,因为在整个评估过程中我会使用大量的语句。
更新: - 这也可以放入Try-Catch中,这样在输入空值或无值时不会导致程序崩溃
由于
答案 0 :(得分:3)
or
运算符是一个短路比较,返回最早的真值,如果没有真值,则返回最后一个值。在(Row or Column) < 0
中,首先评估Row or Column
。如果Row
非零,则该部分返回Row
。否则,它将返回Column
。然后,它将此单个值与0
进行比较。对于另一个比较也是如此,我假设它有一个拼写错误,并且打算是(Row or Column) > 9
(而不是> 0
)。
您还可以尝试以下(不是详尽的清单):
if not 0<=row<=9 or not 0<=column<=9
if row not in range(10) or column not in range(10)
if not all(0<=x<=9 for x in (row,column))
选择在您的计划环境中最有意义的那个。
答案 1 :(得分:3)
您可以完全删除if语句。
Valid = True
while Valid:
try:
Column = int(input("Insert Column: "))
Row = int(input("Insert Row: "))
Valid = Row in range(10) and Column in range(10)
except Exception as e:
print(e)
Valid = False
答案 2 :(得分:0)
你可以尝试这个,但这会创建一个包含10个元素的数组[0..9] ..
Valid = True
rangeValue = range(10)
while Valid:
Column = int(input("Insert Column: "))
Row = int(input("Insert Row: "))
Valid = Row in rangeValue and Column in rangeValue