No desafio 8, fiz uma versão na qual não se repetem frutas. Ficou assim:
#desafio 8
from random import choice
frutas = ["maçã", "banana", "uva", "pêra",
"manga", "coco", "melancia", "mamão",
"laranja", "abacaxi", "kiwi", "ameixa"]
salada_de_frutas_surpresa = []
for i in range(3):
fruta_selecionada = choice(frutas)
salada_de_frutas_surpresa.append(fruta_selecionada)
frutas.remove(fruta_selecionada)
print(salada_de_frutas_surpresa)
Já para o desafio 9, resolvi num passo só.
from math import sqrt
numeros = [2, 8, 15, 23, 91, 112, 256]
for n in numeros:
print(f'raiz de {n}({sqrt(n)}) é inteiro? :', sqrt(n) // 1 == sqrt(n))