首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我写=时,A怎么写一个停止的脚本?

当我写=时,A怎么写一个停止的脚本?
EN

Stack Overflow用户
提问于 2020-10-28 19:51:41
回答 3查看 132关注 0票数 0

我正在尝试编写一个python脚本:我输入数字,当我输入=时,它将把所有前面的数字相加。我试过了,但它不起作用:

代码语言:javascript
复制
a= int(input())
while a != '=':
  szum += a
  if a == '=':
    break
    print(szum)

如果可能的话,我希望用while/ if /else函数来解决这个问题。

EN

回答 3

Stack Overflow用户

发布于 2020-10-28 19:56:48

Raymond Hettinger的Transforming Code into Beautiful, Idiomatic Python对这个问题有一个很好的解决方案;iter()的双参数形式

代码语言:javascript
复制
# NOTE: Missing parens is intentional! iter's two-argument form takes
# a callable that can be invoked with no args (`input` -> `input()`),
# and the sentinel value to stop at.
#
# It yields consecutive return values from `input()` until '=' is found.

total = 0
for i in iter(input, '='):
    total += int(i)
print(total)

或者是更美的:

代码语言:javascript
复制
print(sum(int(i) for i in iter(input, '='))
票数 4
EN

Stack Overflow用户

发布于 2020-10-28 19:56:44

这应该可以做到:

代码语言:javascript
复制
a = input()
zsum = 0
while a!='=':
    zsum += int(a)
    a=input()
print(zsum)

考虑到你没有检查错误的输入,所以写一个不同的字母'=‘会导致异常。要解决此问题,您可以使用try-except块来管理这些异常,如下所示:

代码语言:javascript
复制
a = input()
zsum = 0
while a!='=':
    try:
        zsum += int(a)
    except:
        print('input not valid')
    finally:
        a=input()
print(zsum)

编辑:正如Brian Rodriguez在评论中指出的那样。此解决方案可能会导致错误信息不足。您可以通过如下所示显示异常错误来解决此问题并保持程序运行:

代码语言:javascript
复制
a = input()
zsum = 0
while a!='=':
    try:
        zsum += int(a)
    except Exception as e:
        print(e)
    finally:
        a=input()
print(zsum)
票数 2
EN

Stack Overflow用户

发布于 2020-10-28 20:11:49

您可以尝试这样做:)

代码语言:javascript
复制
a = 0
sum = 0
while 1==1:
    a = input()
    if a == '=':
        print(sum)
        break
    sum += int(a)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64572284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档