如何不使用+=运算符实现指定范围数字的横向打印输出
问题说明
原有实现通过for循环配合+=增量赋值拼接字符串,实现0-9数字以空格分隔横向打印,原代码如下:
str_1='' for i in range(10): str_1 += str(i)+" " print(str_1)
代码运行输出结果为:
0 1 2 3 4 5 6 7 8 9
需求为不使用+=运算符,得到完全一致的打印输出。
实现方法
以下几种写法都不会用到+=运算符,输出结果和要求完全匹配:
- 利用print原生参数实现(代码最简洁)
print函数的sep参数可以定义多个打印内容之间的分隔符,搭配解包运算符*直接拆解range生成的数字序列即可,不需要提前做字符串拼接:print(*range(10), sep=' ') - 用
str.join()配合生成器推导式实现(Python字符串拼接推荐写法)
做字符串拼接优先用join方法,不需要手动写循环做增量赋值,直接传入转成字符串格式的数字迭代器,就能自动用空格把所有数字拼接成完整字符串:print(' '.join(str(i) for i in range(10))) - 保留循环逻辑,用列表收集元素后统一拼接
如果需要保留显式for循环的遍历逻辑,可以用列表的append方法收集所有转成字符串的数字,最后统一拼接输出,全程不会用到+=:res_list = [] for i in range(10): res_list.append(str(i)) print(' '.join(res_list))
内容的提问来源于stack exchange,提问作者Niloy_Codes
相关产品推荐
相关产品推荐

