Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:奇偶随机数相加生成TypeError:“int”对象不可编辑_Python_Random_Range_Typeerror_Iterable - Fatal编程技术网

Python:奇偶随机数相加生成TypeError:“int”对象不可编辑

Python:奇偶随机数相加生成TypeError:“int”对象不可编辑,python,random,range,typeerror,iterable,Python,Random,Range,Typeerror,Iterable,是的,有人问过这个问题,但我似乎无法将答案应用于我的问题。这个问题有几个部分,这是我遇到的最大障碍 我需要生成一个10到90之间的10个数字的随机列表。根据这些随机数,我需要求偶数和奇数的总和 def playlist(): nums = [] for nums in range(10): # Get random list of 10 numbers my_nums = random.randint(10, 90) print (

是的,有人问过这个问题,但我似乎无法将答案应用于我的问题。这个问题有几个部分,这是我遇到的最大障碍

我需要生成一个10到90之间的10个数字的随机列表。根据这些随机数,我需要求偶数和奇数的总和

def playlist():
    nums = []
    for nums in range(10):
        # Get random list of 10 numbers
        my_nums = random.randint(10, 90)
        print (my_nums,end=' ')
        even = []
        odd = []
        for x in my_nums:
            if x % 2 == 0:
                even.append[x]
                print(even)
            else:
                odd.append[x]
                print(odd)
当我运行这个程序时,有时我会得到一个或两个数字,通常是前两个奇数,但大多数情况下我会得到TypeError:“int”对象是不可编辑的

我不会说谎-我的第一语言是PHP,而不是Python,这对我来说是个大问题:


非常感谢您的帮助。

如评论所述,您不能在中为x加上数字。我想你想要的是在我的数值范围内的x,而不是在我的数值范围内的x。

正如前面提到的评论,你不能在后面写一个数字。我想你想要的是在我的范围内的x,而不是在我的范围内的x。

你应该这样做

def playlist():
    nums1 = []
    for nums in range(10):
        # Get random list of 10 numbers
        my_nums = random.randint(10, 90)
        nums1.append(my_nums)
        print my_nums


    even = []
    odd = []
    for x in nums1:
      if x % 2 == 0:
          even.append(x)
          print(even)
      else:
          odd.append(x)
          print(odd)


playlist()

你应该这样做

def playlist():
    nums1 = []
    for nums in range(10):
        # Get random list of 10 numbers
        my_nums = random.randint(10, 90)
        nums1.append(my_nums)
        print my_nums


    even = []
    odd = []
    for x in nums1:
      if x % 2 == 0:
          even.append(x)
          print(even)
      else:
          odd.append(x)
          print(odd)


playlist()

创建随机列表

n = [random.randint(10,90) for x in range(10)]
平分胜负:

even = [x for x in n if x % 2 == 0]
odd = [x for x in n if x % 2 == 1]

创建随机列表

n = [random.randint(10,90) for x in range(10)]
平分胜负:

even = [x for x in n if x % 2 == 0]
odd = [x for x in n if x % 2 == 1]

这就是我最终需要的:

def playlist():
nums = []
for nums1 in range(10):
    # Get random list of 10 numbers
    my_nums = random.randint(10, 90)
    nums.append(my_nums)
    print (my_nums,end=' ')


even = []
odd = []
for x in nums:
  if x % 2 == 0:
      even.append(x)
  else:
      odd.append(x)
print ("\n")
print("Total of Even Numbers: ",sum(even))
print ("\n")
print("Total of Odd Numbers: ",sum(odd))

感谢大家的帮助…是的,我知道运行函数的调用丢失了-就像我说的,这只是程序的一部分:

这是我最终需要的:

def playlist():
nums = []
for nums1 in range(10):
    # Get random list of 10 numbers
    my_nums = random.randint(10, 90)
    nums.append(my_nums)
    print (my_nums,end=' ')


even = []
odd = []
for x in nums:
  if x % 2 == 0:
      even.append(x)
  else:
      odd.append(x)
print ("\n")
print("Total of Even Numbers: ",sum(even))
print ("\n")
print("Total of Odd Numbers: ",sum(odd))

感谢大家的帮助…是的,我知道运行函数的调用丢失了-就像我说的,这只是程序的一部分:

有一些事情你似乎误解了:

range10将为您提供类似于此列表的内容[0、1、2、3、4、5、6、7、8、9]。 您可以将其与for循环一起使用,以执行10次操作 random.randint10,90将为您提供一个介于10和90之间的随机数,而不是列表 根据此信息,我们可以将您的脚本更改为:

import random

