python - 我的代码错误不受支持的操作数

时间:2015-01-29 02:16:07

标签: python syntax while-loop division

有人可以修复我的代码吗?我有一个语法错误,我不明白。

import random
n= int (0)
sum1=int (0)
temp=int (0)
num=int
gennum = int
count= (0)
outputs= (0)
calculated = int (sum1/gennum)
while count > 3:
    max = int (input("enter a max value:"))
    min = int (input("enter a minimum value:"))
    gennum = int (input("how many numbers do you want to generate?"))
    if min>max:
        temp=min
        min=max
        max=temp
    while n < gennum:
        num=(random.randint(min,max))
        sum1 = sum1 + num
        print (num)
        n=n+1
        count = count + 1
    print("this is the averages",calculated)
print("this is the maximum",max)

print("this is the maximum",max)

上述代码有什么问题?我不知道什么是错的。

错误

  

IDE说它在第9行是不受支持的操作数类型,   在

calculated = int (sum1/gennum)

3 个答案:

答案 0 :(得分:2)

我修改了你的代码,使它至少在python 3.4上执行/编译。基本上num=intgennum = int都是问题。这不会使numgennum成为整数。这只会将代表int()函数的对象分配给numgennum

import random

n= 0
sum1=0
temp=0
num=0
gennum = 0
count= 0
outputs= 0
calculated = 0

while count < 3:
    max = int (input("enter a max value:"))
    min = int (input("enter a minimum value:"))
    gennum = int (input("how many numbers do you want to generate?"))
    if min>max:
        temp=min
        min=max
        max=temp
    while n < gennum:
        num=(random.randint(min,max))
        sum1 = sum1 + num
        print (num)
        n=n+1
        count = count + 1
    print("this is the averages",calculated)

print("this is the maximum",max)

但是,它是否符合您的要求是一个不同的问题。我无法回答,因为我不知道你想要做什么。

答案 1 :(得分:1)

num=int
gennum = int

这些都没有正确初始化,因此当你执行calculated = int (sum1/gennum)时,它会尝试通过内置类型{划分int(sum1,即0)的实例{ {1}},这将导致int

行的错误

答案 2 :(得分:0)

我认为你错过了一些代码(或者你正在编写不完整的代码)。

第6行和第7行

您输入:

num=int
gennum = int

这很奇怪,你应该给它们价值,类似于它们的周围线。

num = int(0)
gennum = int(0)

即使使用该值,它也会产生另一个错误,即

calculated = int (sum1/gennum)
ZeroDivisionError: division by zero

因为gennum的值为零。你不能anynumber/0。因此,您应该正确初始化变量。像,

num = int(0)
gennum = int(1)

然后,你可以继续,

import random

n= int (0)
sum1=int (0)
temp=int (0)
num=int (0)
gennum = int (1)
count= (0)
outputs= (0)
calculated = int (sum1/gennum)

while count > 3:
    max = int (input("enter a max value:"))
    min = int (input("enter a minimum value:"))
    gennum = int (input("how many numbers do you want to generate?"))
    if min>max:
        temp=min
        min=max
        max=temp
    while n < gennum:
        num=(random.randint(min,max))
        sum1 = sum1 + num
        print (num)
        n=n+1
        count = count + 1
    print("this is the averages",calculated)
print("this is the maximum",max)