我正在尝试执行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()
为了获得连续的输入,您可以使用
while True
并添加中断条件,在本例中为if num == 0
更好的方法是让
sum_dig
接受要将数字相加作为参数的数字,然后使用while循环来获取用户输入,将其转换为数字,并调用sum_digit
函数这使您的代码能够遵守Single-Responsibility Principle,其中每个代码单元都有一个单独的职责。在这里,函数负责获取输入数字并返回其数字总和(如名称所示),循环负责连续读取用户输入,转换它,检查它是否为退出值(0),然后调用输入上的处理函数并打印其输出
使用^{} 将输入的数字(作为字符串)拆分为数字列表,然后使用list comprehension求和。使用
while True
生成一个无限循环,然后使用return
退出它。使用f-strings or formatted string literals打印数字总和:相关问题 更多 >
编程相关推荐