如何构建支持自定义行列数的循环数字序列打印的迭代逻辑
实现代码
# 获取用户输入的行数和列数 row = int(input("请输入行数:")) column = int(input("请输入列数:")) for line_idx in range(row): current_line = "" for col_idx in range(column): # 计算当前位置应输出的数字 num = (line_idx + col_idx) % column + 1 current_line += str(num) print(current_line)
如果需要更简洁的写法可以用生成器表达式实现:
row = int(input("请输入行数:")) col = int(input("请输入列数:")) for i in range(row): print(''.join(str((i+j)%col +1) for j in range(col)))
逻辑说明
- 单独获取行数、列数两个输入参数,不再绑定两者数值,满足行列非固定的需求
- 核心数字计算通过取模运算实现:每一行的第N个数字,等于「行索引+列索引」对列数取模后加1,自动实现数字序列的循环效果
- 不管行数比列数大还是小,都能按需求输出对应长度的序列
效果验证
输入参数为row=8、column=5时,输出结果如下:
12345 23451 34512 45123 51234 12345 23451 34512
内容的提问来源于stack exchange,提问作者Sagar Nakade
相关产品推荐
相关产品推荐

