我想制作一个Python脚本,让用户输入7个数字,然后检查哪些数字可以除以3,然后将这些数字求和,并以“ sum = xx”的形式显示给用户。
我尝试过:
{
template: `
<section/>
<div class="LAYOUTwrapper_section" v-if="shouldDisplay"></div>
</section>
`,
props: {
shouldDisplay: Boolean
}
}
答案 0 :(得分:1)
这里使用列表理解,
input_string = input("Enter a list element separated by space ")
numbers = [int(num) for num in input_string.split(',') if int(num) % 3 == 0]
print('Sum = {}'.format(sum(numbers)))
这是基于您上面的问题。
但是,您还说过,您希望用户输入7个数字并找到被3整除的数字的和。
这是另一个简单的示例,我们要求用户输入7个数字,一次输入一个数字,最后打印总和。
all_numbers = []
for i in range(7):
num = int(input(f'Enter number {i + 1}:\n1'))
all_numbers.append(num)
sum_of_numbers = sum([num for num in all_numbers if num % 3 == 0])
print(f'Sum = {sum_of_numbers}')
答案 1 :(得分:0)
您可以使用int
函数从输入中获取整数列表,该函数为您提供字符串中的整数对象,因为split函数仅为您提供了分隔字符串的列表。
input_string = input("Enter a list element separated by space ")
my_list = input_string.split()
numbers = []
for n in my_list:
numbers.append(int(n))
但是,如果n
不是有效数字(例如"a"
),则会引发ValueError,您可以使用try
-except
statement来捕获它。
请注意,我是如何将变量名更改为my_list
的,因为名称list
在Python中已经具有含义,并且最好不要将其分配给变量。
如果要一步完成,可以使用有用的map
函数将int
函数应用于list
中的所有元素。您可以查看此功能的文档以及python documentation上的任何其他文档,或使用内置的help
。 (例如help(map)
)
numbers = map(int, my_list)
然后,您可以使用len
函数检查列表中是否有7个数字,如果没有7,则可以提示用户再次输入数字(如果您要这样做)
>>> my_list = [1, 2, 3]
>>> len(my_list) == 3
True
如果要一直提示用户,直到列表上有七个数字,可以将提示放在while
块中,如下所示:
numbers = [] # We create an empty list
while len(numbers) != 7:
input_string = input("Enter a list element separated by space ")
my_list = input_string.split()
numbers = list(map(int, my_list)) # Get the numbers
获取数字后,您可以使用modulo运算符来查看哪些数字可以被3整除,剩下的工作就是用一个数字除以另一个(在您的情况下为3)。一些例子:
>>> 7%3 # 7 = 3*2 + 1
1
>>> 19%5 # 14 = 5*3 + 4
4
>>> 8%4 # 8 = 4*2 + 0
0
由于要检查列表中的哪些数字可以被3整除,因此可以在遍历列表的循环中检查此模块是否为0。
如果数字可以被3整除,则可以将它们添加到计数变量中,也可以在循环之前将其初始化为0。这样,在循环之后,您将获得所需的总和。
另一种更优雅的方法是使用list comprehension而不是循环,该循环仅保留被3整除的数字,然后使用sum
函数求和。 >
new_list = [x for x in numbers if x%3 == 0]
sum = sum(new_list)