如何格式化此数组中的列表元素?
How can I format list elements from this array?
我想指出,这是一个更大脚本的一部分,但为了简单起见,我已经隔离了必要的组件。
我正在使用 class Student
编写一个脚本来存储学生姓名及其相关成绩(以及其他内容)。用户将被要求提供学生姓名,然后是他们要添加的成绩数。然后要求他们输入成绩(无论他们在 'number of grades' 中指定了多少次)。
输入完成后,数据存储在数组中,如下所示:
[{'grades': [99, 88, 77], 'name': 'John Doe'}]
然后以下列格式打印新学生数据:
STUDENT NAME: John Doe
GRADES: [99, 88, 77]
如何格式化和打印没有括号的 GRADES: [99, 88, 77]
?下面的代码。
students_all = []
class Student:
def __init__(self, name, grades):
self._name = name
self._grades = grades
def __str__(self):
return "STUDENT NAME: {}\nGRADES: {}".format(self._name, self._grades)
###FORMAT HERE^?###
def add_student():
new_student = {}
new_student["grades"] = []
new_student["name"] = input("\nEnter student name: ")
while True:
try:
num_grades = int(input("Number of Grades: "))
break
except ValueError:
print("Enter a valid number!")
print()
while True:
try:
for i in range(0, num_grades):
grades = int(input("Enter Grade: "))
new_student["grades"].append(grades)
break
except ValueError:
print("Enter a valid number!")
students_all.append(new_student)
return new_student
newstudent = Student(**add_student())
print(newstudent)
使用str.join():
"STUDENT NAME: {}\nGRADES: {}".format(self._name, ", ".join(map(str, self._grades)))
此代码还将整数转换为字符串。
您可以使用 str.join(iterable)
函数从可迭代对象创建字符串。
你的代码应该是这样的:
def __str__(self):
return "STUDENT NAME: {}\nGRADES: {}".format(self._name, ', '.join(self._grades))
您可以使用以下代码:
def __str__(self):
return "STUDENT NAME: {}\nGRADES: {}".format(self._name, ', '.join(str(grade) for grade in self._grades))
我想指出,这是一个更大脚本的一部分,但为了简单起见,我已经隔离了必要的组件。
我正在使用 class Student
编写一个脚本来存储学生姓名及其相关成绩(以及其他内容)。用户将被要求提供学生姓名,然后是他们要添加的成绩数。然后要求他们输入成绩(无论他们在 'number of grades' 中指定了多少次)。
输入完成后,数据存储在数组中,如下所示:
[{'grades': [99, 88, 77], 'name': 'John Doe'}]
然后以下列格式打印新学生数据:
STUDENT NAME: John Doe
GRADES: [99, 88, 77]
如何格式化和打印没有括号的 GRADES: [99, 88, 77]
?下面的代码。
students_all = []
class Student:
def __init__(self, name, grades):
self._name = name
self._grades = grades
def __str__(self):
return "STUDENT NAME: {}\nGRADES: {}".format(self._name, self._grades)
###FORMAT HERE^?###
def add_student():
new_student = {}
new_student["grades"] = []
new_student["name"] = input("\nEnter student name: ")
while True:
try:
num_grades = int(input("Number of Grades: "))
break
except ValueError:
print("Enter a valid number!")
print()
while True:
try:
for i in range(0, num_grades):
grades = int(input("Enter Grade: "))
new_student["grades"].append(grades)
break
except ValueError:
print("Enter a valid number!")
students_all.append(new_student)
return new_student
newstudent = Student(**add_student())
print(newstudent)
使用str.join():
"STUDENT NAME: {}\nGRADES: {}".format(self._name, ", ".join(map(str, self._grades)))
此代码还将整数转换为字符串。
您可以使用 str.join(iterable)
函数从可迭代对象创建字符串。
你的代码应该是这样的:
def __str__(self):
return "STUDENT NAME: {}\nGRADES: {}".format(self._name, ', '.join(self._grades))
您可以使用以下代码:
def __str__(self):
return "STUDENT NAME: {}\nGRADES: {}".format(self._name, ', '.join(str(grade) for grade in self._grades))