• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

为什么我的python程序最后两次打印语句?

python 来源:JediObiJohn 4次浏览

所以我完成了程序,据我所知,但我有一个格式问题的def main()函数的最后一个打印语句打印两次,我不明白为什么 – 非常恼人。无论如何,我敢肯定,这是一些简单的我失踪,这里是我的代码:为什么我的python程序最后两次打印语句?

import math 

#---------------------------------------------------- 
# distance(draw,angle) 
# 
# This function computes the distance of the shot 
#---------------------------------------------------- 

def distance(draw,angle): 
    velocity = draw*10 
    x = (angle) 
    sin_deg = math.sin(math.radians(2*x)) 
    g = 32.2 
    dist = (((velocity**2) * sin_deg)/g) 
    return dist 

#---------------------------------------------------- 
# Main Program # 
#---------------------------------------------------- 

dist_to_pig = int(input("Distance to pig (feet) -------- ")) 

def main(): 
    angle_of_elev = float(input("Angle of elevation (degrees) -- ")) 
    draw_length = float(input("Draw length (inches) ---------- ")) 
    print() 
    distance_calc = round(distance(draw_length,angle_of_elev)) 
    short_result = int(round(dist_to_pig - distance_calc)) 
    long_result = int(round(distance_calc - dist_to_pig)) 


    if distance_calc < (dist_to_pig - 2): 
     print("Result of shot ---------------- ", (short_result - 2), "feet too short") 
     print() 
     main() 
    if distance_calc > (dist_to_pig + 2): 
     print("Result of shot ---------------- ", (long_result - 2), "feet too long") 
     print() 
     main() 
    else: 
     print("OINK!") 

#---------------------------------------------------- 
# Execution # 
#---------------------------------------------------- 

main() 

如果你看到我的代码中的任何其他问题,请随时指出这一点。谢谢!


===========解决方案如下:

JediObiJohn,OINK是印刷,因为递归多次。更改第二个如果为elif它应该解决您的问题。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)