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