我写了一个大约100行的Python程序,但它没有';不要从某一点出发

我写了一个大约100行的Python程序,但它没有';不要从某一点出发,python,python-3.7,Python,Python 3.7,我用python编写了大约100行的程序,其中大部分是在一个大函数中。它有很多if-elif和else语句,当我运行它时,一开始它看起来很有希望,但它停止时没有错误,只是没有继续。我用VSCode编写了它,并试图在终端上运行它,但没有成功。我在谷歌上搜索了一下,什么也没找到?它在第二个if语句之前停止,请帮助!(我知道这可能不是一个好问题,但我真的不明白如何创建一个,请不要吝啬)请忽略printde文本,它是我的语言 def距离(Xa,Xb,Ya,Yb): und_sqr=0.00 结果=0.0

我用python编写了大约100行的程序,其中大部分是在一个大函数中。它有很多if-elif和else语句,当我运行它时,一开始它看起来很有希望,但它停止时没有错误,只是没有继续。我用VSCode编写了它,并试图在终端上运行它,但没有成功。我在谷歌上搜索了一下,什么也没找到?它在第二个if语句之前停止,请帮助!(我知道这可能不是一个好问题,但我真的不明白如何创建一个,请不要吝啬)请忽略printde文本,它是我的语言

def距离(Xa,Xb,Ya,Yb):
und_sqr=0.00
结果=0.0000
尝试:
und_sqr=(Xa-Xb)**2+(Ya-Yb)**2
结果=und_sqr**0.5
返回结果
除:
数值误差
打印(“Dati doar NUMER”)
距离(Xa,Xb,Ya,Yb)
def pct in功能(Xm、Ym、Xa、Ya):
Xresult=0.00
Yresult=0.00
尝试:
Xresult=2*Xm-Xa
Yresult=2*Ym-Ya
返回Xresult,Yresult
除:
数值误差
打印(“Dati nu litere!!!”)
函数中的pct(Xm,Ym,Xa,Ya)
def mij_sgmt(Xa、Xb、Ya、Yb):
Xm=0,00
Ym=0,00
尝试:
Xm=(int(Xa)+int(Xb))/2
Ym=(int(Ya)+int(Yb))/2
返回Xm,Ym
除:
数值误差
打印(“Dati doar numere!!!”)
mij_sgmt(Xa、Xb、Ya、Yb)
定义数学():
alg=输入(“pentru algebara apasati 1,ppentru Geometry apasati 2:”)
如果int(alg)==1:
打印(“Alege Variata:”)
ach=输入(“pentru distanta 1,penrtru mijloc 2:”)
如果ach==1:
打印(“执行!”)
alch=输入(
“1号普通区,2号普通区,2号普通区,2号普通区”
)
如果alch==1:
Xa=输入(“数据横坐标lui a:”)
Xb=输入(“数据横坐标lui b:”)
Ya=输入(“Dati ordonarta lui a:”)
Yb=输入(“Dai ordonata lui b:”)
打印(距离(Xa、Xb、Ya、Yb))
cont=输入(
达卡·多里蒂·萨康蒂亚蒂,阿帕萨蒂y,达卡·多里蒂·萨伊塞蒂,阿帕萨蒂n
)
如果cont==“y”:
数学()
elif cont==“n”:
返回0
其他:
输入(
“我是你的朋友,我是你的朋友!”
)
其他:
打印(“Am zix apasati 1 sau 2!”)
retr=输入(“Reincerti,apasati y,iesiti,apasati n:”)。较低
如果retr==“y”:
数学()
elif retr==“n”:
返回0
其他:
打印(“Doamne fereste,apasati enter ca sa iesiti”)
输入(“”)
elif ach==2:
ah=输入(
“第1节,第1节,第1节,在mijloc的celaallt功能中的一个点”
)
如果ah==1:
Xa=0.00
Xb=0.00
Ya=0.00
Yb=0.00
Xa=输入(“Xa:”)
Ya=输入(“Ya:”)
Xb=输入(“Xb:”)
Yb=输入(“Yb:”)
尝试:
打印(mij_sgmt(Xa、Xb、Ya、Yb))
除:
数值误差
打印(“Doar cifre,nu si litere”)
vr1=“”
vr1=输入(“Pentru a Reincarca,apasa y,Pentru a iesi,apasa n:”)
如果vr1==“y”:
Xa=输入(“Xa:”)
Ya=输入(“Ya:”)
Xb=输入(“Xb:”)
Yb=输入(“Yb:”)
打印(mij_sgmt(Xa、Xb、Ya、Yb))
输入(“apasat输入ca sa iesiti”)
elif vr1==“n”:
打印(“再见”)
其他:
打印(“n/y NU ALT CEVA”)
输入(“Apasati输入pentru a iesi”)
elif ah==2:
Xm=0.0
Ym=0,0
Xa=0.0
Ya=0.0
Xm=输入(“横坐标mijlocului:”)
Ym=输入(“Ordonata mijlocului:”)
Ya=输入(“点状耳蜗:”)
Xa=输入(“楔状点横坐标:”)
函数中的pct(Xm,Ym,Xa,Ya)
印刷品(“布纳”)
打印(“Optiuni:”)
数学()
您的if没有执行。编辑:实际上它确实执行了,但是比较了错误的变量类型,如下所述:)

解决方案: 强制转换输入:
ach=int(输入(..)
将ach与字符串比较
ach==“1”

附言:干得好:“
Doamne fereste
”字符串。将其替换为“
Multa bafta pe viitor

编辑:您还应检查其他输入和比较的位置,如:

ach = input("pentru distanta 1, penrtru mijloc 2: ")
print(type(ach))

你应该把它分解成函数。这样,调试就更容易了。如果不使用此值并在以后使用
Xa=input(“Xa:”)
重新分配它,则无需定义类似
Xa=0.00的内容。但是主要的一点是:
Xa
现在是一个字符串,但是您可以将它用作函数
mij_sgmt
的参数,您可以尝试将其视为一个数字。
ach = input("pentru distanta 1, penrtru mijloc 2: ")
print(type(ach))