如何使用Python打印字符串循环移位构成的指定图案?
问题核心原因
你原代码的问题是直接重复打印完整的原字符串,没有对字符串做循环移位截取处理,同时你重复定义了char_str1变量,会覆盖前一个值,需要先拆分为两个独立的字符串变量。
实现逻辑
- 左边短字符串序列:每次将字符串向左偏移
i位,循环截取长度为num的子串,可通过(原字符串 * 2)[i:i+num]快速实现 - 右边长字符串序列:每次将前
i个字符移动到末尾,可通过原字符串[i:] + 原字符串[:i]实现 - 两部分中间用固定数量的空格拼接后逐行打印
可运行完整代码
# 修正变量定义,避免重复赋值覆盖 char_str_a = 'abc' char_str_b = '31452' num = 5 for i in range(num): # 生成左侧图案 left_part = (char_str_a * 2)[i:i+num] # 生成右侧图案 right_part = char_str_b[i:] + char_str_b[:i] # 拼接后打印,中间空格和示例效果对齐 print(f"{left_part} {right_part}")
运行输出结果
abcab 31452 bcabc 14523 cabca 45231 abcab 52314 bcabc 23145
内容的提问来源于stack exchange,提问作者user15103706
相关产品推荐
相关产品推荐

