TypeError от попытки возведения в степень

Я пытаюсь построить график зависимости функции r от вероятности нахождения электрона в основном состоянии двумерного и трехмерного атома водорода. Код, который у меня есть сейчас:

import math
import matplotlib.pyplot as plt
import numpy as np

def three_dimensional(radius):
    bohr = (5.2917721067)*10**(-11)
    use_radius = []
    for i in radius:
        new_rad = bohr*i
        use_radius.append(new_rad)

    answers = []
    for i in use_radius:
        R_r = (2//(bohr)**(3//2))*math.exp(-i/bohr)
        answers.append(R_r)

    probability = []
    for i in answers:
        probs = i^2
        probability.append(probs)

    print(answers)

    return plt.contour(answers, probability)

Я получаю ошибку:

Ошибка типа: неподдерживаемые типы операндов для ^: 'float' и 'int'

Каков наилучший способ исправить это?

1 ответ

Вы хотите ** оператор, который является оператором экспоненты в Python, а не ^, Так что эта строка должна быть:

for i in answers:
    probs = i**2
    probability.append(probs)
Другие вопросы по тегам