even_sum = 0
odd_sum = 0
for number_of_turns in range(10):
    # Get a random number
    number_this_turn = random.randint(10, 90)
    print(number_this_turn,end=' ')
    if number_this_turn % 2 == 0:
        even_sum += number_this_turn
        print("Sum of even numbers so far:", even_sum)
    else:
        odd_sum += number_this_turn
        print("Sum of odd numbers so far:", odd_sum)

print("Final sum of even numbers:", even_sum)
print("Final sum of odd numbers:", odd_sum)
import random

even_sum = 0
odd_sum = 0

random_numbers = [random.randint(10, 90) for x in range(10)]

for number in random_numbers:
    print(number,end=' ')
    if number % 2 == 0:
        even_sum += number
        print("Sum of even numbers so far:", even_sum)
    else:
        odd_sum += number
        print("Sum of odd numbers so far:", odd_sum)

print("Final sum of even numbers:", even_sum)
print("Final sum of odd numbers:", odd_sum)
但我们可以做得更好。您将了解到,在Python中,您经常需要使用所需的术语定义一个列表或iterable,然后对每个术语进行处理。因此,我们可以将您的脚本更改为:

import random

even_sum = 0
odd_sum = 0
for number_of_turns in range(10):
    # Get a random number
    number_this_turn = random.randint(10, 90)
    print(number_this_turn,end=' ')
    if number_this_turn % 2 == 0:
        even_sum += number_this_turn
        print("Sum of even numbers so far:", even_sum)
    else:
        odd_sum += number_this_turn
        print("Sum of odd numbers so far:", odd_sum)

print("Final sum of even numbers:", even_sum)
print("Final sum of odd numbers:", odd_sum)
import random

even_sum = 0
odd_sum = 0

random_numbers = [random.randint(10, 90) for x in range(10)]

for number in random_numbers:
    print(number,end=' ')
    if number % 2 == 0:
        even_sum += number
        print("Sum of even numbers so far:", even_sum)
    else:
        odd_sum += number
        print("Sum of odd numbers so far:", odd_sum)

print("Final sum of even numbers:", even_sum)
print("Final sum of odd numbers:", odd_sum)
random_numbers=[random.randint10,范围10中x的90]正在使用生成一个包含10个随机数的列表。然后你可以对这些数字中的每一个做一个for循环,你可以把它们加到evens的和或者赔率的和


你甚至可以进一步简化它,如@Take\u Care\u的答案,但我想在达到这一水平之前,你还有很多东西需要学习。

有一些事情你似乎误解了:

range10将为您提供类似于此列表的内容[0、1、2、3、4、5、6、7、8、9]。 您可以将其与for循环一起使用,以执行10次操作 random.randint10,90将为您提供一个介于10和90之间的随机数,而不是列表 根据此信息,我们可以将您的脚本更改为:

import random

even_sum = 0
odd_sum = 0
for number_of_turns in range(10):
    # Get a random number
    number_this_turn = random.randint(10, 90)
    print(number_this_turn,end=' ')
    if number_this_turn % 2 == 0:
        even_sum += number_this_turn
        print("Sum of even numbers so far:", even_sum)
    else:
        odd_sum += number_this_turn
        print("Sum of odd numbers so far:", odd_sum)

print("Final sum of even numbers:", even_sum)
print("Final sum of odd numbers:", odd_sum)
import random

even_sum = 0
odd_sum = 0

random_numbers = [random.randint(10, 90) for x in range(10)]

for number in random_numbers:
    print(number,end=' ')
    if number % 2 == 0:
        even_sum += number
        print("Sum of even numbers so far:", even_sum)
    else:
        odd_sum += number
        print("Sum of odd numbers so far:", odd_sum)

print("Final sum of even numbers:", even_sum)
print("Final sum of odd numbers:", odd_sum)
但我们可以做得更好。您将了解到,在Python中,您经常需要使用所需的术语定义一个列表或iterable,然后对每个术语进行处理。因此,我们可以将您的脚本更改为:

import random

even_sum = 0
odd_sum = 0
for number_of_turns in range(10):
    # Get a random number
    number_this_turn = random.randint(10, 90)
    print(number_this_turn,end=' ')
    if number_this_turn % 2 == 0:
        even_sum += number_this_turn
        print("Sum of even numbers so far:", even_sum)
    else:
        odd_sum += number_this_turn
        print("Sum of odd numbers so far:", odd_sum)

print("Final sum of even numbers:", even_sum)
print("Final sum of odd numbers:", odd_sum)
import random

even_sum = 0
odd_sum = 0

random_numbers = [random.randint(10, 90) for x in range(10)]

for number in random_numbers:
    print(number,end=' ')
    if number % 2 == 0:
        even_sum += number
        print("Sum of even numbers so far:", even_sum)
    else:
        odd_sum += number
        print("Sum of odd numbers so far:", odd_sum)

