鱼C论坛

 找回密码
 立即注册
查看: 9807|回复: 80

[已解决]小白Python练习册(9)【鱼币福利】

[复制链接]
发表于 2020-4-29 08:51:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天又是我老王来出题

今天没什么可说的~~
直接上题



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

Snipaste_2020-04-29_08-44-29.png

回复查看参考答案啊
游客,如果您要查看本帖隐藏内容请回复



如果喜欢,别忘了评分订阅哟(传送门)!
最佳答案
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()

评分

参与人数 5荣誉 +14 鱼币 +11 贡献 +11 收起 理由
Yoru + 3 + 3 + 3
熊顺祥 + 5 + 5 + 3 5
Twilight6 + 1 + 1 鱼C有你更精彩^_^
冰河星云 + 3 + 3 评个分
1012327963 + 2 + 2 + 2

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-29 08:53:12 | 显示全部楼层

回帖奖励 +3 鱼币

沙发
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-29 08:55:33 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +3 鱼币

本帖最后由 冰河星云 于 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()

评分

参与人数 1荣誉 +3 鱼币 +1 贡献 +2 收起 理由
WangJS + 3 + 1 + 2 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 08:56:06 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 08:56:27 | 显示全部楼层

回帖奖励 +3 鱼币

本帖最后由 March2615 于 2020-4-29 09:15 编辑
n = eval(input('enter row number:'))
n_list = [_ for _ in range(1, 2 * n - 1, 2)] + [_ for _ in range(2 * n - 1, 0, -2)]
for i in range(2 * n - 1):
    print(('*' * n_list[i]).center(2 * n - 1, ' '))

评分

参与人数 1鱼币 +2 贡献 +1 收起 理由
WangJS + 2 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 08:56:46 | 显示全部楼层
我想要鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-29 08:58:17 | 显示全部楼层

不是给你了么?
别忘了答题啊!

评分

参与人数 1贡献 +1 收起 理由
冰河星云 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 09:02:22 | 显示全部楼层

回帖奖励 +3 鱼币

本帖最后由 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) * '*')

评分

参与人数 1荣誉 +1 贡献 +2 收起 理由
WangJS + 1 + 2 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 09:02:29 | 显示全部楼层
WangJS 发表于 2020-4-29 08:58
不是给你了么?
别忘了答题啊!

简易不公布答案

设个悬赏
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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()



建议设个悬赏
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 09:03:46 | 显示全部楼层

回帖奖励 +3 鱼币

本帖最后由 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 = [i for i in range(1,2*x,2)]
a[x-1:x]=list(a[::-1])
for i in a:
    print(' '*((2*x)-(a.index(i))),'*'*i)

评分

参与人数 1鱼币 +1 贡献 +1 收起 理由
WangJS + 1 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 09:04:39 | 显示全部楼层

回帖奖励 +3 鱼币

看着感觉有点懵……没有思路
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 09:05:22 | 显示全部楼层

回帖奖励 +3 鱼币

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

你们都用Python,我来换个语言
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();  
 }  
  }  
} 

评分

参与人数 1荣誉 +1 鱼币 +2 贡献 +1 收起 理由
WangJS + 1 + 2 + 1 虽然看不懂~~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 09:06:54 | 显示全部楼层

回帖奖励 +3 鱼币

本帖最后由 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 09:11:21 | 显示全部楼层

回帖奖励 +3 鱼币

本帖最后由 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))

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
WangJS + 2 + 2 + 2 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 09:12:23 | 显示全部楼层

回帖奖励 +3 鱼币

本帖最后由 qiuyouzhi 于 2020-4-29 09:34 编辑
result = [i for i in range(1, int(input("请输入需要打印几层菱形:")) * 2 + 1) if i % 2]

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

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

压缩..

评分

参与人数 1鱼币 +1 贡献 +1 收起 理由
WangJS + 1 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 09:13:58 | 显示全部楼层
占楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-29 09:19:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 09:21:07 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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鱼币 +3 收起 理由
WangJS + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 09:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表