Попытка напечатать строки на отдельных строках

Эти функции __radd__ вызывается только в том случае, если левый операнд не поддерживает соответствующую операцию, а операнды имеют разные типы. Например,

class X:
  def __init__(self, num):
    self.num = num

class Y:
  def __init__(self, num):
    self.num = num

  def __radd__(self, other_obj):
    return Y(self.num+other_obj.num)

  def __str__(self):
    return str(self.num)

>>> x = X(2)
>>> y = Y(3)
>>> print(x+y)
5
>>>
>>> print(y+x)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-60-9d7469decd6e> in <module>()
----> 1 print(y+x)

TypeError: unsupported operand type(s) for +: 'Y' and 'X'
-1
задан FailingCoder 18 March 2019 в 05:03
поделиться

3 ответа

Используйте "\n", чтобы добавить дополнительную строку в дополнение к уже добавленной строке.

0
ответ дан MarredCheese 18 March 2019 в 05:03
поделиться

Это потому, что вы добавляете строки вопросов в строку. Поэтому сделайте небольшое изменение в следующей строке:

temp += sf.nextLine() + "\n";

Конечно, символ новой строки зависит от среды, в которой вы работаете (\n или \r\n).

0
ответ дан MarredCheese 18 March 2019 в 05:03
поделиться

Лучший способ добавить множество строк в одну с символом новой строки после каждой из них - использовать StringBuilder. Я переписал ваш код с помощью StringBuilder

  public static String[] questionToString(Scanner sf) {
   StringBuilder temp = new StringBuilder();
   String[] questions = new String[Q];
   int i = 0;
   while(sf.hasNext()){
    for(int y = 0; y < 5; y++) {
    temp.append(sf.nextLine());
    temp.append(System.lineSeparator());
    }
   questions[i] = temp.toString();
   i++;
   temp = new StringBuilder();
   return questions;

}

ПРИМЕЧАНИЕ. Пожалуйста, не добавляйте /n к вашей строке, так как символ новой строки отличается для разных операционных систем. Я посоветую вам использовать System.lineSeparator(), это добавит символ новой строки в зависимости от операционной системы, в которой вы запускаете свой код.

0
ответ дан Sujit kumar 18 March 2019 в 05:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: