tb ='student'
dt ={'name':'ArYe','age':15,'height':None}
ls =[(k, v)for k, v in dt.items()if v isnotNone]
sentence ='INSERT %s ('% tb +','.join([i[0]for i in ls])+\
') VALUES ('+','.join(repr(i[1])for i in ls)+');'print(sentence)
打印结果
INSERT student (name,age)
VALUES (‘ArYe’,15);
1.2、过程拆解
table_name ='student'
dt ={'name':'小基','enrollment_date':'2004-09-01','age':12,'weight':None}# 构造INSERT语句
ls =[(k, dt[k])for k in dt if dt[k]isnotNone]
sql1 ='INSERT %s ('% table_name
sql2 =','.join(i[0]for i in ls)
sql3 =') VALUES ('
sql4 =','.join('%r'% i[1]for i in ls)
sql5 =');'print(sql1, sql2, sql3, sql4, sql5, sep='\n')
matrix =[[1,2],[3,4],[5,6]]
inverse_matrix =[[matrix[r][c]for r inrange(len(matrix))]for c inrange(len(matrix[0]))]print(inverse_matrix)
打印结果
[[1, 3, 5],
[2, 4, 6]]
2.2、repr
表达式
打印结果
print(repr(‘A’))
‘A’
print(’%r’ % 9)
9
print(’{!r}’.format([‘2’, 2]))
[‘2’, 2]
repr和str区别
classA:def__init__(self, i):
self.i = i
def__str__(self):returnrepr(self.__dict__)classB:def__init__(self, i):
self.i = i
def__repr__(self):returnrepr(self.__dict__)print([A(i)for i inrange(3)])print([B(i)for i inrange(3)])