为了账号安全,请及时绑定邮箱和手机立即绑定

关于复杂表达式

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }

def generate_tr(name, score):

    if score < 60:

        return '<tr><td>%s</td><td style="color:red">%s<td></tr>' % (name , score)

    return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)


tds = [generate_tr(name, score) for name, score in d.iteritems()]

print '<table border="1">'

print '<tr><th>Name</th><th>Score</th><tr>'

print '\n'.join(tds)

print '</table>'



tds = [generate_tr(name, score) for name, score in d.iteritems()] 这句是怎么理解的?
return '<tr><td>%s</td><td>%s</td></tr>' % (name, score) 还有这句后面加% (name, score) 是什么意思?

正在回答

1 回答


tds = [generate_tr(name, score) for name, score in d.iteritems()]中for前面函数generate_tr(name, score)可看作对name,scoure做了一个处理,他其实是           

   for name, score in d.iteritems():

             generate_tr(name, score) 

的变形,最后把这个for循环的结果赋值给变量tds。           


'<tr><td>%s</td><td>%s</td></tr>' % (name, score) 还有这句后面加% (name, score) ,自己的理解是这个跟C 语言中的printf()格式化输出很像,  % (name, score)这个中的%对应前面占位符%s中的%,  ()中是对应的变量,也可以把这个(name, score)  看作tuple  ,个人拙见,仅供参考!望前辈批评指正!


4 回复 有任何疑惑可以回复我~
#1

慕沐4974640 提问者

恩恩 这下明白了 说的还是蛮对的 这样子想就明白了
2017-04-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

关于复杂表达式

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信