我有这个程序:
import sys
students = []
grades = []
while True:
student = input ("Enter a name: ").replace(" ","")
if student.isalpha() == True and student != "0":
while True:
grade = input("Enter a grade: ").replace(" ","")
if grade == "0" or grade == 0:
print ("\n")
print ("A zero is entered.")
sys.exit(0)
if grade.isdigit()== True:
grade = int(grade)
if grade >= 1 and grade <= 10:
if student in students:
index = students.index(student)
grades[index].append(grade)
break
else:
students.append(student)
grades.append([grade])
break
else:
print("Invalid grade.")
elif student == "0":
print("A zero is entered.")
break
else:
print ("Invalid name.")
for i in range(0,len(students)):
print("NAME: ", students[i])
print("GRADE: ", grades[i])
print("AVERAGE: ", round(sum(grades[i])/len(grades[i]),1), "\n")
例如,我需要在程序打印时让[]
在数字之间消失。
输入数字时,如下所示:
Enter a name: Jack
Enter a grade: 8
Enter a name: Jack
Enter a grade: 9
Enter a name: Jack
Enter a grade: 7
Enter a name: 0
A zero is entered.
打印方式如下:
NAME: Jack
GRADE: [8, 9, 7]
AVERAGE: 8.0
但是我需要这样打印的程序:
NAME: Jack
GRADE: 8, 9, 7
AVERAGE: 8.0
成绩应该没有括号。 我想我需要使用字符串或其他东西,有人知道怎么做?
答案 0 :(得分:2)
strip
允许您从开头和结尾删除指定的字符。
str(grades[i]).strip('[]')
答案 1 :(得分:1)
如果grades
是整数列表的列表:
print(', '.join(str(i) for i in grades[g])) # where g sublist index
答案 2 :(得分:1)
首先:
>>> grades = [[1,2,3],[4,5,6]]
现在你有几个选择:
>>> print("GRADE:", *grades[0])
GRADE: 1 2 3
或:
>>> print("GRADE:", ', '.join(map(str, grades[0])))
GRADE: 1, 2, 3
或者,在脚本或块中:
print("GRADE: ", end='')
print(*grades[0], sep=', ')
上述结果:
GRADE: 1, 2, 3
根据需要将[0]
替换为[i]
。