鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: ooxx7788

[技术交流] Python: 每日一题 62

[复制链接]
发表于 2017-6-13 13:50:42 | 显示全部楼层

他的要求是不要在函数里面打印,结果是用来返回的,不是用来打印的,这是这个题目唯一值得思考的地方
return结果比print难一些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-13 13:52:08 | 显示全部楼层
SixPy 发表于 2017-6-10 01:12
str自带 center 方法,何必舍近求远~


这个厉害了,你这么一说我就想起来 ,str的确自带了居中的这个方法,
这都能想到,厉害了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-17 19:58:23 From FishC Mobile | 显示全部楼层
def diamond(n):
    m=1
    a=[]
    if n<0 or n%2==0:
        return None
    else:
        while m<n:
            a.append('  '*((n-m)//2)+'*'*m+'  '*((n-m)//2))
            m+=2
        else:
            while m>0:
                a.append('  '*((n-m)//2)+'*'*m+'  '*((n-m)//2))
                m-=2
    return '\n'.join(a,)
print(diamond(17))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-25 19:41:13 | 显示全部楼层
利用 y=|x| 函数的特性,正是空格的规律
def diamond(n):
    """diamond(n) -> str, print diamond which sized n (integer)"""
    if n<=0 or n%2==0:
        return None
    else:
        result = ""
        for i in range(-(n-1)//2,(n+1)//2): # 利用函数 y=abs(x)
            result += " "*abs(i)+"*"*(n-abs(i)*2)+"\n" # 空格数+星号数
        return result
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-6 10:58:49 | 显示全部楼层
def diamond(x):
    if x < 0 or x % 2 == 0:
        return None
    else:
        for i in range(1, x//2+2):
            print(' ' * (8-i) + '*' * (2*i-1))
        for i in range(x//2+1, x+1):
            print(' ' * abs(7-i) + '*' * (x - 2*(i-7)))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-25 00:59:20 | 显示全部楼层
def func(num):
    flag, status = 1, 2
    while flag > 0:
        print('{0:^{1}}'.format('*'*flag,num))
        flag += status
        if flag >= num: status = -2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-25 16:48:11 | 显示全部楼层
n = int(input("please enter one number:"))
if n % 2 ==0 or n < 0:
    print("please enter odd number")
else:
    x = 1
    z = int((n-1)/2)
    y = 1
    while True:
        print(" "*z,"*"*x,end ="\n" )
        x = x + 2
        z = z - 1
        if x > n:
            break
    while True:
        print(" "*y,"*" * (n-2),end = "\n")
        y = y + 1
        n = n - 2
        if n < 0:
            break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-11 21:56:00 | 显示全部楼层
def diamond(n):
        if n % 2 == 0 or n < 0:
                return None
        else:
                s = ''
                for i in range(n // 2 + 1):
                        s += (n // 2 - i) * ' ' + (2 * i + 1) * '*' + '\n'
                for k in range(n // 2):
                        s += (k + 1) * ' ' + (n - 2 - 2 * k) * '*' + '\n'
                return s
print(diamond(21))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2018-7-31 15:31:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-14 17:11:57 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-14 17:22:20 | 显示全部楼层
def fun62(num):
    str1 = ""
    if not num%2 or num < 0:
        return None
    for each in range(1,num+3):
        if each < (num+3)//2:
            star = 2 * each - 1
        else:
            star = 2 * (num - each) + 1
        str1 += " " * ((num-star)//2) + "*" * star + "\n"
    return str1

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

使用道具 举报

发表于 2019-1-14 17:23:36 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-2 13:15:02 | 显示全部楼层
看着简单,其实不简单。
def pstars(n):
    if n < 0 or n % 2 == 0:
        return None
    for i in range(1, int((n+3)/2)):
        print(' '*(n-i-2) + '*'*(2*i-1) + ' '*(n-i-2))
    for j in range(int((n+3)/2), n+1):
        print(' '*(j-3) + '*'*(2*n-2*j+1) + ' '*(j-3))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-17 09:44:12 | 显示全部楼层
不知道为啥是歪的
def diamond(num):
          if num%2 == 0 or num <0:
                    return None
          result =[]
          new_result = []
          a = num // 2 + 1
          max_num = 2*a +1
          m_num = max_num//2
          for each in range(1,max_num,2):
                    result.append(each)
          for each in range(max_num,0,-2):
                    result.append(each)
          for each in result:
                    print(' '*((max_num-each)//2),end='')
                    for i in range(each):
                              print('*',end='')
                    print()

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

使用道具 举报

发表于 2019-12-29 00:32:10 | 显示全部楼层
膜拜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-16 17:46:06 | 显示全部楼层
import nummpy

def diamond(num):
   pass



if n % 2 != 0 or n >= 0:
    num = int(input('请输入奇数:'))
    print(diamond(num))
else:
    num = int(input('请重新输入奇数: '))
    print(diamond(num))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-17 14:38:03 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 23:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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