找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 6231|回复: 10

[已解决] python3 print函数的参数使用

2

主题

12

帖子

12

积分

贫民

积分
12
kpuppy 发表于 2017-3-3 16:13:38 | 显示全部楼层 |阅读模式
刚刚开始学习python,遇到一些比较基础的问题,请各位前辈赐教。

g = ( x * x for x in range(1,5) )
for n in g:
        print(n, end=',')

print()

我希望打印结果是:
1,4,9,16
最后没有',',而是一个换行,现在我在后面再加一个没有参数的print可以打印换行,但是最后一个数字后面的','还是有,我试了sep参数不起作用,不知道应该怎么处理,是否print函数还有其他参数可以用来做类似的事情?

回复

使用道具 举报

0

主题

14

帖子

14

积分

贫民

积分
14
昨夜星辰 发表于 2017-3-3 17:54:41 | 显示全部楼层
kpuppy 发表于 2017-3-3 17:49
非常感谢你的回复,但是g是一个generator,我这样写会提示:TypeError: can only join an iterable ...
  1. print(','.join(map(str, g)))
复制代码
回复 支持 1 反对 0

使用道具 举报

0

主题

14

帖子

14

积分

贫民

积分
14
昨夜星辰 发表于 2017-3-3 17:06:06 | 显示全部楼层
直接这样更好:
  1. print(','.join(g))
复制代码
回复 支持 反对

使用道具 举报

2

主题

12

帖子

12

积分

贫民

积分
12
kpuppy  楼主| 发表于 2017-3-3 17:49:37 | 显示全部楼层
非常感谢你的回复,但是g是一个generator,我这样写会提示:TypeError: can only join an iterable
回复 支持 反对

使用道具 举报

0

主题

14

帖子

14

积分

贫民

积分
14
昨夜星辰 发表于 2017-3-3 17:56:31 | 显示全部楼层
我的代码:
  1. g = ( x * x for x in range(1,5) )
  2. print(type(g))
  3. print(','.join(map(str, g)))
复制代码
运行结果见附件:
QQ截图20170303175532.png
回复 支持 反对

使用道具 举报

2

主题

12

帖子

12

积分

贫民

积分
12
kpuppy  楼主| 发表于 2017-3-3 18:20:25 | 显示全部楼层
谢谢!这样可以了。join的参数得是字符串,g的元素原来都是int,对吧?
如果g = ( x for x in 'ABC' )
我就可以直接print(','.join(g))了,这样理解对吗?
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2017-3-6 17:25:40 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

14

帖子

14

积分

贫民

积分
14
昨夜星辰 发表于 2017-3-7 16:11:43 | 显示全部楼层
kpuppy 发表于 2017-3-3 18:20
谢谢!这样可以了。join的参数得是字符串,g的元素原来都是int,对吧?
如果g = ( x for x in 'ABC' )
我就 ...

是的
回复 支持 反对

使用道具 举报

0

主题

14

帖子

14

积分

贫民

积分
14
昨夜星辰 发表于 2017-3-7 16:11:55 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

14

帖子

14

积分

贫民

积分
14
hades2013 发表于 2017-4-27 21:35:24 | 显示全部楼层
围观学习中,,,看看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表