控制台输出一个菱形。用python写

作者&投稿:蓟虹 (若有异议请与网页底部的电邮联系)
用Python怎样输出完整的菱形?~

#!/usr/bin/env python# -*- coding:utf-8 -*- print '
'.join(['*'*7 for i in range(4)]) print '
' print '
'.join(['*'*(i*2+1) for i in range(4)]) print '
' print '
'.join([('*'*(i*2+1)).center(7, ' ') for i in range(4)]) print '
' print '
'.join([('*'*(abs(i-3)*2+1)).center(7, ' ') for i in range(4)]) print '
' print '
'.join([('*'*([i,abs(i-6)][i>3]*2+1)).center(7, ' ') for i in range(7)]) print '
' print '
'.join(['*'*([i,abs(i-6)][i>3]*2+1) for i in range(7)]) 各种型 没有达到你的要求 再追问>>> ================================ RESTART ================================>>> **************************** **************** * *** ***** ******* ******* ***** *** * * *** ***** ******* ***** *** * *************************>>>

#代码如下
n = int(input("请输入菱形边长整数n:"))
b = n
c = n
for i in range(1, n + 1): # 先打印正三角,由空格和*根据规律组成
print(" " * (b - 1), "*" * (2 * i - 1))
b -= 1
if i == n: # 临界点,当打印到此,开始打印倒三角
for y in range(1, n):
print(" " * y, "*" * (2*c-3))
c -= 1
---------代码运行结果,可自己测试
请输入菱形边长整数n:4
*
***
*****
*******
*****
***
*

首先画一个菱形,看一下规律在哪里,先看下图:

见上图菱形,定义尺寸为size=3,

定义X坐标为i:

  1. A区域X坐标为i,Y坐标为size-i;

  2. B区域X坐标为i,Y坐标为size+i;

  3. C区域X坐标为i,Y坐标为i-size;

  4. D区域X坐标为i,Y坐标为size*3-i

满足1,2,3,4的情况下就输出*,其它则输入空格,这样我们就得到一个菱形,代码如下和输出效果如下:

size = 3 # 定义菱形尺寸
count = size*2+1 # 定义X,Y坐标循环范围
# i为横坐标
for i in range(count):
    # j为纵坐标
    for j in range(count): 
        # 当X,Y满足条件1和2时
        if i <= size and (j == size-i or j == size+i):
            print('*', end='')
        # 当X,Y满足条件3和4时
        elif i > size and (j == i-size or j == size*3-i):
            print('*', end='')
        # 其它情况输入空格
        else:
            print(' ', end='')
    # 每打印一行就换行
    print()


line=int(input('请输入菱形行数:'))
for i in range(1,line+1):
    for j in range(1,line+1-i):
        print(' ',end='')
    for k in range(1,2*i):
        print('*',end='')
    print()
for i in range(1,line):
    for j in range(1,i+1):
        print(' ',end='')
    for k in range(1,2*line-2*i):
        print('*',end='')
    print()



江达县17867164328: 控制台输出一个菱形.用python写 -
翠广佳尔: line=int(input('请输入菱形行数:')) for i in range(1,line+1): for j in range(1,line+1-i): print(' ',end='') for k in range(1,2*i): print('*',end='') print() for i in range(1,line): for j in range(1,i+1): print(' ',end='') for k in range(1,2*line-2*i): print('*',end='') print()

江达县17867164328: Python打印任意字符菱形 -
翠广佳尔: def rhombus(N): #菱形的上半部分 for i in range(N): print ' '*(N-i) + '*'*(2*i+1) #菱形的正中 print '*'*(2*N+1) #菱形的下半部分 for i in range(N): print ' '*(i+1) + '*'*(2*(N-i-1)+1) rhombus(4)

江达县17867164328: 怎么python用星号打出居中菱形 -
翠广佳尔: 循环输出,第一行输入n个空格+*+n个空格 第二行输入n-1个空格+*+n-1个空格... 以此类推就好

江达县17867164328: 编程实现,从键盘输入一个菱形边长n,然后用回旋数字输出该菱形. -
翠广佳尔: #include<stdio.h>#include<math.h> int main(){ int n,max,m; scanf("%d",&n); max = n*4-4; m = max+2; for(int i=1;i<2*n;i++){ int kongge = fabs(n-i); for(int j=0;j<kongge;j++) printf("%4c",' '); if(i>1 && i<2*n-1){ printf("%4d",m-i); kongge = 2*(n-...

江达县17867164328: 怎样用递归的方法输出一个菱形 -
翠广佳尔: #include <iostream> using namespace std; void Diamond(int n,int i); int main() {Diamond(5,0);return 0; } void Diamond(int n,int i) {int j;if(i==n) return ; for(j=0;j <=n-i;j++)cout << " ";for(j=0;j <(2*i-1);j++)cout << "*";cout << endl;Diamond...

江达县17867164328: 用VS2008的for循环在控制台里输出一个空心菱形? -
翠广佳尔: #includevoid main() { int m,n,column,empty,i,a,b; char s; scanf("%d %d %c",&m,&n,&s); for(i=0;i printf("%c",s); for(column=1;column { printf("\n"); for(empty=column;empty>0;empty--) {printf(" ");} printf("%c",s); if(column==n-1) { for(b=0;...

江达县17867164328: c#中怎麽在控制台输出一个菱形 -
翠广佳尔: static void Main(string[] args) { PrintRhomb(11); Console.ReadKey(); } static void PrintRhomb(int n) { int t = n / 2; for (int i = -t; i <= t; i++) { for (int j = 0; j < Math.Abs(i); j++) { Console.Write(" "); } for (int k = 0; k <= 2* (t - Math.Abs(i)); k++) { Console.Write("*"); } Console.WriteLine(); } }

江达县17867164328: 请问谁会用fortran在屏幕上输出一个菱形的程序,本人不会fortran但是又需要.谢谢那位高手搭救一下! -
翠广佳尔: !输出对角线为2*m+1个“*”的菱形!cvf6.6c通过 program main implicit none integer::i,m!输出对角线为2*m+1个“*”的菱形 m=15 do i=0,m,1 write(*,"(x,('*'))") end do m=m-1 do i=m,0,-1 write(*,"(x,('*'))") end do stop end

江达县17867164328: qbasic中怎样用循环打出一个菱形 -
翠广佳尔: INPUT n '输出有2n-1行 PRINT TAB(n); "#" FOR i = 2 TO n PRINT TAB(n - i + 1); "#"; TAB(n + i - 1); "#" NEXT i FOR i = n - 1 TO 2 STEP -1 PRINT TAB(n - i + 1); "#"; TAB(n + i - 1); "#" NEXT i PRINT TAB(n); "#" 或者使用SPACE$...

江达县17867164328: 用循环输出菱形 -
翠广佳尔: 注解了以下 ,自己看看 final int count = 4; //count代表菱形的半径 for (int i = 1; i < count * 2; i++) { //循环2*count-1次,表示竖直方向上 有多少行, for (int j = 1; j < count * 2; j++) { //循环2*count-1次 表示水平方向 有多少列, if (i <= count) { //菱形...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网