首页
学习
活动
专区
圈层
工具
发布

如何在
EN

Stack Overflow用户
提问于 2016-03-18 01:24:04
回答 3查看 69关注 0票数 0

为什么我不能指定ES的值?我的值是.5,13和2,尽管没有从2中得到任何结果,但这是错误

在打印("Allowance =")中,ES NameError: name 'ES‘未定义

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

发布于 2016-03-18 01:27:07

只有在无法穿透的条件下才设置ES

代码语言:javascript
复制
((0.05*(pow(P,2)**(1/3))+(0.03*(P/D)))-0.002) < (0.25*P)-(0.4*pow(P,2))

是真的。显然不是。

如果ES存在合适的默认值,您可以预先设置它,或者在else子句中设置:

代码语言:javascript
复制
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)))

代码语言:javascript
复制
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,然后在打印时显式检查:

代码语言:javascript
复制
print ("Allowance ="), ES if ES is not None else '?'

(或者'None'实际上是一种合理的打印方式)

票数 3
EN

Stack Overflow用户

发布于 2016-03-18 01:26:23

只需在要使用的相同范围上分配默认值即可。如果条件不计算为true,则将打印0。

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2016-03-18 15:57:18

好吧,我弄明白了。谢谢你们。我正在做,提升到权力,而不是把它提升到一个权力,这使我搞砸了,我从1/3改为.333333,我添加了ES,改为TD1,在if语句之上。我加上了P1,做了一个指数,然后它变成了if,作为它的一半,然后再提高它。对于那些没被抓到的人,我对蟒蛇很陌生。这是计算螺纹直径大调和螺距大调。

代码语言:javascript
复制
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 ="), MaPDI
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36074537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档