2015-07-05 2 views
0

Извините, если это вопрос новичков, мне было интересно, почему я получаю ошибку «TypeError: неподдерживаемый тип операндов для &:« float »и« float »« всякий раз, когда я запускал свою программу, которая должен попытаться угадать мой номер, выбрав количество чисел, которые я ему скажу (прецизионная переменная), и усредним числа в радиусе 3-х чисел, чтобы получить число, близкое к моему. Вы можете предложить более эффективные способы написания моего кода я только начал изучать Python ...Python Float Operand Error

__author__ = 'Vansh' 
import random 


def avg(*args, length): 
    nums = 0 
    for num in args: 
     nums += num 
    return nums/length 

def standby(): 
    i = input(">>> ") 
    if i != "close": 
     standby() 

def ai(): 
    x = float(input("Enter A Number: ")) 
    y = int(input("Enter Precision: ")) 
    z = [] 
    for i in range(y*5): 
     random_guess = random.randrange(-1, 101) 
     decimal = random.randrange(-1, 10) 
     random_guess = float(random_guess + (decimal/10)) 
     while random_guess > x-3 & random_guess < x+3: 
      print() 
     z.append(random_guess) 
    print("Number Guess: {}".format(avg(z, len(z)))) 
    standby() 

ai() 
+2

сообщение об ошибке не может быть яснее –

+0

@DavidHeffernan, и тем не менее она требует О.П. знания не должны debug, для чего нужен сайт, такой как SO. –

ответ

2

& является bitwise and оператор в Python, я полагаю, вы хотите использовать оператор and вместо этого.

Это должно быть -

while random_guess > x-3 and random_guess < x+3: 

Если можно записать в виде -

while (x-3) < random_guess < (x+3): 
+0

Также обратите внимание, что это можно записать 'while (x-3)

+0

Спасибо, добавьте это в ответ. –

Смежные вопросы