0

次のことを行うpythonプログラムを作成したい:

  1. コース内のテスト、課題、小テスト、ラボの数をユーザーに尋ねます。
  2. 上記のテストとは別の重み付けの最終テストがあるかどうかをユーザーに尋ねます。たとえば、コースに 2 つのテストがあり、それぞれの重み付けが 12.5% で、1 つの最終重み付けが 15% です。
  3. 数値が 0 より大きい各カテゴリについて すべてのカテゴリの合計が 100% になるように、100% のうちの加重パーセントをユーザーに求めます!!! b. カテゴリのスコアを取得します。c. カテゴリがラボの場合は、すべてのスコアを合計します。d. それ以外の場合は、スコアを平均します。e. カテゴリの加重平均を計算します。
  4. 各カテゴリの加重平均を使用して、コースの成績を計算します。
  5. 別のクラスの成績を計算するかどうかをユーザーに尋ねます。
  6. ユーザーが「はい」と答えた場合は、ステップ 1 に戻ります。
  7. それ以外の場合は、プログラムを終了します。

これまでのところ、入力部分は次のとおりです。

tests = raw_input("Enter the number of tests in course: ")
tests = int
assignments = raw_input("Enter the number of assignments in course: ")
quizzes = raw_input("Enter the number of quizzes in course: ")
labs = raw_input("Enter the number of labs in course: ")
sepweightfinal = raw_input("Is there a final with a separate weight? ")

入力後に何かをしようとすると、うまくいきません。

if tests > 0 percent = input("What is the weighted percent of tests?: ") のように

私のプログラムは常に > と 0 は無効だと言っていますが、これを行う方法はありますか?

事前に感謝します。基本的に、ロジックと達成したいことは理解していますが、コードが頭の中でクリックされていません。

4

3 に答える 3

1

によって返される文字列を、 :raw_input()を使用して整数に変換する必要があります。int

tests_string = raw_input("Enter the number of tests in course: ")
tests = int(tests_string)

またはもっと簡潔に:

tests = int(raw_input("Enter the number of tests in course: "))
于 2012-11-30T04:08:28.407 に答える
0

たとえば、加重パーセンテージに別の変数を使用します

if test>0:
    test_weight=float(raw_input("Enter the weight of the tests:")
else:
    test_weight=0
if assignments>0:
    assign_weight=float(raw_input("Enter the weight of the assignments:")
else:
    assign_weight=0

次に、すべての重みの合計が 100 に等しいかどうかを確認します

if (test_weight+assign_weight+lab_weight+final_weight)!=100:
    print "The weights are not accurate"
    break

それぞれのスコアを取得するためにフロートを使用し、テストの数には for ループを使用します。

for i in range(0,test):
    test_score.append(float(raw_input("Enter the score for the test:")))

test_score はリストです。スコアのさまざまなコンポーネントのすべてのスコアのリストがあるので、それらを使用して合計、平均などを計算し、if ステートメントを使用して最終的に成績を計算できます。

if weightedavg>=60:
    grade='A'
elif weightedavg>=40:
    grade='B'
else:
    grade='C'

全体を while ループに入れる

while(1):

ユーザーがポイント 6 で「いいえ」と応答した場合、ループを中断します。

if user_resp=='N':
    print "Goodbye"
    break

多くの変数を持つ代わりに読みやすくするために、コースのさまざまなコンポーネントとしてキーを使用してすべてのデータを辞書に入れることをお勧めします。整理されたものを処理する方がはるかに簡単です。

于 2012-11-30T06:20:09.807 に答える
0

これでうまくいくはずです:

tests = int(raw_input(" Enter the number of tests in course: "))
于 2012-11-30T06:58:52.353 に答える