如何向二维字符数组中自定义输入行列数据并按格式输出?
如何向二维字符数组的行列中输入自定义数据?
原代码问题分析
原代码有两个核心问题:
- 每次添加到矩阵的是固定的
['a', 'b', 'c','d', 'e']列表,完全忽略了用户输入的列数; - 第二个
for循环缩进错误,嵌套在第一个循环内部,导致每添加一行就重复打印多次整个矩阵。
解决方案
根据需求提供两种实现方式:
方式一:自动按字母顺序生成对应尺寸的字符矩阵
如果希望自动生成类似a b c、d e f这种连续字符的矩阵,可利用ASCII码特性实现:
rows = int(input("请输入行数:")) cols = int(input("请输入列数:")) matrix = [] current_char = ord('a') # 从字母a开始 for i in range(rows): row = [] for j in range(cols): row.append(chr(current_char)) current_char += 1 matrix.append(row) # 按格式打印矩阵 for row in matrix: print(' '.join(row))
运行示例(输入3行3列):
请输入行数:3 请输入列数:3 a b c d e f g h i
方式二:手动输入每个位置的字符
如果需要自定义每个位置的字符,让用户逐个输入:
rows = int(input("请输入行数:")) cols = int(input("请输入列数:")) matrix = [] for i in range(rows): row = [] print(f"请输入第{i+1}行的{cols}个字符(用空格分隔):") # 获取用户输入并拆分 chars = input().strip().split() # 确保输入的字符数量符合列数 while len(chars) != cols: print(f"输入错误,请输入{cols}个字符,用空格分隔:") chars = input().strip().split() row.extend(chars) matrix.append(row) # 按格式打印矩阵 print("\n生成的矩阵:") for row in matrix: print(' '.join(row))
运行示例(输入3行3列,自定义输入):
请输入行数:3 请输入列数:3 请输入第1行的3个字符(用空格分隔): x y z 请输入第2行的3个字符(用空格分隔): m n o 请输入第3行的3个字符(用空格分隔): p q r 生成的矩阵: x y z m n o p q r
内容的提问来源于stack exchange,提问作者Quiambao Michael
相关产品推荐
相关产品推荐

