L'affectation consiste à créer une fonction qui prend deux arguments: un nombre et une chaîne. Vérifiez la chaîne pour les voyelles, si le nombre de voyelles est égal à l'argument numéro, renvoyez la chaîne. Sinon, ajoutez 5 lettres aléatoires à la chaîne et comptez les voyelles. Répétez jusqu'à ce que le nombre de voyelles dans la chaîne égale le nombre fourni. Exemple: fonct (2, « bleu ») retours bleu ' fonct (3, « bleu ») retourne « bluequrmb »Comptage des voyelles et ajout de 5 lettres aléatoires à une chaîne (itérative et récursive)
Cela doit être complété également sous la forme récursive, mais je ne peux pas pourquoi ma forme itérative ne fonctionne pas.
import random
def VowelCount(thestring):
Vowels = 'aeiouAEIOU'
Count = 0
if type(thestring) == str:
for char in thestring:
if char in Vowels:
Count += 1
return Count
else:
print("Enter a string.")
def AddFive(number, astring):
LetterPull = 'abcdefghijklmnopqrstuvwxyz'
newstring = list(astring)
NString = ''.join(str(newstring))
VowelNum = VowelCount(NString)#calling the function VowelCount with argument 'astring'
ToFive = 0
number != 0 == True
while True:
if VowelNum < number:
if ToFive != 5:
y = random.choice(LetterPull)
newstring.append(y)
ToFive += 1
else:
VowelNum = VowelCount(NString)
ToFive = 0
else:
print(newstring)
break
else:
print("Enter a higher number.")
Un aperçu serait utile.