鱼C论坛

 找回密码
 立即注册
查看: 3015|回复: 21

[已解决]print函数如何满足字符数后换行?

[复制链接]
发表于 2020-9-29 16:58:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 snowJR 于 2020-9-29 16:59 编辑

比如说我要30个字符数后换行,如何编写这个代码?
最佳答案
2020-9-29 21:04:32
list2 = ['ss', 'ddd', 'kkkk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk']
print(list2)
count = 0
for num in range(len(list2)):
    print(list2[num], end=',')
    count += len(list2[num])
    if count // 5 >=1:
        print()
        count =0

['ss', 'ddd', 'kkkk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk']
ss,ddd,
kkkk,ss,
ddd,kk,
ss,ddd,
kk,ss,ddd,
kk,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-29 17:08:13 | 显示全部楼层
这样?
for i in range(1,50):
    print(i)
    if i==30:
        print()
    
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 17:19:17 | 显示全部楼层
c=0
for i in range(1, 50):
    c += len('xxxx')
    if c >= 30:
        print('xxxx')
        c=0
    else:
        print('xxxx', end='')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-29 18:52:19 | 显示全部楼层

如果我已经有一个列表需要打印,并且要求每行30个字符要怎么写?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 19:06:28 | 显示全部楼层
snowJR 发表于 2020-9-29 18:52
如果我已经有一个列表需要打印,并且要求每行30个字符要怎么写?

增加个计数的变量来控制,比如下面打印10个字符换行
list1='sdkasjdkasdjadalsdjaldajsdjaskfhlhsbksnjfnakjdnfks'

count = 0
for num in range(len(list1)):
    print(list1[num],end='')
    count +=1
    if count%10 ==0:
        print()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 19:56:23 | 显示全部楼层
楼上正解,只需要把打印默认的换行修改为无,然后当计数为30的倍数,打印一个换行就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 20:01:00 | 显示全部楼层
疾风怪盗 发表于 2020-9-29 19:06
增加个计数的变量来控制,比如下面打印10个字符换行

为啥要增加一个count呢?直接用num不香吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 20:04:14 | 显示全部楼层
本帖最后由 疾风怪盗 于 2020-9-29 20:06 编辑
sunrise085 发表于 2020-9-29 20:01
为啥要增加一个count呢?直接用num不香吗?


也对,不过要稍微修改一下,要(num+1)%10来判断,然后还可以这样用三元运算符缩减代码
list1 = 'sdkasjdkasdjadalsdjaldajsdjaskfhlhsbksnjfnakjdnfks'

for num in range(len(list1)):
    print() if (num+1) % 10 == 0 else print(list1[num], end='')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 20:17:05 | 显示全部楼层
疾风怪盗 发表于 2020-9-29 20:04
也对,不过要稍微修改一下,要(num+1)%10来判断,然后还可以这样用三元运算符缩减代码

你这个不行啊,第十个没输出,直接用换行代替了
for num in range(len(list1)):
    print(list1[num]) if (num+1) % 10 == 0 else print(list1[num], end='')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 20:28:27 | 显示全部楼层
sunrise085 发表于 2020-9-29 20:17
你这个不行啊,第十个没输出,直接用换行代替了

好吧,三元运算符的问题,不用这个就行了
list1 = 'sdkasjdkasdjadalsdjaldajsdjaskfhlhsbksnjfnakjdnfkssda'

for num in range(len(list1)):
    print(list1[num], end='')
    if (num+1) % 10 == 0:
        print()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 20:33:52 | 显示全部楼层
疾风怪盗 发表于 2020-9-29 20:28
好吧,三元运算符的问题,不用这个就行了

不能处理列表啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 20:37:17 | 显示全部楼层
rs75 发表于 2020-9-29 20:33
不能处理列表啊


为什么不能处理列表?你的数据是怎么样的?
下面list2就是列表,一样可以打印,结尾不用空值,换成逗号,可以看的明显点
list1 = 'sdkasjdkasdjadalsdjaldajsdjaskfhlhsbksnjfnakjdnfkssda'
list2=list(list1)
print(list2)
for num in range(len(list2)):
    print(list2[num], end=',')
    if (num+1) % 10 == 0:
        print()

