Может ли кто-нибудь помочь мне понять, мой код печатает мою переменную вот так - PullRequest
0 голосов
/ 22 октября 2019

Я только начал изучать 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)

Джеймс Карен и числа вводятся

при именах ANDgradeнапечатано это отображается как:

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

I expect it to be:

1:James 90%

2:Karen 50%

Ответы [ 2 ]

2 голосов
/ 22 октября 2019

Использование запятой (,) в namesANDgrade = str(namesANDgrade),str(grade)+"%" устанавливает namesAndgrade как кортеж из двух элементов: строковой версии самого себя, а затем строки, составленной из ранга, и %.

* 1006. * Вместо этого просто используйте плюс для объединения строк. Кроме того, многие из этих вызовов 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)
0 голосов
/ 22 октября 2019

Использование запятых в переменной преобразует переменную в кортеж строк.

Вместо этого

Это более простой и удобный способ использовать строки 'f', если вы 'Вы используете Python3.

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

Для Python2:

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

Таким образом, его легко и просто читать и упорядочивать код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...