爱意随风起9306 发表于 2022-12-21 22:22:40

如何让这段代码输入多个数字,然后在用输入的多个数字去输出结果

sum=0
none=1
try:
    while(none):
      N=int(input())
      if N>0 and N<=1000:
            none=0
    for i in range(1,N+1):
            sum=sum+i
    print(sum)
except EOFError:
    pass


现在只能输入一个数字跟输出一个结果,我想输入多个数字跟输出多个结果

suchocolate 发表于 2022-12-21 22:43:30

try:
    while True:
      data = []
      numbers = input('Please input some numbers, such as: 12,34,30 \n').split(',')
      for num in numbers:
            num = int(num)
            if 0 < num <= 1000:
                data.append(num)
      if len(data) == len(numbers):
            break
    result = []
    for num in data:
      total = 0
      for i in range(1, num + 1):
            total += i
      result.append(total)
    print(result)
except EOFError:
    pass

爱意随风起9306 发表于 2022-12-22 12:20:39

suchocolate 发表于 2022-12-21 22:43


我的意思是
输入10
         100
输出   55
          5050
这种格式的,兄弟你这个好像有点复杂了

suchocolate 发表于 2022-12-22 13:35:51

本帖最后由 suchocolate 于 2022-12-22 14:08 编辑

爱意随风起9306 发表于 2022-12-22 12:20
我的意思是
输入10
         100


1) input这种函数,当你输入回车后它就认为是输入结束了,所以这种输入不支持
10回车
100回车
2)你可以把split里面的换成空格,可以用作为分割符号,输入:10 22 33 这种就可以了
3)按照你的旧脚本的方式写的,已经不算复杂了,你可以根据自己的需要修改。
4)要是按照我的思路,函数应该各自负责自己的任务,录入数据就做录入的工作,负责计算就负责计算。实际工作也时这么分工的,而且数据一般不会input输入,可以从别的源头导入。
def input_data():
    while True:
      numbers =
      data =
      if len(data) == len(numbers):
            return data


def main():
    data =
    # data = input_data()
    print()


if __name__ == "__main__":
    main()

qq1151985918 发表于 2022-12-22 13:41:12

def foo():
    sum=0
    none=1
    try:
      while(none):
            N=int(input())
            if N>0 and N<=1000:
                none=0
      for i in range(1,N+1):
                sum=sum+i
      print(sum)
    except EOFError:
      pass

if __name__ == '__main__':
    x = int(input('输入循环次数:'))
    for i in range(x):
      print(f'\n第{i+1}次:')
      foo()

爱意随风起9306 发表于 2022-12-22 14:10:05

suchocolate 发表于 2022-12-22 13:35
1) input这种函数,当你输入回车后它就认为是输入结束了,所以这种输入不支持
10回车
100回车


输入一个数 n,你的任务是计算 1 + 2+...+n 的结果.

输入
输入的数据有多行,每行一个整数 n (1 \le n \le 1000)n(1≤n≤1000),以 EOF 表示输入结束。

输出
输出数据同样有多行,每行输出一个整数,该整数的值为 1 + 2 +...+n。

样例
输入
10
100
输出
55
5050

我想做符合这个要求的代码,可能是我出发点错了,旧脚本可能不对,兄弟,帮我看看

suchocolate 发表于 2022-12-22 14:25:54

爱意随风起9306 发表于 2022-12-22 14:10
输入一个数 n,你的任务是计算 1 + 2+...+n 的结果.

输入


要不你把原题网页或截图发出来吧

爱意随风起9306 发表于 2022-12-22 14:29:38

suchocolate 发表于 2022-12-22 14:25
要不你把原题网页或截图发出来吧

额,怎么发截图?我刚接触论坛两天

爱意随风起9306 发表于 2022-12-22 14:39:09

suchocolate 发表于 2022-12-22 14:25
要不你把原题网页或截图发出来吧

https://thumbnail1.baidupcs.com/thumbnail/958e2a606nffe84da763804121124765?fid=1590253992-250528-210973490179222&time=1671688800&rt=yt&sign=FDTAER-DCb740ccc5511e5e8fedcff06b081203-L5RypR%2BlQC8%2B%2F8evmkPGbxXO9lg%3D&expires=24h&chkv=0&chkbd=0&chkpc=&dp-logid=394886028&dp-callid=0&size=c1463_u915&quality=90&vuk=-&ft=video&autopolicy=1

lvk 发表于 2022-12-22 15:34:12

本帖最后由 lvk 于 2022-12-22 15:35 编辑

每次循环就input一次,但是最后计算的结果先暂时存在list里,等退出循环(遇到了EOF)后再使用for循环打印出来:
sum_list = []
try:
    while True:
      sum = 0
      N = int(input())
      for i in range(1, N + 1):
            sum = sum + i
      sum_list.append(sum)
except EOFError:
    pass
for num in sum_list:
    print(num)

lassiter 发表于 2022-12-22 15:51:53

你的缩进全是问题,给你调整后可以重复使用。
sum=0
none=1
try:
    while(none):
      N=int(input('请输入任意数字,当输入小于0或大于1000时退出:'))
      if N>0 and N<=1000:
            none=1
            for i in range(1,N+1):
                sum=sum+i                  
            print(sum)
      else:
            none=0
except EOFError:
    pass
页: [1]
查看完整版本: 如何让这段代码输入多个数字,然后在用输入的多个数字去输出结果