鱼C论坛

 找回密码
 立即注册
123
返回列表 发新帖
楼主: 冬雪雪冬

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

[复制链接]
发表于 2018-3-26 20:50:02 | 显示全部楼层
  1. #-*- coding:utf-8 -*-

  2. def mysum(*arg):
  3.     sum = ""
  4.     s = 0
  5.     flag = 0
  6.     for i in arg:
  7.         s += i
  8.         if flag == 0:
  9.             sum = str(i)
  10.             flag = 1
  11.             continue
  12.         if i >=0:
  13.             sum += "+"+str(i)
  14.         else:
  15.             sum += str(i)
  16.     sum += '=' + str(s)
  17.     return sum

  18. print(mysum(1,-1,2,3,-4))
  19. print(mysum(-2,1,3,4,5,-3,4))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 21:08:50 | 显示全部楼层
qichq_7 发表于 2018-3-26 20:45
第一个数字是正数时打印会是: +8+12+83-99+22+0+1=27,有点不合题意了哈。

我当时写也知道这个问题,不过了,看得懂就行,我也在借鉴其他鱼油的写法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 21:11:16 | 显示全部楼层
qichq_7 发表于 2018-3-26 20:45
第一个数字是正数时打印会是: +8+12+83-99+22+0+1=27,有点不合题意了哈。

另外我看了下,4楼也有这个问题,要解决的话,用‘+’.join的方法最好也最简洁,你这个代码太复杂了。本来很简单的一个题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 21:21:05 | 显示全部楼层
fan1993423 发表于 2018-3-26 21:11
另外我看了下,4楼也有这个问题,要解决的话,用‘+’.join的方法最好也最简洁,你这个代码太复杂了。本 ...

是啊,是没处理开头的+,不过当时题目也是没没要求正数开头,去掉开头的当然更完美了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 22:12:13 | 显示全部楼层
坑得飞起 发表于 2018-3-24 22:49
def fun(*a):
        s,ss=0,''
        for i in a :

def fun(*a):
        s,ss=0,''
        for i in a :
                s+=i
                if i>=0 :
                        ss+='+'+str(i)
                else :
                        ss+=str(i)
        if ss[0]=='+':
                ss=ss[1:]
        print(ss+'='+str(s))

多谢版主认真指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 23:01:51 | 显示全部楼层
本帖最后由 Chase_Kas 于 2018-3-26 23:03 编辑
塔利班 发表于 2018-3-26 21:21
是啊,是没处理开头的+,不过当时题目也是没没要求正数开头,去掉开头的当然更完美了


看了你的改了下就完美解决第一个数的问题了,把第一个数赋值给初始字符串就行啦~~感觉看你们这些大佬的答案,每一个每日一题都能学到很多~~
  1. def mysum(*nums):
  2.     x = str(nums[0])
  3.     for each in nums[1:]:
  4.         x += '%+d'%each
  5.     return x + '=' + str(eval(x))

  6. print(mysum(-7, 12,83, -99, 22, 0, 1))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 23:16:47 | 显示全部楼层
Chase_Kas 发表于 2018-3-26 23:01
看了你的改了下就完美解决第一个数的问题了,把第一个数赋值给初始字符串就行啦~~感觉看你们这些大佬的 ...

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

使用道具 举报

发表于 2018-3-27 09:34:48 | 显示全部楼层
本帖最后由 凌九霄 于 2018-3-27 09:37 编辑
  1. def mysum(*nums):
  2.     result = 0
  3.     strnum = ''
  4.     for index, value in enumerate(nums):
  5.         if (index == 0 or value < 0):
  6.             strnum += str(value)
  7.         elif (index > 0):
  8.             strnum += '+' + str(value)

  9.         result += value

  10.     return '{0}={1}'.format(strnum,str(result))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-27 15:09:41 | 显示全部楼层
本帖最后由 checkily 于 2018-3-27 15:16 编辑
  1. def mysum(*parma):
  2.     result = sum(parma)
  3.     s = '+'.join([str(i) for i in parma]).replace('+-', '-')
  4.     return s+'='+str(result)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-28 15:40:15 | 显示全部楼层
做这个有鱼币的吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-1 16:54:49 | 显示全部楼层
本帖最后由 dfh93@163.com 于 2018-4-1 17:06 编辑

[quote]dfh93@163.com 发表于 2018-3-24 15:28
def mysum(*t):
    num_sum=0
    num_str=''
    for i in range(len(t)):
        num_sum+=t
        if t<0:
            if i==0:
                num_str+=str(t)
            else:
                num_str+=str(t)
        else:
            if i==0:
                num_str+=str(t)
            else:
                num_str+='+'+str(t)
    num_str+='='+str(num_sum)
    print(num_str)        
    return num_sum
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-1 21:11:27 | 显示全部楼层
def ys(x):
        if(x>0):
                mstr = "+"+str(x)
        else:
                mstr = str(x)
        return mstr;

def mysum(*num):
        s1 = ''
        num_list = [ys(i) for i in num]
        num_list = s1.join(num_list) + '='+str(sum(num))
        if num_list[0] == '+':
                num_list = num_list[1:]

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

使用道具 举报

发表于 2018-5-6 21:26:00 | 显示全部楼层
def mysum(*arg):
    s = ""
    for i in arg:
        if i >= 0:
            s += "+" + str(i)
        else:
            s += str(i)
    s = s[1:]
    print(s+"="+str(sum(arg)))


mysum(1,2,4,-2,0,4,2,-5,9,21,-16)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-8 17:10:50 | 显示全部楼层
  1. def mysum(*x):
  2.     sum_x = ''
  3.     for i in x:
  4.         if str(i)[0] == '-':
  5.             sum_x += str(i)
  6.         else:
  7.             sum_x += '+' + str(i)
  8.     return ('%s=%s')%(sum_x,eval(sum_x))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-4 14:19:34 | 显示全部楼层
  1. def mysum(*integer):
  2.     result=str(integer[0])
  3.     for each in integer[1:]:
  4.         if each>=0:
  5.             result+='+'+str(int(each))
  6.         else:
  7.             result+=str(int(each))
  8.     return result+'='+str(sum(integer))
  9. print(mysum(-7,12,83,-99,22,0,1))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-26 14:19:16 | 显示全部楼层
  1. def mysum(*params) :
  2.         numList = []
  3.         for i in params :
  4.                 if i >= 0 :
  5.                         numList.append('+')
  6.                         numList.append(str(i))
  7.                 else :
  8.                         numList.append(str(i))
  9.         numList.remove(numList[0])
  10.         numList.append('=')
  11.         numList.append(str(sum(params)))
  12.         return ''.join(numList)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-7 10:27:47 | 显示全部楼层
  1. def mysum(arr):
  2.     s = ''
  3.     for a in arr:
  4.         if a < 0:
  5.             s += str(a)
  6.         else:
  7.             s += '+' + str(a)
  8.     return s + '=' + str(sum(arr))

  9. arr = [-7, 12,83, -99, 22, 0, 1]
  10. print(mysum(arr))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 15:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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