python - 如何正确编写带有条件 if 语句的 for 循环?
问题描述
我正在尝试创建一个 for 循环,该循环采用数字列表和所需数字并从列表中输出倍数列表。我已经用下面的代码做到了:
def multiples(list_of_num, desired):
for i in (list_of_num):
if i%desired== 0:
print(i, end='')
上面的代码有效,但我也想防止用户输入
multiples([], 0)
如果 list_of_num 中没有多个,我还想输出“[]”。
当我编写条件语句时,程序会输出不需要的值。这是我所拥有的一切以及不受欢迎的输出示例。
def multiples(list_of_num, desired):
for i in (list_of_num):
if i%desired == 0:
print(i, end='')
if i%desired== 1:
print("[]")
if list_of_num == [] or desired == 0:
print("No numbers provided")
输出:
multiples([1,2,3,4,5,6,7,8,9,10], 2)
[]
2[]
4[]
6[]
8[]
10
期望的输出:
multiples([1,2,3,4,5,6,7,8,9,10], 2)
2
4
6
8
10
甚至更好
multiples([1,2,3,4,5,6,7,8,9,10], 2)
[2, 4, 6, 8, 10]
解决方案
def multiples(list_of_num, desired):
if list_of_num == [] or desired == 0:
print("No numbers provided")
return []
return [i for i in list_of_num if i % desired == 0]
print(multiples([1,2,3,4,5,6,7,8,9,10], 2))
输出:
[2、4、6、8、10]
print(multiples([], 2))
输出:
没有提供号码
[]
没有列表理解:
def multiples(list_of_num,desired):
final = []
if list_of_num == [] or desired == 0:
print("No numbers provided")
return []
for i in list_of_num:
if i % desired == 0:
final.append(i)
return final
推荐阅读
- c# - EFCore 3:如何在服务器端比较字符串列
- apscheduler - 如何在 apscheduler 配置中设置别名参数?
- networking - 如何在复杂情况下评估 DPDK 的性能
- php - 是否可以仅在一个变量上使用 DISTICT 语句?
- reactjs - 即使我定义了索引,React 仍然会抛出索引错误
- r - 用于在多个对象中选择元素的 R 循环函数
- python - 将所有路径从给定源返回到目的地,而不是打印它们
- excel - 如何在Excel VBA中遍历同一行中的每一列
- c++ - C ++ - 您能否仅从提供类型和名称的宏参数中获取变量名称?
- python - Django 使用 include() 作为 path() 参数