鱼C论坛

 找回密码
 立即注册
查看: 3920|回复: 10

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

[复制链接]
发表于 2022-12-21 22:22:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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


现在只能输入一个数字跟输出一个结果,我想输入多个数字跟输出多个结果
最佳答案
2022-12-22 15:34:12
本帖最后由 lvk 于 2022-12-22 15:35 编辑

每次循环就input一次,但是最后计算的结果先暂时存在list里,等退出循环(遇到了EOF)后再使用for循环打印出来:
  1. sum_list = []
  2. try:
  3.     while True:
  4.         sum = 0
  5.         N = int(input())
  6.         for i in range(1, N + 1):
  7.             sum = sum + i
  8.         sum_list.append(sum)
  9. except EOFError:
  10.     pass
  11. for num in sum_list:
  12.     print(num)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-12-21 22:43:30 | 显示全部楼层
  1. try:
  2.     while True:
  3.         data = []
  4.         numbers = input('Please input some numbers, such as: 12,34,30 \n').split(',')
  5.         for num in numbers:
  6.             num = int(num)
  7.             if 0 < num <= 1000:
  8.                 data.append(num)
  9.         if len(data) == len(numbers):
  10.             break
  11.     result = []
  12.     for num in data:
  13.         total = 0
  14.         for i in range(1, num + 1):
  15.             total += i
  16.         result.append(total)
  17.     print(result)
  18. except EOFError:
  19.     pass
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-22 12:20:39 | 显示全部楼层

我的意思是
输入  10
         100
输出   55
          5050
这种格式的,兄弟你这个好像有点复杂了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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输入,可以从别的源头导入。
  1. def input_data():
  2.     while True:
  3.         numbers = [int(i) for i in input('Please input some numbers, such as 12,22,30\n').split(',')]
  4.         data = [i for i in numbers if 0 < i <= 1000]
  5.         if len(data) == len(numbers):
  6.             return data


  7. def main():
  8.     data = [1, 2, 3]
  9.     # data = input_data()
  10.     print([sum(range(i + 1)) for i in data])


  11. if __name__ == "__main__":
  12.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-22 13:41:12 | 显示全部楼层
  1. def foo():
  2.     sum=0
  3.     none=1
  4.     try:
  5.         while(none):
  6.             N=int(input())
  7.             if N>0 and N<=1000:
  8.                 none=0
  9.         for i in range(1,N+1):
  10.                 sum=sum+i
  11.         print(sum)
  12.     except EOFError:
  13.         pass

  14. if __name__ == '__main__':
  15.     x = int(input('输入循环次数:'))
  16.     for i in range(x):
  17.         print(f'\n第{i+1}次:')
  18.         foo()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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

我想做符合这个要求的代码,可能是我出发点错了,旧脚本可能不对,兄弟,帮我看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

输入

要不你把原题网页或截图发出来吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-22 14:29:38 | 显示全部楼层
suchocolate 发表于 2022-12-22 14:25
要不你把原题网页或截图发出来吧

额,怎么发截图?我刚接触论坛两天
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-22 14:39:09 | 显示全部楼层
suchocolate 发表于 2022-12-22 14:25
要不你把原题网页或截图发出来吧


                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-22 15:34:12 | 显示全部楼层    本楼为最佳答案   
本帖最后由 lvk 于 2022-12-22 15:35 编辑

每次循环就input一次,但是最后计算的结果先暂时存在list里,等退出循环(遇到了EOF)后再使用for循环打印出来:
  1. sum_list = []
  2. try:
  3.     while True:
  4.         sum = 0
  5.         N = int(input())
  6.         for i in range(1, N + 1):
  7.             sum = sum + i
  8.         sum_list.append(sum)
  9. except EOFError:
  10.     pass
  11. for num in sum_list:
  12.     print(num)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-22 15:51:53 | 显示全部楼层
你的缩进全是问题,给你调整后可以重复使用。
  1. sum=0
  2. none=1
  3. try:
  4.     while(none):
  5.         N=int(input('请输入任意数字,当输入小于0或大于1000时退出:'))
  6.         if N>0 and N<=1000:
  7.             none=1
  8.             for i in range(1,N+1):
  9.                 sum=sum+i                    
  10.             print(sum)
  11.         else:
  12.             none=0
  13. except EOFError:
  14.     pass
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 15:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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