bon après-midi. Je dois écrire des chiffres dans une ligne et des résultats d'impression également en une seule ligne. Qu'est-ce que je dois faire pour corriger ce code? Au moment du code travaillant uniquement pour un numéro.
def test_prime(n):
if (n==1):
return False
elif (n==2):
return True;
else:
for x in range(2,n):
if(n % x==0):
return False
return True
5 Réponses :
Vous auriez besoin d'écrire une fonction is_prime code> qui appellera la fonction test_prime code> pour chaque numéro de la chaîne que vous entrez, calcule si elle est prime ou non et retourne La chaîne résultante. Input numbers>>3 4 5
True False True
Je dois écrire des chiffres de la liste sans virgule (2 3 4 5 6 7 8) en une seule ligne, et la ligne suivante est la fonction d'impression (vrai Faux Faux Faux Faux Faux). Deux lignes, chiffres de première ligne, impression de deuxième ligne.
Ecrire où? À un fichier texte?
J'ai mis à jour pour écrire les deux en une ligne! Vérifiez s'il vous plaît!
Quel est le module exécuter code> la fenêtre?
Vérifiez s'il vous plaît, je n'ai pas travaillé, nom 's' n'est pas défini, et sans que S = entrée, le programm indique (nums = [int (n) pour N dans S.Split ()] AttributeError: l'objet 'int' n'a pas de Attribut 'Split'))
Mis à jour, vérifiez à nouveau! Il suffit de copier tout le code tel qu'il est, exécutez-le et il devrait fonctionner!
Si vous avez une liste de nombres comme ceci: Vous pouvez utiliser et d'imprimer le résultat sur une ligne sans virgules / crochets: P> mapper () code> pour appliquer votre test_prime () code> fonction à chaque valeur dans la liste: p> >>> numbers = input().split()
1 2 3 4 5
>>> numbers
['1', '2', '3', '4', '5']
Pour imprimer en une seule ligne, utilisez simplement
results = [test_prime(i) for i in range(10)]
print(', '.join(results))
>>> [print(i,test_prime(i),end=', ') for i in (1,2,3,4,5,6,10,100,1000,1013)] 1 False, 2 True, 3 True, 4 False, 5 True, 6 False, 10 False, 100 False, 1000 False, 1013 True,
is_prime = lambda n: not any(n % i == 0 for i in range(2, n))
print([f'{i}: {is_prime(i)}' for i in range(1, 100)])
Note
any is lazy, it will not iterate the whole range unless needed
you can change the range to range(2, n**0.5) it you care about speed
Comment cela imprime-t-il tous les résultats en une seule ligne?
@Barmar: La question n'est pas claire à ce sujet, tout ce qu'il montre est le is_prime code> Définition
Il est dit "Je dois écrire des chiffres dans une ligne et des résultats d'impression également en une seule ligne." Ce n'est pas clair à ce sujet?
Vous devez expliquer @Blue_note
Voulez-vous prendre des informations d'utilisateur?
Si c'est une fonction n'oublie pas les virgules entre les arguments