lyjlyj 发表于 2018-3-26 20:50:02

#-*- coding:utf-8 -*-

def mysum(*arg):
    sum = ""
    s = 0
    flag = 0
    for i in arg:
      s += i
      if flag == 0:
            sum = str(i)
            flag = 1
            continue
      if i >=0:
            sum += "+"+str(i)
      else:
            sum += str(i)
    sum += '=' + str(s)
    return sum

print(mysum(1,-1,2,3,-4))
print(mysum(-2,1,3,4,5,-3,4))

fan1993423 发表于 2018-3-26 21:08:50

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

我当时写也知道这个问题,不过了,看得懂就行,我也在借鉴其他鱼油的写法

fan1993423 发表于 2018-3-26 21:11:16

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

另外我看了下,4楼也有这个问题,要解决的话,用‘+’.join的方法最好也最简洁,你这个代码太复杂了。本来很简单的一个题

塔利班 发表于 2018-3-26 21:21:05

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

是啊,是没处理开头的+,不过当时题目也是没没要求正数开头,去掉开头的当然更完美了{:10_272:}

坑得飞起 发表于 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=='+':
                ss=ss
      print(ss+'='+str(s))

多谢版主认真指导

Chase_Kas 发表于 2018-3-26 23:01:51

本帖最后由 Chase_Kas 于 2018-3-26 23:03 编辑

塔利班 发表于 2018-3-26 21:21
是啊,是没处理开头的+,不过当时题目也是没没要求正数开头,去掉开头的当然更完美了

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

print(mysum(-7, 12,83, -99, 22, 0, 1))

塔利班 发表于 2018-3-26 23:16:47

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

恩,挺好

凌九霄 发表于 2018-3-27 09:34:48

本帖最后由 凌九霄 于 2018-3-27 09:37 编辑

def mysum(*nums):
    result = 0
    strnum = ''
    for index, value in enumerate(nums):
      if (index == 0 or value < 0):
            strnum += str(value)
      elif (index > 0):
            strnum += '+' + str(value)

      result += value

    return '{0}={1}'.format(strnum,str(result))

checkily 发表于 2018-3-27 15:09:41

本帖最后由 checkily 于 2018-3-27 15:16 编辑

def mysum(*parma):
    result = sum(parma)
    s = '+'.join().replace('+-', '-')
    return s+'='+str(result)

懒惰的天才 发表于 2018-3-28 15:40:15

做这个有鱼币的吗

dfh93@163.com 发表于 2018-4-1 16:54:49

本帖最后由 dfh93@163.com 于 2018-4-1 17:06 编辑

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

无名小白xyz 发表于 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 =
        num_list = s1.join(num_list) + '='+str(sum(num))
        if num_list == '+':
                num_list = num_list

        return num_list

hxgoto 发表于 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
    print(s+"="+str(sum(arg)))


mysum(1,2,4,-2,0,4,2,-5,9,21,-16)

776667 发表于 2018-5-8 17:10:50

def mysum(*x):
    sum_x = ''
    for i in x:
      if str(i) == '-':
            sum_x += str(i)
      else:
            sum_x += '+' + str(i)
    return ('%s=%s')%(sum_x,eval(sum_x))

子沙 发表于 2018-10-4 14:19:34

def mysum(*integer):
    result=str(integer)
    for each in integer:
      if each>=0:
            result+='+'+str(int(each))
      else:
            result+=str(int(each))
    return result+'='+str(sum(integer))
print(mysum(-7,12,83,-99,22,0,1))

foxiangzun 发表于 2019-1-26 14:19:16

def mysum(*params) :
      numList = []
      for i in params :
                if i >= 0 :
                        numList.append('+')
                        numList.append(str(i))
                else :
                        numList.append(str(i))
      numList.remove(numList)
      numList.append('=')
      numList.append(str(sum(params)))
      return ''.join(numList)

kinkon 发表于 2022-9-7 10:27:47

def mysum(arr):
    s = ''
    for a in arr:
      if a < 0:
            s += str(a)
      else:
            s += '+' + str(a)
    return s + '=' + str(sum(arr))

arr = [-7, 12,83, -99, 22, 0, 1]
print(mysum(arr))
页: 1 2 [3]
查看完整版本: Python:每日一题 170