print语句在python中无空格返回



这是我的代码:

class Student(Person):

def __init__(self, firstName, lastName, idNumber,scores):
self.firstName = firstName
self.lastName = lastName
self.idNumber = idNumber
self.testscores = scores
def calculate(self):
average = sum(self.testscores) / len(self.testscores)
if average>=90 and average<=100 :
return'O'
elif average>=80 and average<90 :
return'E'
elif average>=70 and average<80 :
return'A'
elif average>=55 and average<70 :
return'P'
elif average>=40 and average<55 :
return'D'
else:
return'T'

语句:print("Grade: ", s.calculate())返回Grade: O(两个空格(,而不是Grade: O(一个空格(。

由于上面的打印语句在锁定的存根代码中,我无法修改它

在从计算函数返回时,是否可以删除多余的空间?

编辑:为了更好地理解问题,请考虑形象其中唯一的区别是我的输出和预期输出的第三条语句,因为有额外的空间。

print函数已经用一个空格作为分隔符打印了它的每个参数,所以通过在"Grade: "中添加一个空格,可以使它在冒号和等级之间打印另一个空格。只需将"Grade: "替换为"Grade:",它就可以在没有额外空间的情况下输出。

您可以指定sep='',即一个空字符串:

print('Grade: ', s.calculate(), sep='')

或者你可以从你的第一个论点中删除空格:

print('Grade:', s.calculate())

或者,您可以使用字符串格式:

print(f'Grade: {s.calculate()}')          # 3.6+
print('Grade: {}'.format(s.calculate()))  # pre-3.6

为了解决这些问题,您可以使用内置的help,它告诉sep的默认参数是一个空格:

help(print)
print(...)
print(value, ..., sep=' ', end='n', file=sys.stdout, flush=False)
...
sep:   string inserted between values, default a space.
...

有趣的是,官方文件搞错了:

打印(*对象,sep='',end='n',file=sys.stdout,flush=False(

将对象打印到文本流文件中,用sep分隔,后跟最后。sep、end、file和flush(如果存在(必须作为关键字给定论点。

由于上面的打印语句在锁定的存根代码中,我无法修改它。

在从计算函数返回时,是否可以删除多余的空间?

如果我没有误解的话,你可以更改caculate函数,但不能更改print,你只想在输出中看到一个空格,你就在python3中。

然后您可以使用退格b,将例如return 'O'更改为return 'bO',其他返回也需要更改。

快速测试的简单代码:

def fun():
return 'O'
def fun2():
return 'bO'
print("Grade: ", fun())
print("Grade: ", fun2())

最新更新