2012-01-24 08:58:00 +0000 2012-01-24 08:58:00 +0000
36
36

Jak napisać kod składający się z więcej niż 1 linii w interpreterze Pythona?

Mam problem z kodowaniem Pythona w terminalu. Uczę się tylko podstaw, więc nie mam potrzeby tworzenia plików .py.

W terminalu mogę uruchomić jedną linię kodu w interpreterze Pythona, ale jak napisać więcej niż jedną linię?

Oczywiście, jeśli nacisnę enter, to wprowadza polecenie i nie przechodzi w dół linii.

Chcę tylko przetestować następujące czynności w terminalu:

my_age = 35
my_eyes = 'Blue'
print "my age is %d and my eye color is %s" % (my_age, my_eyes)

Odpowiedzi (7)

33
33
33
2012-01-24 09:37:07 +0000

Add a trailing backslash (`## Add a trailing backslash ()

Sztuczka jest - podobna do tego, co zrobiłbyś w bash, na przykład - aby dodać trailing backslash. Na przykład, jeśli chcę wydrukować 1:

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>>

Jeśli napiszesz ## Add a trailing backslash (## Add a trailing backslash ()

Sztuczka jest - podobna do tego, co zrobiłbyś w bash, na przykład - aby dodać trailing backslash. Na przykład, jeśli chcę wydrukować 1:

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>>

Jeśli napiszesz , Python podpowie Ci ... (linie kontynuacji), aby wprowadzić kod w następnej linii, czyli.

Uwaga: To jest to, co dzieje się automatycznie, gdy tworzysz definicję funkcji lub klasy, tj. czasy, kiedy naprawdę potrzebujesz nowej linii, więc nigdy nie ma naprawdę dobrego zastosowania dla tego, a przynajmniej żadnego, o którym wiem. Innymi słowy, Python jest wystarczająco inteligentny, aby wiedzieć, że potrzebujesz linii kontynuacji, gdy wprowadzasz nową definicję funkcji lub inne podobne konstrukcje (np. if:). W tych automatycznych przypadkach należy pamiętać, że trzeba wprowadzić pustą linię za pomocą ## Add a trailing backslash (## Add a trailing backslash ()

Sztuczka jest - podobna do tego, co zrobiłbyś w bash, na przykład - aby dodać trailing backslash. Na przykład, jeśli chcę wydrukować 1:

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>>

Jeśli napiszesz ## Add a trailing backslash (## Add a trailing backslash ()

Sztuczka jest - podobna do tego, co zrobiłbyś w bash, na przykład - aby dodać trailing backslash. Na przykład, jeśli chcę wydrukować 1:

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>>

Jeśli napiszesz , Python podpowie Ci ... (linie kontynuacji), aby wprowadzić kod w następnej linii, czyli.

Uwaga: To jest to, co dzieje się automatycznie, gdy tworzysz definicję funkcji lub klasy, tj. czasy, kiedy naprawdę potrzebujesz nowej linii, więc nigdy nie ma naprawdę dobrego zastosowania dla tego, a przynajmniej żadnego, o którym wiem. Innymi słowy, Python jest wystarczająco inteligentny, aby wiedzieć, że potrzebujesz linii kontynuacji, gdy wprowadzasz nową definicję funkcji lub inne podobne konstrukcje (np. if:). W tych automatycznych przypadkach należy pamiętać, że trzeba wprowadzić pustą linię za pomocą , aby powiedzieć Pythonowi, że się skończyło.

We wszystkich innych przypadkach musisz pisać jedną linię po drugiej. Sposób działania interpretera polega na tym, że interpretuje on każdą linię, którą mu podasz. Nie więcej, nie mniej. Będzie on “działał” tylko wtedy, gdy zobaczy nową linię, a więc powie interpreterowi, by wykonał to, co mu podałeś. Pojedynczy odwrotny ukośnik uniemożliwi interpreterowi otrzymanie znaku nowej linii (tzn. nie będzie wiedział, że rzeczywiście nacisnąłeś Enter), ale w końcu go otrzyma.

Interpreter Pythona ma zaawansowane możliwości gdy używasz GNU readline, takie jak Emacs lub przypisania klawiszy w stylu vi- do poruszania się w obrębie linii (np. Ctrl-A). Działają one jednak tylko w jednej, bieżącej linii. Historia też tam jest, wystarczy spróbować i nacisnąć ↑.

Co jeśli chcę uruchamiać skomplikowane linie w kółko?

Prawdopodobnie chcesz użyć odpowiednich plików źródłowych, jeśli chcesz wykonać więcej niż jedną linię kodu na raz.

Możesz też użyć Zeszytów Jupytera , które oferują świetny, interaktywny sposób tworzenia kodu Pythona z wbudowanym interpreterem. Możesz pisać kod tak, jak w edytorze kodu źródłowego, ale możesz wybrać, które linie są interpretowane razem. Następnie możesz selektywnie uruchamiać tylko części kodu. Najlepiej jest po prostu spróbować i zobaczyć, czy to pasuje do Twojego przepływu pracy.

8
8
8
2013-07-01 22:22:29 +0000

A może by tak użyć ;A może by tak użyć ? Średnik sygnalizuje koniec polecenia, a odwrotny ukośnik, że kontynuujemy w następnej linii. Na przykład, wpiszpython` w linii poleceń, aby dostać się do interpretera Pythona, a następnie

>>> x=0 ;\
... print(x) ;\
... x=4 ;\
... print(x)

powinno dać wynik

0
4
```.
2
2
2
2012-01-24 09:54:25 +0000

Mówiąc prościej, jeśli chcesz się uczyć i chcesz uruchomić więcej niż jedną linię, piszesz ją w pliku .py.

Metoda trailing backslash jest dobra, gdy szybko chcesz uruchomić serię poleceń, ale nie pomaga, gdy się uczysz.

Będziesz mógł lepiej rozwijać kod, edytować poszczególne polecenia bez martwienia się o błędy ortograficzne i ponownie wykorzystywać fragmenty kodu, które uznasz za przydatne, jeśli zapiszesz je w małym pliku.

1
1
1
2018-05-01 18:28:49 +0000

Właśnie przeglądałem odpowiedź, którą dostałeś.Eksperymentowałem, umieszczając różne symbole.W końcu dostałem poprawną składnię, aby to napisać.spróbuj następującego

print("more string") ; print(3)

to da ci wynik

more string

3

bez żadnego błędu

użyłem tylko ‘;’, aby napisać w innej linii

i mam nadzieję, że moja odpowiedź może ci pomóc.

1
1
1
2013-07-01 22:44:47 +0000

Właśnie wpisałem poniższe w moim znaku zachęty powłoki i działało dobrze:

$ python
Python 2.7.3 (default, Aug 1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> my_age = 35
>>> my_eyes = 'Blue'
>>> print "my age is %d and my eye color is %s" % (my_age, my_eyes)
my age is 35 and my eye color is Blue
>>>

Sposób na wpisanie więcej niż jednej linii kodu w interaktywnym interpreterze Pythona jest, cóż, wpisanie więcej niż jednej linii kodu w interaktywnym interpreterze Pythona. Pomyślałbym, że byłoby to wystarczająco dobre dla twoich celów.

To prawda, że po każdej linii otrzymasz nowy znak zachęty, co oznacza, że jeśli dwie z twoich linii kodu wyprodukują dane wyjściowe, będą one oddzielone znakami zachęty. Domyślam się, że to jest to, o co ci chodzi, chociaż przykład w twoim pytaniu nie sugeruje tego:

$ python
Python 2.7.3 (default, Aug 1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "first line"
first line
>>> print "second line"
second line
>>>

Jeśli jest to problem, możesz zamknąć swoje wielokrotne oświadczenia w (odpowiednio wciętej!) if oświadczenie:

$ python
Python 2.7.3 (default, Aug 1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> if 1:
... print "first line"
... print "second line"
... 
first line
second line
>>>

(Sugerowałbym, mimo że nie odpowiada to na twoje pytanie, że jeśli piszesz kod, który jest wystarczająco złożony, aby to miało znaczenie, powinieneś pisać skrypty. Być może zacząłeś to robić w ciągu półtora roku, odkąd zamieściłeś to pytanie).

0
0
0
2018-08-28 19:51:18 +0000

Wystarczy wyjść z powłoki i otworzyć nowy plik edytora. Tzn. przejdź do pliku i otwórz nowy plik. Napisz tyle linii kodu, ile chcesz.

-2
-2
-2
2016-05-25 12:12:58 +0000

Przy trzech kropkach upewnij się, że wcisnąłeś klawisz “tab” przed wpisaniem następnej komendy. W ten sposób możesz kontynuować pisanie dowolnej ilości komend. Tak więc, gdy wciśniesz enter po napisaniu drugiej linii kodu, interpreter pozwoli Ci wpisać trzecią linię kodu… jak w poniższym przykładzie Fibonacciego (z tutoriala):

a,b=0,1 while b<10: … print(b) # Jeśli wpiszesz polecenie print zaraz po kropkach i wciśniesz enter na końcu, dostaniesz błąd wcięcia. Zamiast tego naciśnij tabulator po trzech kropkach, następnie napisz swój kod i naciśnij klawisz enter, to pozwoli ci wprowadzić trzecią linię kodu i tak dalej. Spójrz na poniższy przykład (z tutoriala):

a,b=0,1 # Po którym następuje klawisz enter while b<10: # Po którym następuje klawisz enter … print(b) # Po którym następuje klawisz enter. zauważ tabulator po trzech kropkach … a,b=b,a+b # Po którym następuje klawisz enter …klawisz enter # Nie ma więcej komend do wpisania

Zobaczysz wynik powyższego działania.