输出反复

2024-05-29 00:11:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个程序来计算气门间隙。这是我做过的第一个程序,所以我在蒙混过关。现在,这是我到目前为止得到的。如果我输入一个超出范围的间隙,它会打印“右进气口超出范围”,就像它应该的那样。但如果它在范围内,它就会一遍又一遍地在我的屏幕上显示“正确的摄入量在范围内”,直到我杀死它。我错过了什么?你知道吗

#Clearance calculator
#clearances are in clearances.txt

targets = open("clearances.txt", "r")
lines = targets.readlines()   #get target clearances from file

in_min_target = float(lines[2])     #minimum intake clearance
in_max_target = float(lines[4])     #maximum intake clearance

ex_min_target = float(lines[8])    #miminum exhaust clearances
ex_max_target = float(lines[10])   #maximum exhaust clearances
targets.close

target_intake = (in_min_target + in_max_target) / 2     #find the ideal intake
target_exhaust = (ex_min_target + ex_max_target) / 2    #find the ideal exhaust

print "Intake Min: ", in_min_target
print "Intake Max: ", in_max_target
print "Exhaust Min: ", ex_min_target
print "Exhaust Max: ", ex_max_target
print """Target intake: %r
Target Exhaust: %r""" % (target_intake, target_exhaust)

print""
print "Enter current RIGHT side Intake clearance"
cur_r_in = float(raw_input(">"))
print ""
print "Enter current RIGHT side Exhaust clearance"
cur_r_ex = float(raw_input(">"))
print ""
print "Enter current LEFT side Intake clearance"
cur_l_in = float(raw_input(">"))
print ""
print "Enter current LEFT side Exhaust clearance"
cur_l_ex = float(raw_input(">"))

target=5

def in_range(min, max, cur, valve, target):
    while min <= cur <= max:
        print "%r is in range." % valve
    target=1
else:
    print "%r is OUT OF RANGE." %valve
    target=0
return target

def ex_range(min, max, cur, valve, target):
if min <= cur <= max:
    print "%r is in range." % valve
    target=1
else:
    print "%r is OUT OF RANGE." %valve
    target=0


valve = "Right Intake"
print in_range(in_min_target, in_max_target, cur_r_in, valve, target)

print ""

valve = "Right Exhaust"
print ex_range(ex_min_target, ex_max_target, cur_r_ex, valve, target)

print ""

valve = "Left Intake"
print in_range(in_min_target, in_max_target, cur_l_in, valve, target)

print ""

valve = "Left Exhaust"
print ex_range(ex_min_target, ex_max_target, cur_l_ex, valve, target)

Tags: intargetrangefloatminmaxexclearance
3条回答

必须更改条件中的值,以便它可以停止。你知道吗

def in_range(min, max, cur, valve, target):
    while min <= cur <= max:
        print "%r is in range." % valve

这意味着您必须更改值mincurmax中的一个或多个,才能中断无限循环。你知道吗

你告诉它在范围内继续循环和打印:

while min <= cur <= max:
    print "%r is in range." % valve

我怀疑你想要一个if语句:

if min <= cur <= max:
    print "%r is in range." % valve

这条线:

while min <= cur <= max:

我想这是你的问题。而我们会反复评估附在它身上的尸体,直到病情恶化。但是你的身体不会改变这种状况,所以它会一直持续下去。我猜你的意思是/需要用if而不是while。。。你知道吗

相关问题 更多 >

    热门问题