Hirdetés

Új hozzászólás Aktív témák

  • EQMontoya
    veterán

    Sziasztok!

    Kipróbáltam az argparse dolgot de egy olyan problémába ütköztem, hogyha nem adok meg értéket akkor nem fut le a program, pedig elvileg van egy olyan opció, ha nem adok meg semmit akkor is lefut a program egy default értékkel. De ez nekem nem működik... Mi lehet a baj?

    #degrees to radian calculator
    import argparse
    import math
    parser = argparse.ArgumentParser()
    parser.add_argument("degree", help="This program calculate degree to radian.", default=0, type=int)
    parser.add_argument("minute", help="You can add Minute value.", type=int, default=0)
    parser.add_argument("secundum", help="You can add secundum value.", type=int, default=0)
    args = parser.parse_args()
    a2=args.minute/60 #minute to degree
    a3=(args.secundum/60)/60 #secundum to degree
    a=float(args.degree+a2+a3)
    b=(a*math.pi)/180
    print('The result is %lf radian.' %b)

    Megadom, hogy a default 0 legyen, de mégse működik, pedik jó lenne, ha pl. csak fokot akarok számolni akkor ne keljen a percet és a másodpercet is megadni és további variációk.

    Kimaradt a dest, nem tudja hová tárolni, így nem fog működni.

    parser.add_argument("--degree", dest='degree', help="This program calculate degree to radian.", default=0, type=int)
    parser.add_argument("--minute", dest='minute', help="You can add Minute value.", type=int, default=0)
    parser.add_argument("--secundum", dest='secundum', help="You can add secundum value.", type=int, default=0)

    Így már működni fog bármilyen kombinációval, pl. lehet olyan, hogy csak percet adsz meg, vagy fokot és másodpercet, bármi.

    Azért van még baj, az egészosztások miatt a percek és a másodpercek nem működnek, de ezt nem lövöm le előre, ebből tanulsz. :)

Új hozzászólás Aktív témák