繁体   English   中英

如何打印字符串模式?

[英]How to print a string pattern?

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

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

如果您至少复制字符串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

请你在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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM