Не удается правильно напечатать новую строку для оболочки? питон

У меня есть следующая проблема: это возвращает "\n" в выходном файле, но я хочу, чтобы он возвращал новую строку, такую как SQL-запрос, может ли кто-нибудь мне помочь? IDLE, Python 2.7.5.

int iD, str days, int maxCapacity, int crn, int enrollment, string semester, string room

код python:

def registerCourse(iD, days, maxCapacity, crn, enrollment, semester, room):
 return "UPDATE CoursesOffered" + "\n" + "SET InstructorID=" + str(iD) + ",Days=" + str(days) + ",MaxCapacity=" + str(maxCapacity) + ",Enrollment=" + str(enrollment) + "\n" + "WHERE CRN=" + str(crn)

Я предполагаю, что реальный вопрос: как мне получить это в формате строки и вернуть его? Я пытаюсь заставить это быть непосредственно выполненным SQL-запросом.

2 ответа

"\n" - это просто представление новой строки.

>>> a = 'a\nb' 
>>> a
'a\nb'
>>> print (a)
a
b

Попробуйте передать значение функции print (или инструкции в py2, но скобки не повредит).

NOTA BENE

Если возможно, ограничьте использование строковых функций для передачи параметров в запрос. Это открывает все двери для SQL-инъекций и ослабляет завесу между нашим миром и преисподней, вызывая HIM, который ждет за стеной. Передайте свои параметры через драйвер.

Например, что произойдет, если crn равно '1 or true', или если оно равно '1;drop table CoursesOffered'.


Эта функция возвращает строку. Если вы напечатаете строку, она отобразится с новой строкой. Например:

>>> def foo():
... return "Hi \n This is on a new line."
...
>>> foo()
'Hi \n This is on a new line.'
>>> print foo()
Hi
 This is on a new line.

licensed under cc by-sa 3.0 with attribution.