如何使用海象运算符编写输入空串终止的数字求和程序?
海象运算符实现输入数字求和程序的修正方案
你的代码存在两个关键问题:
- 直接将输入转为
int,当输入空字符串时,int('')会触发ValueError,导致程序崩溃。 - 用整数类型的变量
b和空字符串''比较,类型不匹配,永远不会相等,循环无法终止。
下面是修正后的代码,既满足在条件中使用海象运算符的要求,又能正确处理输入并终止循环:
total = 0 while (user_input := input('x: ')) != '': try: num = int(user_input) total += num except ValueError: print('请输入有效数字,或输入空字符串结束程序') print(f'所有输入数字的总和是: {total}')
如果你更习惯用列表存储输入的数字再求和,也可以写成这样:
num_list = [] while (user_input := input('x: ')) != '': try: num = int(user_input) num_list.append(num) except ValueError: print('输入无效,请输入数字或空字符串') print(f'总和是: {sum(num_list)}')
代码说明:
- 用海象运算符
:=在循环条件中直接捕获用户输入的原始字符串,先判断是否为空,为空则终止循环。 - 对非空输入尝试转为整数,加入总和或列表;如果输入不是有效数字,捕获异常并提示用户,避免程序崩溃。
内容的提问来源于stack exchange,提问作者comiser
相关产品推荐
相关产品推荐

