【问题标题】:How to print a string pattern?如何打印字符串模式?
【发布时间】:2021-12-02 05:43:14
【问题描述】:

我有一个字符串,其中包含字符和将在模式中的行和列的数字:

char_str1 = 'abc'
char_str1 = '31452'
num = 5

我希望输出是:

abcab       31452
bcabc       14523
cabca       45231
abcab       52314
bcabc       23145

我已经尝试过:

for i in range(num):
   for j in range(num):
       print(char_str1, end='')
   print()
output:
abcabcabcabcabc
abcabcabcabcabc
abcabcabcabcabc
abcabcabcabcabc
abcabcabcabcabc

【问题讨论】:

  • Python modulo 可以帮你把 0,1,2,3,4,5,6 变成 0,1,2,0,1,2,0(例如使用模 3 )。
  • 两个变量同名char_str1 = 'abc' 覆盖char_str1 = '31452'
  • 鉴于问题的当前文本,我认为没有人能理解您对这件事的规则......请尝试再次解释您的期望和原因(它遵循什么规则)

标签: python string for-loop


【解决方案1】:

请你下面的java代码为你的模式!

JAVA

public class Main {
  public static void printPattern(String s, int n) {
    for (int i = 0; i < n; i++) {
      for (int j = i; j < n + i; j++) {
        System.out.print(s.charAt(j % s.length()));
      }
      System.out.println();
    }
  }
  public static void main(String[] args) {
    printPattern("abc", 5);
    printPattern("31452", 5);
  }
}

编辑:

Python

def printPattern(s, n):
  for i in range(n):
    for j in range(i, n + i):
      print(s[j % len(s)], end='')
    print()
    
printPattern("abc", 5);
printPattern("31452", 5);

【讨论】:

  • 问题被标记为python
  • 是的,我也可以看到,但绝对可以知道在 python 中做什么!
  • 如果您没有在 python 中做什么,请告诉我,我会将我的 JAVA 代码编辑为 python 语言...等待您的回复提前谢谢
  • 你能把你的代码编辑成 python 吗?谢谢
  • @minkp90 是的,请看一下我也在 python 中添加了代码!!
【解决方案2】:

如果您至少复制字符串num 次,简单的切片就可以工作。当然,原始字符串的长度至少需要为 1:

char_str1 = 'abc'
char_str2 = '31452'   # You had a typo here st1 instead of str2
num = 5

a = char_str1 * num
b = char_str2 * num

for i in range(num):
   print(a[i:i+num], b[i:i+num])

输出:

abcab 31452
bcabc 14523
cabca 45231
abcab 52314
bcabc 23145

【讨论】:

    猜你喜欢
    • 2016-01-05
    • 2020-03-02
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多