事情的起因是这样的:
于是呼,写下了下面的代码输入不同的time,可以得到不同的结果
上
1 | #!/usr/bin/python |
运用到的知识:
- 字符串的拼接
- 列表的扩展
- 字符串的输出,不能直接这样输出
- 输出的时候用[0:]可以去掉引号
1 | print guess |
她这样回复的:
她敢嘲笑我大Python不行,说Python麻烦,于是吸取她的代码经验,不需要存储直接print就好(我经常犯这种错误,经常存储起来然后使用!!!)
1 | print "%s%s%s" % ('你猜我', 5*'猜你', '猜不猜') |
这个地方也可以这样写:
1 | print "{}{}{}".format('你猜我', 5*'猜你', '猜不猜') |
这个地方不能这样写,是因为:
1 | print '你猜我', |
因为Python中默认print是换行输出的,所以这里要加逗号,但是这样的话会有空格
结果如下:
1 | 你猜我 猜你 猜你 猜你 猜你 猜你 猜不猜 |
就着这个时候,他说不行,逻辑是错的,应该是你猜与我猜交叉:
于是经过近乎斗气般的努力:
敲出了如下语句:
1 | print "".join([('猜你' if x % 2 == 0 else '猜我')for x in range(1, 11)]) |
首先我们是这样添加头的:
1 | print "hello".join([('猜你' if x % 2 == 0 else '猜我')for x in range(1, 11)]) |
然而出现了下面情况:
1 | 猜我hello猜你hello猜我hello猜你hello猜我hello猜你hello猜我hello猜你hello猜我hello猜你 |
查原因请看附录中join的用法
然后改成这样添加头与尾:
1 | print "{}{}{}".format('你猜我', ''.join([('猜你' if x % 2 == 1 else '猜我')for x in range(1, 11)]), '猜不猜') |
效果:
1 | 你猜我猜你猜我猜你猜我猜你猜我猜你猜我猜你猜我猜不猜 |
最终当然是我伟大的Python赢了,于是乎结果:
PS:Python一行打印心形:
1 | print'\n'.join([''.join([('PYTHON!'[(x-y)%7]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]) |