无法正确打印换行到shell?蟒蛇

时间:2013-12-04 19:36:09

标签: python sqlite python-2.7

我有以下问题:这会在输出中返回“\ 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 个答案:

答案 0 :(得分:1)

“\ 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',会发生什么。

答案 1 :(得分:0)

该函数返回一个字符串。如果您打印字符串,它将使用新行进行渲染。例如:

>>> 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.