import sys template_ = [] def big(n, t, result): # 原模版长度,模版,结果 new_num = len(result) * n # 新画布行数 new_result = [[] for i in range(new_num)] for k in range(len(result)): # 遍历模版行数 t[k]表示其中一行 todo_line = result[k] if(type(todo_line)==list): todo_line = ''.join(todo_line) # 当前处理的这行 for m in range(len(todo_line)): # 依次取模版的每一个字符 new_i1 = k * len(t) new_i2 = (k + 1) * len(t) if (todo_line[m] == ' '): for count in range(new_i1, new_i2): new_result[count].append(' ' * len(t)) else: t_line = 0 if (t_line == len(t)): t_line = 0 for count in range(new_i1, new_i2): new_result[count].append(t[t_line]) t_line += 1 return new_result def build_result(n, t, s): # 原模版长度,模版,倍数 result = t if (s == 1): return t for i in range(1, s): result = big(n, t, result) return result def print_result(r): for i in range(len(r)): print(''.join(r[i])) for line in sys.stdin: num = int(line) if (num == 0): break for i in range(0, num): template_.append(sys.stdin.readline().strip('\n')) scale = int(input()) print_result(build_result(num, template_, scale)) template_=[]
思路见:https://blog.csdn.net/qq_41775119/article/details/138590890