鱼C论坛

 找回密码
 立即注册
查看: 3311|回复: 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循环打印出来:
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我的意思是
输入  10
         100
输出   55
          5050
这种格式的,兄弟你这个好像有点复杂了
想知道小甲鱼最近在做啥?请访问 -> 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输入,可以从别的源头导入。
def input_data():
    while True:
        numbers = [int(i) for i in input('Please input some numbers, such as 12,22,30\n').split(',')]
        data = [i for i in numbers if 0 < i <= 1000]
        if len(data) == len(numbers):
            return data


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


if __name__ == "__main__":
    main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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()
想知道小甲鱼最近在做啥?请访问 -> 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

我想做符合这个要求的代码,可能是我出发点错了,旧脚本可能不对,兄弟,帮我看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

输入

要不你把原题网页或截图发出来吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

额,怎么发截图?我刚接触论坛两天
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 23:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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