print("Final sum of even numbers:", even_sum)
print("Final sum of odd numbers:", odd_sum)
random_numbers=[random.randint10,范围10中x的90]正在使用生成一个包含10个随机数的列表。然后你可以对这些数字中的每一个做一个for循环,你可以把它们加到evens的和或者赔率的和

您甚至可以进一步简化它,如@Take\u Care\u的答案中所述,但我想在达到此级别之前,您还需要学习更多内容。

以下代码有效:

"""
I need to generate a random list of 10 numbers between 10 & 90. From those random numbers, I need to sum the totals of both the even and odd numbers.
"""
from random import randint

    MIN = 10
    MAX = 90
    sum_odds = sum_evens = 0

    for i in range(10):
        r = randint(MIN,MAX)
        if r % 2:
            sum_odds += r
        else:
            sum_evens += r
    return sum_evens, sum_odds
以下代码工作:

"""
I need to generate a random list of 10 numbers between 10 & 90. From those random numbers, I need to sum the totals of both the even and odd numbers.
"""
from random import randint

    MIN = 10
    MAX = 90
    sum_odds = sum_evens = 0

    for i in range(10):
        r = randint(MIN,MAX)
        if r % 2:
            sum_odds += r
        else:
            sum_evens += r
    return sum_evens, sum_odds

你试图循环我的数值,好像它是一个数字列表,但实际上它只是一个整数。顺便说一句,您还将nums定义为一个空列表,在下一行中删除该列表并在其中放入一个整数。my_nums是一个整数。你不能在超过一个数字的范围内进行计算。@zvone-我不知道为什么,但这就是作业要求创建一个名为nums@andrew-l-我将我的\u nums中的x修改为我的\u nums中的x,这就停止了错误-现在我只是让它打印0到9之间的奇数和偶数。如果你试图在我的\u nums上循环,就好像它这是一个数字列表,但实际上只是一个整数。顺便说一句,您还将nums定义为一个空列表,在下一行中删除该列表并在其中放入一个整数。my_nums是一个整数。你不能在超过一个数字的范围内进行计算。@zvone-我不知道为什么,但这就是作业要求创建一个名为nums@andrew-l-我将我的\u nums中的x修改为我的\u nums中的x,这就停止了错误-现在我只是让它打印0和9之间的奇数和偶数,删除打印语句,我明白了,你的错误是什么?对不起,缩进有点不对劲。现在应该可以正常工作了。完成函数编写后,在某处调用函数。在脚本末尾,键入函数名。这应该可以了。是的,请记住我之前的评论……我还忘了导入兰德

om这个列表正在打印,但我最后得到21 30 46 10 71 47 42 84 53回溯最近的呼叫:文件C:\Users\Bernadette\Desktop\0520 Intermediate Computer Programming\program_p1.py,第21行,在播放列表文件C:\Users\Bernadette\Desktop\0520 Intermediate Computer Programming\program_p1.py,第18行,在播放列表odd中。追加[x]TypeError:“内置函数”或“方法”对象不是subscriptableoh等等-等等!我切换了偶数。将[x]附加到偶数。appendx,我得到了更好的结果?,删除print语句,我明白了,您得到了什么错误?很抱歉缩进,有点不对劲。现在应该可以正常工作了。完成函数编写后,在某处调用函数。在脚本末尾,键入函数名。这应该可以解决问题。是的,请记下我之前的评论…我还忘了导入随机列表正在打印,但我得到了21304610107147428453回溯最近的调用:文件C:\Users\Bernadette\Desktop\0520 Intermediate Computer Programming\program\u p1.py,第21行,在播放列表文件C:\Users\Bernadette\Desktop\0520 Intermediate Computer Programming\program\u p1.py,第18行,在播放列表odd.append[x]TypeError中:“内置函数或方法”对象不是subscriptableoh wait-稍等!我把even.append[x]改为even.appendx,我得到了更好的结果ep改为rangemy\u nums确实纠正了这个错误,但是rangemy\u nums不会是随机整数,不是吗?是的,改为rangemy\u nums确实纠正了这个错误,但是rangemy\u nums不会是随机整数,不是吗?我很欣赏这个@evensf-我完全不懂Python,尽管这是中级计算机编程,我只是勉强通过了入门课程,甚至在PHP中,我仍然倾向于采用我的程序化方式——似乎每天我都在离实际的动手编程越来越远:在你达到这个水平之前啊,你对我太好了:投票吧。我很感激@evensf-我完全不懂Python,尽管这是中级计算机编程,我只是勉强通过了入门课程,甚至在PHP中,我仍然倾向于采用我的程序化方式——似乎每天我都离实际的动手编程越来越远:在你达到这个水平之前,你对我太好了:投票吧。