Die übergabe eines string-argument an eine Funktion - warum funktioniert das nicht?
Versuchen, übergeben Sie einen string-argument an eine Funktion, die dann als Variablen in der gesamten Funktion. Aus irgendeinem Grund, wenn ich versuche, dies zu tun, es funktioniert nicht. Was mache ich falsch?
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")
Bearbeitet das Programm. Nach dem Versuch, dieses neue, diese Fehlermeldung erhalten:
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
- Bitte geben Sie an, in welcher Weise es funktioniert nicht. Sind Sie versuchen, den Wert der
printer
argument argument in der erstensubprocess.call()
Linie? - In welchem Sinne ist es nicht?
- Sie benötigen Semikolon nach if-Anweisungen.
if printer == 'saturn' or 'jupiter' or 'neptune'
Sie vergessen etwasprinter ==
hier- so weit wie ich dachte, "Zeichenfolge"variable"string" einfügen sollte, die variable in den string ein, aber ich würde verwenden Sie+,, nun wäre das nicht I.
- Haben Sie vergessen, setzen Sie die ' + ' - operator während der Verwendung der variable. Wie diese:
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')
Versuchen, das gleiche für die anderen Aussagen - Sorry für die Albernheit dieser Frage, seit ca 6 Monaten seit ich programmiert in Python, es ist fading!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
variable == value
für jedenor
- Anweisung, etwa so:Du auch vergessen, die nachgestellten Doppelpunkt auf jeden
if
- Anweisung.Wenn Sie sagen wollen "hat diese variable dieser Liste entsprechen der Werte?", die folgenden, könnten sauberer sein für Sie:
Müssen Sie auch fügen Sie Variablen zu strings - Sie können nicht einfach legen Sie Sie angrenzenden:
'string' 'string'