Co to %s
znaczy w Pythonie? A co robi następny fragment kodu?
Na przykład...
if len(sys.argv) < 2:
sys.exit('Usage: %s database-name' % sys.argv[0])
if not os.path.exists(sys.argv[1]):
sys.exit('ERROR: Database %s was not found!' % sys.argv[1])
%
Operator jest zastąpiona mocniejszegostr.format
metody, zobacz PPG-3101 .Odpowiedzi:
Jest to składnia formatująca ciąg znaków (zapożyczona z C).
Zobacz „PyFormat” :
Edycja: Oto naprawdę prosty przykład:
%s
Token pozwala mi wkładać (i potencjalnie format) ciąg. Zwróć uwagę, że%s
token jest zastępowany przez wszystko, co przekażę do ciągu po%
symbolu. Zauważ również, że używam tutaj również krotki (gdy masz tylko jeden ciąg, użycie krotki jest opcjonalne), aby zilustrować, że wiele ciągów można wstawić i sformatować w jednej instrukcji.źródło
str.format
metody.(name,)
i nie tylkoname
?Odpowiedź Andrzeja jest dobra.
Aby ci nieco bardziej pomóc, oto jak używasz wielu formatów w jednym ciągu
Jeśli używasz ints zamiast string, użyj% d zamiast% s.
źródło
%s
na liczbach całkowitych, zostanie po prostu przekonwertowany na ciąg.print('This number will be padded with 4 zeros: %05d ' % 1)
- to zadziała.print('This number will be padded with 4 zeros: %05s ' % 1)
- to się nie uda `format
Metodę wprowadzono Pythonie 2.6. Jest bardziej wydajny i niewiele trudniejszy w użyciu:źródło
%s
wskazuje typ konwersji ciągu znaków podczas korzystania z możliwości formatowania napisów w języku Python. Dokładniej,%s
konwertuje określoną wartość na ciąg przy użyciustr()
funkcji. Porównaj to z%r
typem konwersji, który używarepr()
funkcji do konwersji wartości.Zapoznaj się z dokumentacją dotyczącą formatowania ciągów .
źródło
%s
i%d
są specyfikatorami formatu lub symbolami zastępczymi do formatowania ciągów / liczb dziesiętnych / liczb zmiennoprzecinkowych itp.NAJBARDZIEJ powszechnie używany specyfikator formatu:
%s
: strunowy%d
: dziesiętne%f
: pływakKod nieobjaśniający:
źródło
Odpowiadając na drugie pytanie: do czego służy ten kod? ...
Jest to dość standardowy kod sprawdzający błędy dla skryptu Pythona, który akceptuje argumenty wiersza poleceń.
Zatem pierwsze
if
stwierdzenie oznacza: jeśli nie przekazałeś mi argumentu, powiem ci, jak powinieneś przekazać mi argument w przyszłości, np. Zobaczysz to na ekranie:Następna
if
instrukcja sprawdza, czy „nazwa-bazy danych”, którą przekazałeś do skryptu, faktycznie istnieje w systemie plików. Jeśli nie, otrzymasz następujący komunikat:Z dokumentacji :
źródło
Oto dobry przykład w Pythonie3.
źródło