2014-02-10 5 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"

Это то, что было сделано в первый раз, но я не» t знать, как сделать так, чтобы все входы были запрошены только с одним входом.

+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: ') 

Кроме того, преобразование в int или float, вероятно, то, что вы хотите попробовать/поймать, и печать дружеское предупреждение:

>>> 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')) 
Смежные вопросы