我正在尝试编写一个代码来生成 100 个随机数,然后确定每个数字是偶数还是奇数。代码最后应该有偶数总和和奇数总和。
这是迄今为止的代码:
import random
even = 0
odd = 0
for count in range(100):
def main(even, odd):
number = random.randint(1, 1000)
return number
def isEven(even, odd):
number = main(even, odd)
if number % 2 == 0:
even += 1
print(number, 'is even')
elif number % 2 != 0:
odd += 1
print(number, 'is odd')
return odd
return even
main(even, odd)
isEven(even, odd)
def totals(even, odd):
even = isEven(even, odd)
odd = isEven(even, odd)
print('the total number of even numbers is', even)
print('the total number of odd numbers is', odd)
totals(even, odd)
但是,当我运行代码时,偶数和奇数总计最终会在 None 到 2 范围内。我尝试在 main()、isEven() 和 Totals( ) 函数。我该如何写才能使总数最终等于 100 并且符合我想要的方式?
我根本不明白你的代码结构来自哪里。为什么要在 for 循环内定义函数?而且变量
odd
和 even
永远不会更新,因为你不能在 python 中通过引用传递变量。
更好的方法是这样的:
import random
numbers = [random.randint(1, 100) for _ in range(100)]
odd_count, even_count = 0, 0
for number in numbers:
if number % 2 == 0:
even_count += 1
else:
odd_count += 1
print(f"The total number of even numbers is {even_count}")
print(f"The total number of odd numbers is {odd_count}")
也许尝试将 for 循环放入函数中。外面的 for 循环对我来说毫无意义。 另外,我在主函数中的两个参数的目的是什么。
您可以用更少的代码行编写此功能:
import random
numbers = [random.randint(0, 100) for i in range(100)]
even = 0
for num in numbers:
if num % 2 == 0:
even += 1
print("Even numbers count:", even)
print("Odd numbers count:", str(100 - even))
或者甚至(呵呵):
import random
nums = [random.randint(0, 100) for i in range(100)]
even, odd = [n for n in nums if n % 2 == 1], [n for n in nums if n % 2 == 0]
print("Even numbers count:", len(even))
print("Odd numbers count:", len(odd))
如果您需要以某种方式将代码拆分为单独的函数,那么如果您能够提供有关您的任务/分配/目标的更多详细信息,那就太好了。