python使用for in循环输出菱形


刚开始接触python有点不太适应,之前都是熟悉点java,是在校大学生,发出来也是希望大家看看我自己的理解同时能够得到大家一些指导帮助。(这里谢谢大家)
接触这个题目时第一想法就是用java的思维照搬过来,但是python里的for in循环里range遍历不会到最后一个数,导致很尴尬一时半会不知道怎么办,便想到输入变量后在加一放入range里。。

这是java代码:

Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
       for (int i = 1; i<=n; i++) {
    	   for (int j =1; j <=(n-i); j++) {
				System.out.print(" ");
			}
		    for (int z = 1; z <=2*i-1; z++) {
				System.out.print("*");
			}
		    System.out.println();
	}
      for (int i = n-1; i >0; i--) {
		for (int j = 0; j < n-i; j++) {
			System.out.print(" ");
		}
		for (int j = 0; j <2*i-1 ; j++) {
			System.out.print("*");
		}
		System.out.println();
	} 

这是python代码:

b=int(input("输入一个数"))
a=b+1
for i in range(1,a):
    for x in range(a-i):
        print(" ",end="")
    for y in range(2*i-1):
        print("*",end="")
    print()
for j in range(a-2,0,-1):
    for w in range(a-j):
        print(" ",end="")
    for z in range(2*j-1):
        print("*",end="")
    print()

输出下边的三角形时我想的是从a-1开始遍历因为上半的range里的a不会遍历到所以写了a-2。
结果是:

4
    *
   ***
  *****
 *******
  *****
   ***
    *

希望大家看了后说说自己的想法,自己感觉这个挺麻烦的,有问题希望能够指出,先感谢

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