Problème de syntaxe? [Résolu] - Python - Programmation
Marsh Posté le 16-03-2008 à 19:36:49
Dans le premier cas, note:
Code :
|
Regarde les "..." avant ton print, il considère qu'il est toujours dans le while, et ne comprends pas pourquoi il n'y a pas de tabulation avant ...
Voilà la solution:
Code :
|
Tout simplement, quand tu veux sortir de ton while, tu valides avec une ligne vide ...
Dans le deuxième cas, je n'ai pas d'erreur. A moins que tu ne renseignes pas le prénom avant de faire le print et que tu mettes ton print en réponse à la demande du prénom ?
Marsh Posté le 17-03-2008 à 13:28:58
Citation : Tout simplement, quand tu veux sortir de ton while, tu valides avec une ligne vide ... |
Merci beaucoup, c'est ce que je n'arrivais pas à faire, ça marche maintenant
Pour le deuxième problème, ça fonctionne, c'est moi qui me plantait dans le terminal.
C'est donc résolu, merci
Marsh Posté le 17-03-2008 à 14:52:44
De rien
Marsh Posté le 07-07-2015 à 15:39:28
Bonjour à tous,
Je suis un novice en programmation, et un ami m'a donné ce script:
#!/usr/bin/env python2.7.6
import argparse
parser = argparse.ArgumentParser(description='Process the JSpecies output file to MEGA.')
parser.add_argument(dest='JSfile', metavar='', help='JSpecies file', type=str)
args = parser.parse_args()
M=[]
with open(args.JSfile, 'r') as JSinput:
for line in JSinput:
line = line.split()
M.append(line)
analyseType = str(M[0][0])
title = '!Title '+analyseType+' results from '+args.JSfile+';'
if analyseType == 'ANIm':
description = '!Description ANIm is the Average Nucleotide Identity using MUMmer algorithm calculated by the JSpecies software;'
elif analyseType == 'ANIb':
description = '!Description ANIb is the Average Nucleotide Identity using BLAST algorithm calculated by the JSpecies software;'
elif analyseType == 'Tetra':
description = '!Description Tetra is the Tetranucleotide Signature Frequency Correlation Coefficient calculated by the JSpecies software;'
else:
description = ''
format = '!Format DataType=Distance DataFormat=LowerLeft NTaxa='+str(len(M[1]))+';'
print('#mega', title, description, format, sep='\n')
print()
for i in M[1]:
print('#', i, sep='')
print()
for i in M[3:]:
stop = i.index('---')
for j in range(len(i)):
if analyseType != 'Tetra':
i[j+1] = i[j+1].replace('NaN','50')
i[j+1] = '{0:f}'.format(100-float(i[j+1]))
else:
i[j+1] = i[j+1].replace('NaN','50')
i[j+1] = '{0:f}'.format(1-float(i[j+1]))
print(' '.join(i[1:stop]))
Cependant à chaque fois je reçois un message d'erreur en exécutant la commande python ./jspecies2mega.py :
File "./jspecies2mega.py", line 30
print('mega', title, description, format, sep='\n')
^
Tout aide serait le bienvenue
Marsh Posté le 16-03-2008 à 16:45:13
Bonjour
J'apprends à programmer en python depuis quelques jours avec ledocument "Gérard Swinnen : Apprendre à programmer avec Python". J'ensuis au chapitre 6, sur les fonctions prédéfinies. Je suis sous Ubuntu7.10.
Seulement j'ai quelques soucis :
1)Soit un script qui fonctionne dans un terminal, par exemple :
ch = "Bonjour"
lc = len(ch)
nv = ""
i = lc -1
while i >= 0:
nv = nv + ch[i]
i = i-1
print nv
On reprend le même script, sauf qu'à la dernière ligne, on met le "print" au début :
ch = "Bonjour"
lc = len(ch)
nv = ""
i = lc -1
while i >= 0:
nv = nv + ch[i]
i = i-1
print nv
Si, dans le terminal, j'essaye de lancer le script, j'obtiens l'erreur suivante :
File "<stdin>", line 4
print nv
^
SyntaxError: invalid syntax
Où est le problème? Je bloque et c'est gênant. Pourtant, même dans la "leçon", ils mettent le "print" sans décalage, comme ici :
prenom = input('Entrez votre prénom (entre guillemets) : ' )
print 'Bonjour,', prenom
Ce script ne marche pas chez moi, j'obtiens la même erreur
Je précise que pour éxecuter un programme, j'ouvre un terminal et tape "python", colle le script et tape "entrée".
Merci beaucoup à tous ceux qui me répondront
Message édité par koiler le 17-03-2008 à 13:29:16
---------------
"L'utopie d'aujourd'hui est la réalité de demain" Hugo Mon Feed-back