python - 如何在 python 中循环函数 def,直到我写下数字 0

我正在尝试执行一个 def 函数,让它添加输入的任何数字的数字,并在我输入数字“0”时停止,例如:

输入数字:25 位数总和:7

输入数字:38 位数总和:11

输入数字:0 循环结束

我已经为输入的数字的数字总和创建了代码,但是当程序完成添加时,循环就结束了,但我正在寻找的是再次询问另一个数字,直到最后我输入数字“0”循环结束:(

这是我的代码:

def  sum_dig():
 s=0
 num = int(input("Enter a number: "))
 while num != 0 and num>0:
  r=num%10
  s=s+r
  num=num//10
 print("The sum of the digits is:",s)
 if num>0:
  return num
sum_dig()

最佳答案

使用list()将输入数字(作为字符串)分解为数字列表,并使用 list comprehension 对它们求和.使用 while True 进行无限循环,然后使用 return 退出。使用 f-strings or formatted string literals 打印数字总和:

def sum_dig():
    while True:
        num = input("Enter a number: ")
        if int(num) <= 0:
            return
        s = sum([int(d) for d in list(num)]) 
        print(f'The sum of the digits is: {s}')

sum_dig()

https://stackoverflow.com/questions/68247964/

相关文章:

android-studio - 无法加载 com.github.smarteist.autoima

c++ - 什么是 std::vector vec{3};实际上呢?

javascript - 一个数组中的字符串在另一个数组中存在多少次?

r - 从 R 中的其他数据帧更新列中的某些值

rust - Crate 和 Package 之间的确切区别是什么?

swift - 如何在 swift ui 的导航 View 中的大标题下方添加副标题?

java - 将小写的短工作日解析为 Java 8 的时间 DayOfWeek

php - Laravel Sail 部署就绪了吗

sql - 在雪花中查询数组的子集

c++ - 如何在 C++ 中分解指向成员的指针(获取类和成员类型)?