在一行上提示多个值

时间:2014-02-10 23:53:29

标签: python python-3.x input

我需要创建一个满足以下条件的程序。

“您的程序应该提示用户输入与实验室相同的输入值,但不是让用户在每一行输入一个值,而是一行需要多个值。后面的每个项目对应一行输入:“

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”

这是第一次做的,但我不知道怎么做,所以所有的输入只有一个输入提示。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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可能是您想尝试/捕获的内容,并打印友好警告:

>>> 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的答案略有不同。

答案 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'))