列表中10的倍数

发布于 2025-01-18 08:18:35 字数 807 浏览 3 评论 0原文

我目前正在初级 CS 课程中做作业,只需要一点帮助。

他们要求我编写一个程序来读取整数列表并确定它是否有;

  • 10 的倍数
  • 没有 10 的倍数
  • 混合值。

目前它可以正确输出除混合值之外的所有内容。这就是我所拥有的:

n = int(input())

my_list =[]

for i in range(n):

    num = int(input())

    my_list.append(num)

def is_list_mult10(my_list): 
    mult10 = True
    for i in range(len(my_list)):
        if my_list[i] % 10 != 0:
            mult10 = False 
        return mult10

def is_list_no_mult10(my_list):
    no_mult10 = True
    for i in range(len(my_list)):
        if my_list[i] % 10 != 1:
            no_mult10 = False
        return no_mult10

if is_list_no_mult10(my_list) == True:
    print("no multiples of 10")
elif is_list_mult10(my_list) == True:
    print("all multiples of 10")
else:
    print("mixed values")

I am currently doing an assignment in my intro level CS class and just need a smidge of help.

They are asking me to write a program that reads a list of integers and determines if it has;

  • multiples of 10
  • no multiples of 10
  • mixed values.

It currently correctly outputs everything but mixed values. This is what I have:

n = int(input())

my_list =[]

for i in range(n):

    num = int(input())

    my_list.append(num)

def is_list_mult10(my_list): 
    mult10 = True
    for i in range(len(my_list)):
        if my_list[i] % 10 != 0:
            mult10 = False 
        return mult10

def is_list_no_mult10(my_list):
    no_mult10 = True
    for i in range(len(my_list)):
        if my_list[i] % 10 != 1:
            no_mult10 = False
        return no_mult10

if is_list_no_mult10(my_list) == True:
    print("no multiples of 10")
elif is_list_mult10(my_list) == True:
    print("all multiples of 10")
else:
    print("mixed values")

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

岁吢 2025-01-25 08:18:35

def check_multiplier(my_list):
    is_10_multiplier = []
    for i in my_list:
        if i % 10 == 0:
            is_10_multiplier.append(True)
        else:
            is_10_multiplier.append(False)
    if sum(is_10_multiplier) == len(my_list):
        print("all multiples of 10")
    elif sum(is_10_multiplier) == 0:
        print("no multiples of 10")
    else: print("mixed values")


# tests
mixed = [1, 20, 34, -10]
check_multiplier(mixed)

no_10 = [13, 22, 101, -5]
check_multiplier(no_10)

only_10 = [20, 140, 30, -50]
check_multiplier(only_10)

函数check_multiplier索引my_list的所有元素,并将布尔值保存到is_10_multipliper中。然后检查is_10_multipliper的总和,如果所有项目均为true,则总和是传递的列表的相等长度,如果所有内容都是false,则总和为0 。


def check_multiplier(my_list):
    is_10_multiplier = []
    for i in my_list:
        if i % 10 == 0:
            is_10_multiplier.append(True)
        else:
            is_10_multiplier.append(False)
    if sum(is_10_multiplier) == len(my_list):
        print("all multiples of 10")
    elif sum(is_10_multiplier) == 0:
        print("no multiples of 10")
    else: print("mixed values")


# tests
mixed = [1, 20, 34, -10]
check_multiplier(mixed)

no_10 = [13, 22, 101, -5]
check_multiplier(no_10)

only_10 = [20, 140, 30, -50]
check_multiplier(only_10)

Function check_multiplier indexing all elements from my_list and saves booleans into is_10_multiplier. Then checks the sum of is_10_multiplier, if all items are True then sum is equal length of passed list, if all are False then sum is 0.

不及他 2025-01-25 08:18:35

如评论中所述,您的代码中有几个错误(返回语句在for Loop内部)。
另外,逻辑似乎有点太复杂了:)无需拥有2个单独的功能,您可以尝试:

n = int(input('How many numbers?: '))

my_list =[]

for i in range(n):
    num = int(input(f'Insert element {i}: '))
    my_list.append(num)


def how_may_mult10(my_list):
    # counting how many multiples of 10 you have in your list
    number_of_m10 = 0
    for num in my_list:
        if num % 10 == 0:
            number_of_m10 += 1
    return number_of_m10


number_of_m10 = how_may_mult10(my_list)

if number_of_m10 == len(my_list):
    print('All multiples of 10')
elif number_of_m10 == 0:
    print('No multiples of 10')
else:
    print('Mixed values')

As mentioned in the comments, you have a couple of errors in your code (the return statements are inside the for loop).
Also, the logic seems a little too complicated :) No need to have 2 separate functions, you can try:

n = int(input('How many numbers?: '))

my_list =[]

for i in range(n):
    num = int(input(f'Insert element {i}: '))
    my_list.append(num)


def how_may_mult10(my_list):
    # counting how many multiples of 10 you have in your list
    number_of_m10 = 0
    for num in my_list:
        if num % 10 == 0:
            number_of_m10 += 1
    return number_of_m10


number_of_m10 = how_may_mult10(my_list)

if number_of_m10 == len(my_list):
    print('All multiples of 10')
elif number_of_m10 == 0:
    print('No multiples of 10')
else:
    print('Mixed values')
苏辞 2025-01-25 08:18:35

我看到您已经完成了一些逻辑和句法错误,如评论中所述。

以下是您修改的代码:

n = int(input())

my_list =[]

for i in range(n):

    num = int(input())

    my_list.append(num)

def is_list_mult10(my_list): 
    mult10 = True
    for i in range(len(my_list)):
        if my_list[i] % 10 != 0:
            mult10 = False 
    return mult10 #changed here

def is_list_no_mult10(my_list):
    no_mult10 = True
    for i in range(len(my_list)):
        if my_list[i] % 10 == 0:  #changed here
            no_mult10 = False
    return no_mult10 #changed here

if is_list_no_mult10(my_list) == True:
    print("no multiples of 10")
elif is_list_mult10(my_list) == True:
    print("all multiples of 10")
else:
    print("mixed values")

它成功打印了正确的语句。但是,我建议您尝试优化您的程序。

I see you have done some logical as well as syntactic error, as mentioned in the comments also.

Below is your modified code :

n = int(input())

my_list =[]

for i in range(n):

    num = int(input())

    my_list.append(num)

def is_list_mult10(my_list): 
    mult10 = True
    for i in range(len(my_list)):
        if my_list[i] % 10 != 0:
            mult10 = False 
    return mult10 #changed here

def is_list_no_mult10(my_list):
    no_mult10 = True
    for i in range(len(my_list)):
        if my_list[i] % 10 == 0:  #changed here
            no_mult10 = False
    return no_mult10 #changed here

if is_list_no_mult10(my_list) == True:
    print("no multiples of 10")
elif is_list_mult10(my_list) == True:
    print("all multiples of 10")
else:
    print("mixed values")

It successfully prints the correct statement. However I'll suggest you to try to optimise e your program.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文