['s', 'd', 'k', 'a', 's', 'j', 'd', 'k', 'a', 's', 'd', 'j', 'a', 'd', 'a', 'l', 's', 'd', 'j', 'a', 'l', 'd', 'a', 'j', 's', 'd', 'j', 'a', 's', 'k', 'f', 'h', 'l', 'h', 's', 'b', 'k', 's', 'n', 'j', 'f', 'n', 'a', 'k', 'j', 'd', 'n', 'f', 'k', 's', 's', 'd', 'a']
s,d,k,a,s,j,d,k,a,s,
d,j,a,d,a,l,s,d,j,a,
l,d,a,j,s,d,j,a,s,k,
f,h,l,h,s,b,k,s,n,j,
f,n,a,k,j,d,n,f,k,s,
s,d,a,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 20:44:46 | 显示全部楼层
疾风怪盗 发表于 2020-9-29 20:37
为什么不能处理列表?你的数据是怎么样的?
下面list2就是列表,一样可以打印,结尾不用空值,换成逗 ...

['ss', 'ddd', 'kk']这样多个字符的
不过先压成一串也行
list1 = ''.join(str(i) for i in list1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 20:48:35 | 显示全部楼层
rs75 发表于 2020-9-29 20:44
['ss', 'ddd', 'kk']这样多个字符的
不过先压成一串也行
list1 = ''.join(str(i) for i in list1)

元素是几个字符不影响的吧,不明白你说的不能处理是什么意思?这不是你要的效果?
还是你每个元素的每个字符都要计算?
list2=['ss', 'ddd', 'kk','ss', 'ddd', 'kk','ss', 'ddd', 'kk','ss', 'ddd', 'kk']
print(list2)
for num in range(len(list2)):
    print(list2[num], end=',')
    if (num+1) % 5 == 0:
        print()
['ss', 'ddd', 'kk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk']
ss,ddd,kk,ss,ddd,
kk,ss,ddd,kk,ss,
ddd,kk,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 20:58:39 | 显示全部楼层
疾风怪盗 发表于 2020-9-29 20:48
元素是几个字符不影响的吧,不明白你说的不能处理是什么意思?这不是你要的效果?
还是你每个元素的每个 ...

对呀, 每个字符都计算, 哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 21:01:04 | 显示全部楼层
rs75 发表于 2020-9-29 20:58
对呀, 每个字符都计算, 哈哈

所以你需求要讲清楚啊。。。。。。否则谁猜的到。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 21:02:45 | 显示全部楼层
疾风怪盗 发表于 2020-9-29 21:01
所以你需求要讲清楚啊。。。。。。否则谁猜的到。。。。。。。

按楼主的描述不就是这样吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 21:03:02 | 显示全部楼层
rs75 发表于 2020-9-29 20:58
对呀, 每个字符都计算, 哈哈

比如说这样?那你要累计到5的时候是输出后换行呢?还是不到5就输出换行?这也是有区别的。。。。。。。得说清楚啊
list2 = ['ss', 'ddd', 'kkkk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk']
print(list2)
count = 0
for num in range(len(list2)):
    print(list2[num], end=',')
    count += len(list2[num])
    if count // 5 >=1:
        print()
        count = count//5

['ss', 'ddd', 'kkkk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk']
ss,ddd,
kkkk,
ss,ddd,
kk,ss,
ddd,kk,
ss,ddd,
kk,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 21:04:32 | 显示全部楼层    本楼为最佳答案   
list2 = ['ss', 'ddd', 'kkkk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk']
print(list2)
count = 0
for num in range(len(list2)):
    print(list2[num], end=',')
    count += len(list2[num])
    if count // 5 >=1:
        print()
        count =0

['ss', 'ddd', 'kkkk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk', 'ss', 'ddd', 'kk']
ss,ddd,
kkkk,ss,
ddd,kk,
ss,ddd,
kk,ss,ddd,
kk,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 21:05:27 | 显示全部楼层
本帖最后由 疾风怪盗 于 2020-9-30 00:58 编辑
rs75 发表于 2020-9-29 21:02
按楼主的描述不就是这样吗


。。。。。搞了半天,你不是楼主啊。。。。。。才发现。。。。别捣乱
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 11:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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