这可能是一个愚蠢的问题,为什么我会收到此错误? 当我将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"
答案 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
返回一个字符串,这就是为什么r
和n
首先是字符串的原因。函数int()
将变量转换为整数。转换为整数后,您无需再次使用int()
r
和n