【问题标题】:Can some help me figure out is my code printing my variable out like this有人可以帮我弄清楚我的代码是否像这样打印我的变量
【发布时间】:2019-10-22 19:59:36
【问题描述】:

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

James Karen 和数字被输入

namesANDgrade 打印时显示为:

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

I expect it to be:

1:James 90%

2:Karen 50%

【问题讨论】:

  • while studentname == 'y': 是什么意思? studentname 是未定义的,并且永远不会在循环内修改。
  • 用加号+替换逗号,

标签: python variables printing


【解决方案1】:

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

相反,只需使用加号来进行字符串连接。另外,很多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)

【讨论】:

  • 非常感谢,帮了大忙。
【解决方案2】:

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

相反,

如果您使用的是 Python3,那么使用 'f' 字符串会更简单、更方便。

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

对于 Python2:

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

这样代码更简洁,更易于阅读和组织

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-12
    • 2022-12-28
    • 2018-07-31
    • 2020-09-25
    • 2014-02-20
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多