2014-02-10 46 views
2

我需要創建一個滿足以下條件的程序。 「在一條線上提示多個值

」您的程序應該提示用戶輸入與實驗中相同的輸入值,但不要讓用戶在每行上輸入一個值,一行將需要多個值,後面的每個項目對應一行輸入:」

T1 = input('Test One Score(0-100): ') 
T2 = input('Test Two Score(0-100): ') 
F1 = input('Final Test Score(0-100): ') 
HW = input('Homework Score(0-100): ') 
IC = input('Quiz Score(0-100): ') 
LAB = input('Lab Score(0-100): ') 
BP = input('Bonus Points(0-3): ') 

print('Overall Score: ',((float(T1)+float(T2))*.19) + (float(F1) * 0.22) + (float(HW) * 0.18) + (float(IC) * 0.08) + (float(LAB) * 0.14)+(float(BP))) 

print("Overall Score Without BP's: ",((float(T1)+float(T2))*.19) + (float(F1) * 0.22) + (float(HW) * 0.18) + (float(IC) * 0.08) + (float(LAB) * 0.14)) 

公式中使用 「0.19(T1 + T2)+ 0.22t3 + 0.18hw + 0.08quiz + 0.14lab」

這是什麼做的第一次,但我不不知道怎麼做才能讓所有的輸入只有一個輸入。

+2

*提示*:你知道如何「分割字符串」嗎? –

+0

http://stackoverflow.com/help/on-topic#4可能是感興趣的。 – pnuts

回答

0
all = input("Please input your scores from T1,T2 etc Please separate each value by a space: ") 
T1, T2, etc = all.split() 
0

您當然可以使用str.split方法在列表中拆分字符串。即。

a = input('Answer, separate by comma') 

# User fills in 42,60,1 
a = a.split(',') 

# Not required, but probably safer 
a = [ a.strip() for a in a.split(',') ] 

您還可以使用轉義字符來移動光標,這不是正是我怎麼看你的作業,但恕我直言,你的任務是沒有意義的,因爲你有7個問題,全部用不同的限制。我認爲這更方便用戶使用(就可以了,當然,還結合了兩種解決方案)

b = input('Question 1: ') 

# Move cursor up 
print('\x1b[1A', end='') 

# Clear line, note this can be combined in 1 print() 
print('\x1b[2K', end='') 

c = input('Question 2: ') 

此外,轉換爲intfloat,可能是你想嘗試的東西/ catch語句,並打印友好警告:

>>> int('42') 
42 
>>> int('a42') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: invalid literal for int() with base 10: 'a42' 

注意:此答案使用Python 3,看來您也使用Python 3. Python 2有一個稍微不同的答案。

0
questions = '''Test One Score(0-100): 
Test Two Score(0-100): 
Final Test Score(0-100): 
Homework Score(0-100): 
Quiz Score(0-100): 
Lab Score(0-100): 
Bonus Points(0-3):''' 


T1, T2, F1, HW, IC, LAB, BP = map(input, questions.split('\n'))