为什么我不能指定ES的值?我的值是.5,13和2,尽管没有从2中得到任何结果,但这是错误
在打印("Allowance =")中,ES NameError: name 'ES‘未定义
import math
D = input("Nominal Size: ")
TPI = input("TPI: ")
TOL = input("Tolerance Class 1, 2, 3: ")
P = float(1.0/TPI)
H = float((math.sqrt(3)/2)*P)
D2 = float(D-2*.375*H)
D1 = float(D-2*.625*H)
if ((0.05*(pow(P,2)**(1/3))+(0.03*(P/D)))-0.002) < (0.25*P)-(0.4*pow(P,2)):
ES = float((0.25*P)-(0.4*pow(P,2)))
print ""
print ("Pitch ="), P
print ("Fundamental Triangle Height ="), H
print ("Allowance ="), ES
print ("Basic Pitch Diameter ="), D2
print ("Basic Minor Diameter ="), D1发布于 2016-03-18 01:27:07
只有在无法穿透的条件下才设置ES:
((0.05*(pow(P,2)**(1/3))+(0.03*(P/D)))-0.002) < (0.25*P)-(0.4*pow(P,2))是真的。显然不是。
如果ES存在合适的默认值,您可以预先设置它,或者在else子句中设置:
ES = 0 # whatever default is valid
if ((0.05*(pow(P,2)**(1/3))+(0.03*(P/D)))-0.002) < (0.25*P)-(0.4*pow(P,2)):
ES = float((0.25*P)-(0.4*pow(P,2)))或
if ((0.05*(pow(P,2)**(1/3))+(0.03*(P/D)))-0.002) < (0.25*P)-(0.4*pow(P,2)):
ES = float((0.25*P)-(0.4*pow(P,2)))
else:
ES = 0 # whatever default is valid如果没有合适的默认值,则可以将ES初始化/设置为None,然后在打印时显式检查:
print ("Allowance ="), ES if ES is not None else '?'(或者'None'实际上是一种合理的打印方式)
发布于 2016-03-18 01:26:23
只需在要使用的相同范围上分配默认值即可。如果条件不计算为true,则将打印0。
ES = 0
if ((0.05*(pow(P,2)**(1/3))+(0.03*(P/D)))-0.002) < (0.25*P)-(0.4*pow(P,2)):
ES = float((0.25*P)-(0.4*pow(P,2)))
print ES发布于 2016-03-18 15:57:18
好吧,我弄明白了。谢谢你们。我正在做,提升到权力,而不是把它提升到一个权力,这使我搞砸了,我从1/3改为.333333,我添加了ES,改为TD1,在if语句之上。我加上了P1,做了一个指数,然后它变成了if,作为它的一半,然后再提高它。对于那些没被抓到的人,我对蟒蛇很陌生。这是计算螺纹直径大调和螺距大调。
import math
D = input("Nominal Size: ") ##Nominal thread size
TPI = input("TPI: ") ##Thread per inch
TOL = input("Tolerance Class 1, 2, 3: ") ##Class 1A 2A 3A 1B 2B 3B
P = float(1.0/TPI) ##Thread pitch
H = float((math.sqrt(3)/2)*P) ##Height of fundamental triangle
D2 = float(D-2*.375*H) ##Thread basic pitch diameter
D1 = float(D-2*.625*H) ##Thread basic minor diameter
P1 = pow(P,2) ##Lots of exponent stuff
SDT = .54127*P ##Single depth of threads
DDT = SDT*2 ##Double depth of threads
MiMDI = D-DDT ##Minimum Minor Diameter Internal
MiPDI = (D-(0.32475953*P)*2) ##Minimum Pitch Diameter Internal
ES = 0 ##Allowance
Td = 0 ##Major diameter tolerance of external threads
Td2 = 0 ##Pitch diameter tolerance of external threads
TD1 = 0 ##Minor diameter tolerance of internal threads
TD2 = 0 ##Pitch diameter tolerance of internal threads
if ((0.05*pow(P1,.33333333333)+(0.03*(P/D)))-0.002) < (0.25*P)-(0.4*pow(P,2)):
TD1 = float((0.25*P)-(0.4*pow(P,2)))
MaMDI = MiMDI+TD1 ##Maximum Minor Diameter Internal
print ""
print ("Pitch ="), P
print ("Fundamental Triangle Height ="), H
print ("Allowance ="), ES
print ("Basic Pitch Diameter ="), D2
print ("Basic Minor Diameter ="), D1
print ""
print ("INTERNAL THREADS")
print ("MINIMUM Minor Diameter ="), MiMDI
print ("MAXIMUM Minor Diameter ="), MaMDI
print ("MINIMUM Pitch Diameter ="), MiPDI
##print ("MINIMUM Pitch Diameter ="), MaPDIhttps://stackoverflow.com/questions/36074537
复制相似问题