WangJS 发表于 2020-4-29 08:51:38

小白Python练习册(9)【鱼币福利】

今天又是我老王来出题{:10_332:}

今天没什么可说的~~
直接上题{:10_275:}

询问玩家要打印几层的菱形


回复查看参考答案啊{:10_323:} :
**** Hidden Message *****


如果喜欢,别忘了评分订阅哟(传送门)!{:9_227:}

Mike_Python0721 发表于 2020-4-29 08:53:12

沙发

冰河星云 发表于 2020-4-29 08:55:33

本帖最后由 冰河星云 于 2020-4-29 08:58 编辑

我来了
a = int(input('请输入要打印的层数:'))
for i in range(a-1):
    print(int(a-i-1) * ' ',((i+1)*2-1) * '*')
for i in range(1,a+1):
    print((i-1)*' ',((a-i)*2+1) * '*')
input()

Mike_Python0721 发表于 2020-4-29 08:56:06

冰河星云 发表于 2020-4-29 08:55


占楼

March2615 发表于 2020-4-29 08:56:27

本帖最后由 March2615 于 2020-4-29 09:15 编辑

n = eval(input('enter row number:'))
n_list = +
for i in range(2 * n - 1):
    print(('*' * n_list).center(2 * n - 1, ' '))

Mike_Python0721 发表于 2020-4-29 08:56:46

我想要鱼币

WangJS 发表于 2020-4-29 08:58:17

Mike_Python0721 发表于 2020-4-29 08:56
我想要鱼币

不是给你了么?{:10_272:}
别忘了答题啊!

wuqramy 发表于 2020-4-29 09:02:22

本帖最后由 wuqramy 于 2020-4-29 09:27 编辑

思路纯巧合
num = int(input('Input a num:'))
for index in range(num - 1):
    print(int(num - index - 1) * ' ' + ((index + 1) * 2 - 1) * '*')
for index in range(1,num + 1):
    print((index - 1)*' ' + ((num - index) * 2 + 1) * '*')

Mike_Python0721 发表于 2020-4-29 09:02:29

WangJS 发表于 2020-4-29 08:58
不是给你了么?
别忘了答题啊!

简易不公布答案

设个悬赏

Mike_Python0721 发表于 2020-4-29 09:03:04

a = int(input('请输入要打印的层数:'))
for i in range(a-1):
    print(int(a-i-1) * ' ',((i+1)*2-1) * '*')
for i in range(1,a+1):
    print((i-1)*' ',((a-i)*2+1) * '*')
input()



建议设个悬赏

Twilight6 发表于 2020-4-29 09:03:46

本帖最后由 Twilight6 于 2020-4-29 09:45 编辑

def func(x):
    for i in range(1, x + 1):
      print(' ' * (x - i), '*' * i, '*' * (i - 1))
    for i in range(x - 1, 0, -1):
      print(' ' * (x - i), '*' * i, '*' * (i - 1))
func(10)
再来一个
x = int(input("请输入要打印的层数:"))
a =
a=list(a[::-1])
for i in a:
    print(' '*((2*x)-(a.index(i))),'*'*i)

Dikkoo 发表于 2020-4-29 09:04:39

看着感觉有点懵……没有思路

Hello. 发表于 2020-4-29 09:05:22

本帖最后由 Hello. 于 2020-4-29 09:44 编辑

你们都用Python,我来换个语言{:10_256:}
import java.util.Scanner;
public class Exercise {
    public static void main(String[] args)
{
      System.out.println("输入行数:");
      Scanner in = new Scanner(System.in);
      int a =(in.nextInt()+1)/2;   
      for (int b = 1; b <= a; b++)
{   
            for (int c = b ; c < a ; c++)
{
                System.out.print(" ");
}
            for (int d = 1; d <= 2 * b - 1; d++)
{            
                System.out.print("*");
}
            System.out.println();
}
      for (int b = a - 1; b >= 1; b--)
{
            for (int c = 1; c <= a - i; c++)
{
                System.out.print(" ");
}
            for (int d = 2 * b - 1; d > 0; d--)
{
                System.out.print("*");
}

      System.out.println();
}
}
}

liuzhengyuan 发表于 2020-4-29 09:06:54

本帖最后由 liuzhengyuan 于 2020-4-29 11:44 编辑

>>> def e9(s):
        layer = int(s)
        for i in range(1, layer):
                print(' ' * (layer - i), end = '')
                print('*' * i, end = '')
                print('*' * (i - 1))
        for j in range(layer):
                print(' ' * j, end = '')
                print('*' * (layer - j), end = '')
                print('*' * (layer - j - 1))

               
>>> e9(4)

sunrise085 发表于 2020-4-29 09:11:21

本帖最后由 sunrise085 于 2020-4-29 09:12 编辑

while True:
    temp=input("请输入要打印的层数:\n")
    try:
      num=int(temp)
      break
    except:
      print("输入错误,您输入的不是整数!")
for i in range(num*2-1):
    print(' '*(abs(num-i-1)),end='')
    print('*'*(2*(num-abs(num-i-1))-1))


去掉输入异常判断后就4行代码

num=int(input("请输入要打印的层数:\n"))
for i in range(num*2-1):
    print(' '*(abs(num-i-1)),end='')
    print('*'*(2*(num-abs(num-i-1))-1))

qiuyouzhi 发表于 2020-4-29 09:12:23

本帖最后由 qiuyouzhi 于 2020-4-29 09:34 编辑

result =

for each in result:
    print(' ' * (((result[-1] - each) // 2)+1) + '*' * each)

for each in result[:-1][::-1]:
    print(' ' * (((result[-1] - each) // 2)+1) + '*' * each)

压缩..

a-_- 发表于 2020-4-29 09:13:58

占楼

Hello. 发表于 2020-4-29 09:19:58

wuqramy 发表于 2020-4-29 09:02


好简洁 ..{:10_266:}

wuqramy 发表于 2020-4-29 09:21:07

Hello. 发表于 2020-4-29 09:19
好简洁 ..

{:10_335:}

March2615 发表于 2020-4-29 09:23:38

n = eval(input('enter row number:'))
for i in range(2 * n - 1):
    print(('*' * (2 * i + 1)).center(2 * n - 1, ' ') if i < n else ('*' * (4 * n - 2 * i - 3)).center(2 * n - 1, ' '))
页: [1] 2 3 4 5
查看完整版本: 小白Python练习册(9)【鱼币福利】