Bom dia, Ana! Como vai?
Peço desculpas pela demora em responder o seu tópico.
O erro ocorre porque você está tentando chamar o método .round() em um objeto do tipo float e, em seguida, tenta converter o resultado para um inteiro usando int(). No entanto, o método .round() não existe para objetos do tipo float em Python.
Então como o professor conseguiu usar? Essa pergunta é respondida facilmente, é porque o n dele pertence a outro tipo de objeto, o numpy.float64, e esse, sim, tem o método round().
Mas como posso fazer com que meu n seja desse tipo também? Isso é feito quando calculamos o z. O valor dele é definido ao usamos o método ppf da biblioteca norm, como você pode ver abaixo:
from scipy.stats import norm
z = norm.ppf(0.975)
type(z)
Ao executar os códigos acima você terá um retorno do tipo da variável, e o tipo será o mesmo que comentei anteriormente, sendo o tipo de objeto que tem o método round. Com isso, quando fazemos a seguinte operação, estaremos atribuindo esse tipo para a variável que recebe o resultado:
n = (z * (sigma / e )) ** 2
int(n.round())
Lembre-se que entre essas duas operações que mostrei existem a definição das variáveis sigma e e, mas, caso siga as instruções mostradas aqui, o erro não deve ocorrer novamente.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.