鱼C论坛

 找回密码
 立即注册
楼主: 冬雪雪冬

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

[复制链接]
发表于 2018-3-24 21:46:01 | 显示全部楼层
def mysum(*numbers):
    my_sum = 0
    for x in numbers:
        if x == abs(x):
            my_sum += x
        else:
            my_sum -= abs(x)
    return my_sum

点评

没有打印算式  发表于 2018-3-26 20:02

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
冬雪雪冬 + 1 + 1

查看全部评分

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

使用道具 举报

发表于 2018-3-24 22:00:59 | 显示全部楼层
本帖最后由 graceasyi 于 2018-3-24 22:02 编辑

def mysum(*a):
        s = 0
        out = ''
        for e in a:
                s += e
                if e>=0:
                        out += '+' + str(e)
                else:
                        out += str(e)
        out += '=' + str(s)
        return out if out[0]=='-' else out[1:]


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

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-24 22:48:38 | 显示全部楼层

def mysum(*x):
    a=[a for a in x]
    l=''
    for b in a:
        if b>=0:
            l+='+'+str(b)
        else:
            l+=str(b)
    print(l,'=',sum(a))

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-24 22:49:18 | 显示全部楼层
本帖最后由 坑得飞起 于 2018-3-24 22:57 编辑

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))

点评

0前面没有加号  发表于 2018-3-26 20:04

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
冬雪雪冬 + 2 + 2

查看全部评分

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

使用道具 举报

发表于 2018-3-24 23:38:27 | 显示全部楼层
def mysum(*numlist):
    strsum = ''
    for each in range(len(numlist)):
        if numlist[each] < 0 or each == 0:
            strsum += str(numlist[each])
        else:
            strsum += '+' + str(numlist[each])
    strsum += '=' + str(sum(numlist))
    return strsum

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

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-25 09:42:01 | 显示全部楼层
def mysum(*arg):
    sum = 0
    str1 =''
    for i in arg:
        sum = sum + i
        if i <0:
            str1 = str1+str(i)
        else:
            str1 = str1 +'+'+str(i)
    str1 = str1 +'='+str(sum)
    return str1

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

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-25 09:49:36 | 显示全部楼层
def mysum(*args):
        result = args[0]
        resstr = ''
        resstr += str(args[0])
        for each in args[1:]:
                if each < 0:
                        resstr += str(each)
                else:
                        resstr += '+'+str(each)
                result += each
        resstr += '='+str(result)
        return resstr

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-25 10:28:59 | 显示全部楼层
def mysum(*args):
        result = sum(args)
        txt = str(args[0])
        for i in args[1:]:
                if i>=0:
                        txt+='+'
                txt+=str(i)
        return txt+'='+str(result)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-25 10:35:48 | 显示全部楼层
def mysum(*args):

    i =len(args)
    while i !=0:
        print("%d"%(args[len(args)-i]),end ="")
        i-=1
        if i!=0:
            print("+",end ="")
        else:
            print("=",end ="")
    i = len(args)
    j = 0
    while i!=0:
        j+=args[j-1]
        i-=1
    print(j)
mysum(8,-2,-9,0,8,6,3)
8+-2+-9+0+8+6+3=2

点评

计算有误  发表于 2018-3-26 20:09
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-25 11:01:47 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-25 12:19:16 | 显示全部楼层
乱拼乱凑总算是有了答案
def mysum(*args):
    temp = ''
    for i in args:
        if i < 0:  
            temp = temp[0:-1] + str(i) + '+'
            continue    
        temp += str(i) + '+'
        
    temp = temp[0 :-1] + '='
    print(temp,sum(args))  

mysum(-1,2,0,-4,5,-6,-7)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-25 12:35:11 | 显示全部楼层
本帖最后由 lan358088 于 2018-3-25 18:38 编辑

def mysum(*args):
    new=[]
    num=0
    for i in args:
        num +=i
    for i in args:
        if i<0:
            aa=('-'+str(abs(i)))
        else:
            aa=('+'+str(i))
        new.append(aa)
    new.append('=')
    new.append(str(num))
    if int(new[0])>=0:
        new[0]=str(int(new[0]))
    print (''.join(new))
mysum(-7, 12,83, -99, 22, 0, 1)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-25 22:18:36 | 显示全部楼层
本帖最后由 Chase_Kas 于 2018-3-26 22:59 编辑

貌似加一个*号就可以传入多个参数了~~(刚开始做的时候真不知道怎么传递多个参数,42课还是43课作业就提到了哈哈,才回想起以前讲过,只是忘记了~~)
def mysum(*nums):
    string = str(nums[0])
    cnt = nums[0]
    for each in nums[1:]:
        if each < 0:
            string += str(each)
        else:
            string += ('+' + str(each))
        cnt += each
    return string + '=' + str(cnt)

print(mysum(-7, 12,83, -99, 22, 0, 1))
参考了4楼大哥的答案~~才想起讲字符串格式化的时候有一个格式化操作符辅助命令'+'可以显示正号~~厉害了~~还有eval()这个BIF也是第一见到~~涨姿势咯~~
def mysum(*nums):
    string = str(nums[0])
    for each in nums[1:]:
        string += '%+d'%each
    return string + '=' + str(eval(string))

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

点评

要求输入多个参数,不是用一个列表作为单个参数传入  发表于 2018-3-26 20:11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-25 22:42:34 | 显示全部楼层
def mysum(*arg):
    totle = 0
    a = ''
    for i in arg:
        if i >= 0:
            a += '+' + str(i)
        else:
            a += str(i)
        totle += i
    return a + '=' +str(totle)
            

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-25 22:43:50 | 显示全部楼层
def mysum(*args):
    sum = 0
    str1 = ''
    for each in args:
        sum += each
        if each >= 0:
            str1 += '+' + str(each)
        else:
            str1 += str(each)
    if str1[0] == '+':
        str1 = str1[1:len(str1)]
    return sum,str1


p = mysum(-1,2,3,-2,5,0)
print(p[1] + '=' + str(p[0]))

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-25 23:26:51 | 显示全部楼层
def mysum(*args):
    sum1=sum(args)
    str1="%+d"*len(args)+"="+str(sum1) 
    return print(str1%args)
y=mysum(1,-1,0,5,6,7,-8)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-26 13:48:10 | 显示全部楼层
def mysum(*num):
        ss,s='',0
        for n in num:
                sign='+' if n>=0 else ''
                ss+=sign+str(n)
                s+=n
        if num[0]>0:
                ss=ss[1:]
        return ss+'='+str(s)

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

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-26 14:36:27 | 显示全部楼层
#周末不开机。。。没鱼币,难受=。=


def mysum(*argv):
        string = ''
        result = 0
        for i in argv:
                if i < 0:
                        string += str(i)
                else:
                        string += '+' + str(i)
                result += i
        result1 = '=' + str(result)
       
        out = string + result1
        print(out)





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

点评

有鱼币  发表于 2018-3-26 20:13

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-3-26 16:18:22 | 显示全部楼层
def mysum( arg1, *vartuple ):
    mysum=arg1
    for var in vartuple:
        mysum += var
    print(mysum)

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

点评

还要打印算式  发表于 2018-3-26 20:14

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
冬雪雪冬 + 1 + 1

查看全部评分

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

使用道具 举报

发表于 2018-3-26 20:45:56 | 显示全部楼层
fan1993423 发表于 2018-3-24 22:48
def mysum(*x):
    a=[a for a in x]
    l=''

第一个数字是正数时打印会是: +8+12+83-99+22+0+1=27,有点不合题意了哈。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 16:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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