有人能帮我弄清楚我的代码是这样打印变量的吗

2024-10-01 15:33:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始学习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%

Tags: nameinput方式whatstudentgradeprintenter
2条回答

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)

在变量中使用逗号将变量转换为字符串元组

相反

如果您使用的是Python3,那么使用“f”字符串就更简单、更方便

 namedANDgrade = f'{str(namesANDgrade)} {str(grade)}% \n'

对于Python2:

 namedANDgrade = '{} {}% \n'.format(str(namesANDgrade),str(grade))

这样,代码就更容易阅读和组织

相关问题 更多 >

    热门问题