0

私はPython2.7に非常に慣れていません(Day 1 newのように)。学習演習として、簡単なMilsからDegreesへの変換プログラムを作成しようとしています。プログラムは、ユーザーに度からミルへの変換、またはその逆の変換を選択するように求め、次に値を求めます。それに応じて除算または乗算し、変換された回答を出力します。ここで問題が発生します。変換された回答は、正確な浮動小数点数として返されるべきではありません。たとえば、ユーザーが6400ミルを入力した場合、プログラムは359.955度ではなく、360度(1度= 17.78ミル)を返すようにします。ラウンド関数についての私の(限定された)理解は、floatと精度のレベルを受け入れますが、変数を受け入れないということです。合計をround()に渡すにはどうすればよいですか?

ご意見をいただければ幸いです。

import sys
import math

def menu():

    print ""
    print " Mils / Degrees Conversion Calculator"
    print "-" * 38
    print ""
    print "Options: "
    print "1. Degrees to Mils"
    print ""
    print "2. Mils to Degrees"
    print ""
    print "3. Quit"
    print "-" * 20
    print""
    return input ("Choose your option: ")
    print ""

#This function contains my attempt at rounding the sum and returns errors
def m2d(a):
    print "Enter azimuth in mils (ex. 6400)"
    b = 17.78
    c = a / b
    print a, " mils = ", c, "degrees"
    round(c[])

#This function works as intended but does not include round()
def d2m(b):
    print "Enter azimuth in degrees (ex. 90)"
    a = 17.78
    print b, " degrees = ", b * a, "mils"


loop = 1
choice = 0
while loop == 1:
    choice = menu()
    if choice == 1:
       d2m(input("Degrees: "))

    elif choice == 2:
        m2d(input("Mils: "))

    elif choice == 3:
        loop = 0
4

3 に答える 3

2
>>> round(359.955)
360.0

def m2d(a):
    print "Enter azimuth in mils (ex. 6400)"
    b = 17.78
    c = round((a / b),0) #This would round the value to zero decimal places.
    print a, " mils = ", c, "degrees"

>>> m2d(6400)
Enter azimuth in mils (ex. 6400)
6400  mils =  360.0 degrees

round()の詳細については、http://docs.python.org/2/library/functions.html#roundを参照してください。

印刷時に小数点以下の桁数が必要ない場合は、。に置き換えcて配置できますint(c)

また、たとえばvar1、var2を印刷すると、2つの間にスペースが自動的に配置されます。あなたは試してみたいかもしれません:

    print a, "mils =", c, "degrees"
于 2013-01-07T00:01:07.680 に答える
1

floatを変数として渡します。

round(c, 2)

cを小数点以下2桁に丸めます。

于 2013-01-07T00:01:27.633 に答える
0

1日目の知識については、Pythonの概念をよく理解しています。さて、いくつかの入力を簡単にするために変更できるコードのいくつかがありますが、変更するのは非常に簡単です:

c = a / b
c = round(c)

変数自体を変更せずに変数を丸めているように見えるので、それが問題の原因です。

于 2013-01-07T00:03:49.270 に答える