print函数如何满足字符数后换行?
本帖最后由 snowJR 于 2020-9-29 16:59 编辑比如说我要30个字符数后换行,如何编写这个代码?
这样?
for i in range(1,50):
print(i)
if i==30:
print()
c=0
for i in range(1, 50):
c += len('xxxx')
if c >= 30:
print('xxxx')
c=0
else:
print('xxxx', end='') rs75 发表于 2020-9-29 17:19
如果我已经有一个列表需要打印,并且要求每行30个字符要怎么写? snowJR 发表于 2020-9-29 18:52
如果我已经有一个列表需要打印,并且要求每行30个字符要怎么写?
增加个计数的变量来控制,比如下面打印10个字符换行
list1='sdkasjdkasdjadalsdjaldajsdjaskfhlhsbksnjfnakjdnfks'
count = 0
for num in range(len(list1)):
print(list1,end='')
count +=1
if count%10 ==0:
print() 楼上正解,只需要把打印默认的换行修改为无,然后当计数为30的倍数,打印一个换行就行了 疾风怪盗 发表于 2020-9-29 19:06
增加个计数的变量来控制,比如下面打印10个字符换行
为啥要增加一个count呢?直接用num不香吗? 本帖最后由 疾风怪盗 于 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, end='')
疾风怪盗 发表于 2020-9-29 20:04
也对,不过要稍微修改一下,要(num+1)%10来判断,然后还可以这样用三元运算符缩减代码
你这个不行啊,第十个没输出,直接用换行代替了
for num in range(len(list1)):
print(list1) if (num+1) % 10 == 0 else print(list1, end='') sunrise085 发表于 2020-9-29 20:17
你这个不行啊,第十个没输出,直接用换行代替了
好吧,三元运算符的问题,不用这个就行了
list1 = 'sdkasjdkasdjadalsdjaldajsdjaskfhlhsbksnjfnakjdnfkssda'
for num in range(len(list1)):
print(list1, end='')
if (num+1) % 10 == 0:
print() 疾风怪盗 发表于 2020-9-29 20:28
好吧,三元运算符的问题,不用这个就行了
不能处理列表啊 rs75 发表于 2020-9-29 20:33
不能处理列表啊
为什么不能处理列表?你的数据是怎么样的?
下面list2就是列表,一样可以打印,结尾不用空值,换成逗号,可以看的明显点
list1 = 'sdkasjdkasdjadalsdjaldajsdjaskfhlhsbksnjfnakjdnfkssda'
list2=list(list1)
print(list2)
for num in range(len(list2)):
print(list2, 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, 疾风怪盗 发表于 2020-9-29 20:37
为什么不能处理列表?你的数据是怎么样的?
下面list2就是列表,一样可以打印,结尾不用空值,换成逗 ...
['ss', 'ddd', 'kk']这样多个字符的
不过先压成一串也行
list1 = ''.join(str(i) for i in list1) 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, 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, 疾风怪盗 发表于 2020-9-29 20:48
元素是几个字符不影响的吧,不明白你说的不能处理是什么意思?这不是你要的效果?
还是你每个元素的每个 ...
对呀, 每个字符都计算, 哈哈 rs75 发表于 2020-9-29 20:58
对呀, 每个字符都计算, 哈哈
{:10_284:}所以你需求要讲清楚啊。。。。。。否则谁猜的到。。。。。。。 疾风怪盗 发表于 2020-9-29 21:01
所以你需求要讲清楚啊。。。。。。否则谁猜的到。。。。。。。
按楼主的描述不就是这样吗{:10_257:} 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, end=',')
count += len(list2)
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, 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, end=',')
count += len(list2)
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, 本帖最后由 疾风怪盗 于 2020-9-30 00:58 编辑
rs75 发表于 2020-9-29 21:02
按楼主的描述不就是这样吗
{:10_277:}。。。。。搞了半天,你不是楼主啊。。。。。。才发现。。。。别捣乱
页:
[1]
2