Passage d'une chaîne en argument à une fonction - pourquoi n'est-il pas de travail?

Essayant de faire passer une chaîne de caractères en argument à une fonction, qui sera ensuite utilisé comme une variable dans la fonction. Pour quelque raison, quand je suis en train de le faire, ça ne fonctionne pas. Ce que je fais mal?

import subprocess
def printerSetup(printer):
    subprocess.call(r'Cscript c:/windows/System32/Printing_Admin_Scripts/en-US/Prnport.vbs -a -r "'printer'.print.web.com" -h "' + printer + '.print.web.com" -o raw')
    if printer == 'saturn' or printer == 'jupiter' or printer == 'neptune':
        subprocess.call(r'rundll32 printui.dll, PrintUIEntry /if /b "' + printer + '" /f w:\printers\toshibae3511\eng\est_c2.inf /r "' + printer + '.print.web.com" /m "TOSHIBA e-STUDIO Color PS3"')
    if printer == 'mercury':
        subprocess.call(r'rundll32 printui.dll, PrintUIEntry /if /b "' + printer + '" /f w:\printers\dell1720\drivers\print\dell1720\DKABJ740.inf /r "' + printer + '.print.web.com" /m "Dell Laser Printer 1720dn"')

printerSetup("neptune")
printerSetup("mercury")

Modifié le programme. Après avoir essayé de lancer ce nouveau-en un, obtenez ce message d'erreur:

C:\Python27\Projects\Printer Setup>c:\python27\python.exe saturn.py
  File "saturn.py", line 3
    subprocess.call(r'Cscript c:/windows/System32/Printing_Admin_Scripts/en-US/P
rnport.vbs -a -r "'printer'.print.web.com" -h "' + printer + '.print.web.c
om" -o raw')

                         ^
SyntaxError: invalid syntax
  • Veuillez préciser de quelle façon il ne fonctionne pas. Êtes-vous essayer d'obtenir la valeur de la printer argument en argument de la première subprocess.call() ligne?
  • Dans quel sens est-il pas de travail?
  • Vous avez besoin des deux points après si les déclarations.
  • if printer == 'saturn' or 'jupiter' or 'neptune' vous avez oublié certains printer == ici
  • aussi loin que je pensais, "chaîne"variable"string" doit insérer la variable dans la chaîne, mais j'aurais du utiliser +, ne serait-ce pas I.
  • Vous avez oublié de mettre l'opérateur " + " tout en utilisant la variable. Comme ceci: subprocess.call(r'Cscript c:/windows/System32/Printing_Admin_Scripts/en-US/Prnport.vbs -a -r "'+printer+'.print.mediag.com" -h "'+printer+'.print.mediag.com" -o raw') Essayer la même chose pour les autres états
  • Désolé pour la bêtise de cette question, l'été d'environ 6 mois depuis que j'ai programmé en Python, c'est la décoloration!