Python:奇偶随机数相加生成TypeError:“int”对象不可编辑
是的,有人问过这个问题,但我似乎无法将答案应用于我的问题。这个问题有几个部分,这是我遇到的最大障碍 我需要生成一个10到90之间的10个数字的随机列表。根据这些随机数,我需要求偶数和奇数的总和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 (
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中,我仍然倾向于采用我的程序化方式——似乎每天我都离实际的动手编程越来越远:在你达到这个水平之前,你对我太好了:投票吧。