嗨,我的情况很难解释,所以我不妨深入解释一下。
我正在尝试创建一个程序,用户可以在其中输入形状点的(笛卡尔)坐标。然后,程序使用向量(由用户输入)使用其坐标平移形状。希望你明白我在说什么。如果您不知道使用坐标翻译形状的过程/规则,您可能对我帮助不大,因为如果您了解我想要做什么,这将有所帮助。
该过程开始如下:
我询问用户有多少个点构成他们的形状(他们正在翻译什么类型的多边形)。
然后我要求他们输入每个点的 x,y 坐标。下面是开始代码和一个保存点过程的代码:
print('View saved points with "points".')
print()
print("Number of points:")
inputX = int(input())
if inputX < 3:
print("Invalid.")
if inputX > 5:
print("Invalid.")
print("Input points: x,y")
inputZero = input()
split = inputZero.split(",")
xZero,yZero = split[0],split[1]
print("("+xZero+","+yZero+") saved. Input another point.")
现在,对于每个点保存部分,我希望用户也能够输入像"点"这样的字符串,而不是输入点的坐标,它将打印所有保存的点。问题是,我不知道如何让整数充当点的坐标,并让像"点"这样的字符串充当字符串,我可以像这样使用 if 语句(inputZero 是其中一个点保存部分中点坐标的输入):
if inputZero == "points":
print("#All of the points previously entered")
感谢每一个回应,
谢谢
您所需要的只是一个简单的 if/else 块,也许可以尝试确保您获得有效的数字。
...
points = []
while True:
print("Input points: x,y")
inputZero = input()
if inputZero == "points":
print(previousPoints)
else:
try:
split = inputZero.split(",")
xZero,yZero = int(split[0]),int(split[1])
print("({0}, {1}) saved. Input another point.".format(xZero, yZero))
points.append((xZero, yZero))
except ValueError or IndexError:
print("Invalid input!")
不确定我是否正确理解。这是你想要的吗?
import sys
points = []
while True:
print("Input points: x,y")
inputZero = raw_input()
if inputZero == 'points':
print "Entered points: %s" % points
elif inputZero == 'quit':
print "Bye!"
sys.exit(0)
else:
split = inputZero.split(",")
xZero,yZero = int(split[0]),int(split[1])
points.append((xZero, yZero))
print("(%s, %s) saved. Input another point." % (xZero, yZero))
键入 quit
以完成。另外,请注意,我正在使用raw_input而不是输入来避免评估输入(请参阅此问题及其答案)