python错误:无法分配给函数调用

时间:2015-03-24 02:30:33

标签: python python-2.7

这可能是一个愚蠢的问题,为什么我会收到此错误? 当我将int(r)变为r时,它会使TypeError"不支持的操作数类型为 - ' str'和' int'" 我想制作将YOURNUMBER与随机数进行比较的程序并重复" n"倍。 我怎么解决这个问题?

import random
r = raw_input("put YOURNUMBER")
while True: 
    n = raw_input("put repetition number")
    int(r)= int(r) - 1
    for x in range(10):
        x = random.randit()
    if int(r)!= 0:
        if int(n) > int(x):
            print "n > x"
        if float(n) == float(x):
            print "n = x"
        if float(n) < float(x):
            print "n < x"
    else:
        break
print "The end"

2 个答案:

答案 0 :(得分:2)

在进入while循环之前将r转换为整数。类似地,在输入时将n转换为整数。它也应该是random.randint(),而不是random.randit() - 它需要一些值的范围的参数:

import random
r = int(raw_input("put YOURNUMBER"))
while True: 
    n = int(raw_input("put repetition number"))
    r = r - 1
    for x in range(10):
        x = random.randint(1, 10)
    if r != 0:
        if int(n) > int(x):
            print "n > x"
        if float(n) == float(x):
            print "n = x"
        if float(n) < float(x):
            print "n < x"
    else:
        break
print "The end"

答案 1 :(得分:0)

如果我理解正确的话:

import random

r = raw_input("put YOURNUMBER: ")
r = int(r)


while True:
    n = raw_input("put repetition number: ")
    n = int(n)

    if n == 0:
        break

    for _ in xrange(n):
        x = random.randint(1, 10)

        if r > x:
            print "%s > %s" % (r, x)
        if r == x:
            print "%s = %s" % (r, x)
        if r < x:
            print "%s < %s" % (r, x)

print "The end"

每个变量都有一个类型。函数raw_input返回一个字符串,这就是为什么rn首先是字符串的原因。函数int()将变量转换为整数。转换为整数后,您无需再次使用int() rn