象棋爱好者 发表于 2022-11-30 17:35:02

同一行?

a=1
s=0
while a<=100:
    print(a,'+')
    s=s+a
    a=a+1
print('=')
print(s)
   

象棋爱好者 发表于 2022-11-30 17:35:41

怎么变成同一行

zhangjinxuan 发表于 2022-11-30 17:45:05

本帖最后由 zhangjinxuan 于 2022-11-30 17:55 编辑


a=1
s=0
while a<=100:
    print(a,'+', end = '') #这里很关键,因为 print 默认 end 为换行,也就是说,你不设置 end 参数的情况下,print 打印完后会自动加一个换行,这里把 end 设为空串,表示输出了 a 和 ‘+’ 不换行,也不打印任何内容
    #如果你为数字后面的空格还不爽,可以写成 print(a,'+', end = '', sep = ''),sep 是分隔符,打印完一个参数的内容就输出一个 sep,默认情况 sep = ' ',也就是空格,所以如果你不修改 sep 的前提下,print 每打印完一个参数就会多输出一个空格
    s=s+a
    a=a+1
print('=', end = '') #这里同理
print(s)

其实上你这输出的也不对,因为最后一个数字后面有一个 +,所以你还要特判一下:

a=1
s=0
while a<=100:
    print(a, end = '')
    if a != 100:
      print('+', end = '')
    s=s+a
    a=a+1
print('=', end = '')
print(s)

运行实况:
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100=5050

可以给一个最佳吗{:10_254:}

Mefine 发表于 2022-11-30 18:38:57

楼主是想问一行代码实现1-100总和吗?
print(sum(range(1,101)))

jhq999 发表于 2022-11-30 19:11:00


s=''
a=1
while a<100:
    s+=str(a)+'+'
    a+=1
s+=str(a)+'='
print(s,(1+a)*a//2)

jackz007 发表于 2022-11-30 20:35:33

a = s = 1
print(a , end = '')
while a < 100 :
    a += 1
    s += a
    print('+' , a , sep = '' , end = '')
print('=' , s , sep = '')

Twilight6 发表于 2022-12-4 10:06:01

象棋爱好者 发表于 2022-11-30 17:35
怎么变成同一行


print 函数有个 end参数,默认值为 \n 换行符

只要将 end 参数重新赋值后,覆盖了 \n 换行符也就可以达到不换行的目的

另外,这里的最后一个 100 会多一个 + 号,可以用 if 判断来分开打印:

参考代码1:
a = 1
s = 0
while a <= 100:
    if a == 100:
      print(a, end=" ")
    else:
      print(a, '+', end=" ")
    s = s + a
    a = a + 1
print('=', s)

象棋爱好者 发表于 2022-12-7 16:55:37

zhangjinxuan 发表于 2022-11-30 17:45
其实上你这输出的也不对,因为最后一个数字后面有一个 +,所以你还要特判一下:




太感谢了!

猪猪以都都 发表于 2022-12-8 09:12:08

都解决了我就来凑个热闹吧
页: [1]
查看完整版本: 同一行?