首页 > 解决方案 > 有人可以帮我弄清楚我的代码是否像这样打印我的变量

问题描述

我刚开始学习 python,我需要打印出我的变量,但它以一种奇怪的方式打印它。

namesANDgrade = ""

while studentname == 'y':
  NumberOfStudents += 1
  print("Enter student#",NumberOfStudents,"name")
  name = input()
  namesANDgrade = str(namesANDgrade) + '\n'+str(NumberOfStudents)+":"+str(name)
  print("What is",name+'s grade in the class: ')
  grade = input()

  namesANDgrade = str(namesANDgrade),str(grade)+"%"

print(namesANDgrade)

詹姆斯凯伦和数字被输入

当打印 namesANDgrade 时,它​​显示为:

("('\\n1:James ', '90%')\n2:Karen", '50%')

I expect it to be:

1:James 90%

2:Karen 50%

标签: pythonvariablesprinting

解决方案


在集合中使用逗号 ( ,)作为两个项目的元组:其自身的字符串版本,然后是由成绩和 组成的字符串。namesANDgrade = str(namesANDgrade),str(grade)+"%"namesAndgrade%

相反,只需使用 plus 进行字符串连接。此外,很多这些str调用都是多余的,因为 的返回值input是一个字符串,而字符串连接会产生一个字符串:

namesANDgrade = ""

while studentname == 'y': # this looks like an infinite loop but it's in the question 
  NumberOfStudents += 1
  print("Enter student#",NumberOfStudents,"name")
  name = input()
  namesANDgrade = namesANDgrade + '\n' + str(NumberOfStudents) + ":" + name
  print("What is " + name + "'s grade in the class: ")
  grade = input()

  namesANDgrade = namesANDgrade + grade + "%"

print(namesANDgrade)

推荐阅读