利用列表生成式-打印菱形图案 输入一个字符和行数(奇数),中间用空格隔开 例如输入* 5 输出如下图案(中间一行要求左端顶格,其他行跟中间一行保持居中对齐) * *** ***** *** *
时间: 2023-09-30 10:03:05 浏览: 49
char = input("请输入一个字符:")
n = int(input("请输入行数(奇数):"))
# 上半部分
for i in range(1, n+1, 2):
print((char*i).center(n, ' '))
# 下半部分
for i in range(n-2, 0, -2):
print((char*i).center(n, ' '))
相关问题
用C语言写代码:输入一个整数n(奇数), 表示菱形的行数,打印出一个由符号“*”组成的菱形图案,菱形用字符 * 表示,每行都没有后缀的空格。
```c
#include <stdio.h>
int main() {
int n, i, j;
printf("请输入一个奇数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
for (j = 1; j <= n - i; j++) {
printf(" ");
}
for (j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
printf("\n");
}
for (i = n - 1; i >= 1; i--) {
for (j = 1; j <= n - i; j++) {
printf(" ");
}
for (j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
```
请编程输入一个奇数n(n<100)和一个字符c,输出n行由字符c组成的菱形图案。c
这里是一个Python的代码实现:
```
n = int(input("输入一个奇数n(n<100): "))
c = input("输入一个字符c:")
# 打印上半部分的菱形
for i in range(n // 2 + 1):
print(" " * (n // 2 - i) + c * (2 * i + 1))
# 打印下半部分的菱形
for i in range(n // 2, 0, -1):
print(" " * (n // 2 - i + 1) + c * (2 * i - 1))
```
首先读入一个奇数n和一个字符c,然后我们通过两个循环来打印菱形图案。在上半部分,我们从0到n // 2行打印,每一行先打印一些空格,然后再打印2 * i + 1个字符c。在下半部分,我们从n // 2行到1行倒序打印,每一行打印一些空格,然后再打印2 * i - 1个字符c。在两个循环的过程中,我们使用了整数除法 // 和倒序循环range(n // 2, 0, -1)。