我正在编写一个脚本来修改学校项目的一些gcode。我的编程能力很差,但我在互联网的帮助下,这方面的工作,但陷入了一个if语句与3个不同的选择。你知道吗
为此,我需要选择以“G0”和“G1”开头的行,并考虑长度条件。你知道吗
只需要2个条件就可以了(它会创建一个输出文件以便我确认)
我试着添加下面显示的第3个条件,但是它检索到一个空文件——所以我假设它不起作用(就我所研究的而言,这似乎是正确的方法)。你知道吗
if(cells[0] !="G0" or cells[0] != "G1" or len(cells) < 4):
return
功能齐全:
class Point:
x = 0
y = 0
feed = 0
def GetPoint(line):
line = line.rstrip("\n")
cells = line.split(" ")
point = Point()
if(cells[0] != "G1" or len(cells) < 4):
return
if(cells[1].startswith("F")):
point.feed = float(cells[1].split("F")[1])
point.x = float(cells[2].split("X")[1])
point.y = float(cells[3].split("Y")[1])
else:
point.x = float(cells[1].split("X")[1])
point.y = float(cells[2].split("Y")[1])
return point
正如已经回答的,你有一个条件,将永远评估为真。如果要提取除G0和G1命令(或长度条件)以外的所有命令,请尝试以下操作
这样可以检查单元格[0]是否包含G0或G1,然后反转结果。这也可以写成
但这可能不是那么直观。你知道吗
注意,在第一个块中,
cells[0] != "G0" or cells[0] != "G1"
是两个条件。如果cells[0]
是"G0"
,那么第二个将计算为True
。如果cells[0]
是"G1"
,那么第一个将计算为True
。如果是别的,两者的计算结果都是True
。这意味着无论cells[0]
的值是多少,if
都将计算为True
。你知道吗如果它有助于您思考,那么为每个条件的真/假编写一个真值表,并决定您希望
if
语句的计算结果。你知道吗相关问题 更多 >
编程相关推荐