Bagaimana cara saya menulis kode lebih dari 1 baris pada juru bahasa Python?

35

Saya punya masalah coding Python di terminal. Saya hanya belajar dasar-dasar jadi saya tidak perlu membuat file .py.

Di terminal saya dapat menjalankan satu baris kode pada juru bahasa Python, tetapi bagaimana cara saya menulis lebih dari satu baris?

Jelas jika saya menekan enter, ia memasuki perintah dan tidak turun garis.

Saya hanya ingin menguji terminal berikut:

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

sumber
1
Saya curiga Anda mengalami masalah dengan 'indentasi'. A. ketik 'python'. B. >>> muncul. C. Untuk menjalankan skrip, skrip perlu diindentasi dengan benar dengan 'tab'.
r4.
3
Saya tidak bertanya apakah cara saya belajar benar atau tidak ... Saya mengajukan pertanyaan tertentu, jika Anda tahu jawabannya, tolong ... jika tidak ...

Jawaban:

32

Tambahkan garis miring terbalik ( \)

Caranya adalah - mirip dengan apa yang akan Anda lakukan bash, misalnya - untuk menambahkan garis miring terbalik. Misalnya, jika saya ingin mencetak 1:

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

Jika Anda menulis \, Python akan meminta Anda dengan ...(baris lanjutan) untuk memasukkan kode di baris berikutnya, demikian dikatakan.

Catatan: Inilah yang secara otomatis terjadi ketika Anda membuat fungsi atau definisi kelas, yaitu saat-saat ketika Anda benar - benar membutuhkan baris baru, jadi tidak pernah ada penggunaan yang benar-benar baik untuk itu, atau setidaknya tidak ada yang saya ketahui. Dengan kata lain, Python cukup pintar untuk menyadari bahwa Anda memerlukan garis kelanjutan ketika Anda memasukkan definisi fungsi baru atau konstruksi serupa lainnya (misalnya if:). Dalam kasus otomatis ini, perhatikan bahwa Anda harus memasukkan baris kosong menggunakan \untuk memberi tahu Python bahwa Anda sudah selesai.

Untuk yang lainnya, Anda harus menulis satu baris demi satu. Cara seorang penerjemah bekerja adalah bahwa itu, yah, mengartikan setiap baris yang Anda makan itu. Tidak lebih, tidak kurang. Itu hanya akan "bertindak" ketika melihat baris baru, oleh karena itu memberi tahu penerjemah untuk mengeksekusi apa yang Anda berikan. Single backslash akan mencegah penerjemah dari menerima karakter baris baru (yaitu tidak akan tahu bahwa Anda benar-benar ditekan Enter), tetapi akhirnya akan menerima satu.

Penerjemah Python memiliki kemampuan tingkat lanjut ketika Anda menggunakan GNU readline, seperti Emacs atau vi-style keybindings untuk bernavigasi di dalam sebuah baris (mis Ctrl-A.). Namun itu hanya bekerja di satu baris saat ini. Sejarah juga ada, coba saja dan tekan .

Bagaimana jika saya ingin menjalankan garis yang rumit berulang kali?

Anda mungkin ingin menggunakan file sumber yang tepat jika Anda ingin mengeksekusi lebih dari satu baris kode sekaligus.

Atau, gunakan notebook Jupyter , yang menawarkan cara interaktif dan hebat untuk membuat kode Python dengan juru bahasa bawaan . Anda dapat menulis kode seperti pada editor kode sumber, tetapi Anda dapat memilih baris mana yang ditafsirkan bersama. Anda kemudian dapat menjalankan hanya bagian dari kode secara selektif. Cara terbaik adalah dengan hanya mencoba dan melihat apakah itu cocok dengan alur kerja Anda.

slhck
sumber
:) bagus untuk baris pertama, tetapi bagaimana jika saya ingin lebih banyak baris? trailing backslash kedua memberikan kesalahan sintaksis.
Jadi apa sebenarnya yang tidak berfungsi? Cukup pilih dan salin baris-baris itu, lalu rekatkan di terminal. Mereka akan mengeksekusi dari atas ke bawah seperti dalam skrip, karena baris baru diuraikan oleh penerjemah. Apa masalahnya?
slhck
1
Saya ingin mengetik ini langsung di terminal, daripada menulisnya di editor dan tempel di sana ... sepertinya buang-buang waktu :)
Maka Anda harus mengetik satu baris demi baris. Tidak ada jalan lain. Ini seorang penerjemah. Ini akan meminta Anda untuk garis lanjutan hanya ketika Anda benar-benar membutuhkannya.
slhck
7

Bagaimana kalau menggunakan ;\? Tanda titik koma memberi tanda pada akhir perintah dan tanda garis miring terbalik menunjukkan bahwa kita melanjutkan ke baris berikutnya. Misalnya, ketikkan pythonpada command line untuk masuk ke interpreter Python, lalu

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

harus memberikan output

0
4
Garrett
sumber
2

Sederhananya, jika Anda ingin belajar dan ingin menjalankan lebih dari satu baris Anda menulisnya ke file .py.

Metode trailing backslash bagus ketika Anda ingin menjalankan serangkaian perintah dengan cepat, tetapi itu tidak membantu ketika Anda sedang belajar.

Anda akan dapat mengembangkan kode lebih baik, mengedit perintah individual tanpa khawatir tentang kesalahan ejaan, dan menggunakan kembali potongan kode yang Anda temukan berguna jika Anda menuliskannya ke dalam file kecil.

Rory Alsop
sumber
1
Ya saya setuju. Tapi saya ada di level dasar. Saya tidak menulis sesuatu yang berguna, hanya pengujian variabel bodoh dan matematika dll. Tidak ada yang layak bahkan membuat file. Terima kasih atas sarannya.
Bahkan matematika sederhana layak dimasukkan ke dalam file - jika itu 3 baris atau lebih saya akan melakukannya sendiri vi. Meski begitu itu ada di sana jika saya bertanya-tanya apa yang saya lakukan nanti.
Rory Alsop
1

Saya baru saja mengetik yang berikut ini di prompt shell saya, dan itu berfungsi dengan baik:

$ 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
>>> 

Cara untuk mengetik lebih dari satu baris kode dalam interpreter Python interaktif adalah, well, untuk mengetik lebih dari satu baris kode dalam interpreter Python interaktif. Saya pikir itu akan cukup baik untuk tujuan Anda.

Benar bahwa Anda akan mendapatkan prompt baru setelah setiap baris, yang berarti bahwa jika dua baris kode Anda menghasilkan output, output itu akan dipisahkan oleh prompt. Saya kira itulah yang Anda khawatirkan, meskipun contoh dalam pertanyaan Anda tidak menyarankan bahwa:

$ 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
>>> 

Jika itu masalah, Anda dapat melampirkan beberapa pernyataan Anda dalam pernyataan (indentasi dengan benar!) if:

$ 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
>>> 

(Saya sarankan, meskipun itu tidak menjawab pertanyaan Anda, bahwa jika Anda menulis kode yang cukup kompleks untuk masalah ini, Anda harus menulis skrip. Mungkin Anda sudah mulai melakukannya pada tahun setengah) sejak Anda memposting pertanyaan.)

Keith Thompson
sumber
0

Saya baru saja melalui jawaban yang Anda dapatkan. Saya terus bereksperimen dengan meletakkan simbol yang berbeda. Saya akhirnya mendapatkan sintaks yang tepat untuk menuliskannya.

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

ini akan memberi Anda hasil

more string

3

tanpa kesalahan

saya baru saja menggunakan ';' untuk membuatnya menulis di baris lain

Saya harap jawaban saya dapat membantu Anda

Pisau Penasaran
sumber
0

Biarkan shell dan buka file editor baru. Yaitu pergi ke file dan buka file baru. Tulis sebanyak mungkin baris kode yang Anda inginkan.

Hemant Gautam
sumber
-2

Pada tiga titik pastikan untuk menekan tombol "tab" sebelum Anda memasukkan perintah berikutnya. Anda dapat terus menulis perintah sebanyak itu. Jadi ketika Anda menekan enter setelah menulis kode baris kedua Anda, juru bahasa memungkinkan Anda memasukkan baris kode ketiga ... seperti dalam contoh Fibonacci di bawah ini (dari tutorial):

a, b = 0,1 sementara b <10: ... cetak (b) # Jika Anda memasukkan perintah cetak segera setelah titik-titik dan tekan tombol enter di akhir, Anda akan mendapatkan kesalahan indentasi. Alih-alih tekan tab setelah tiga titik, lalu tulis kode Anda dan tekan tombol enter, itu akan membiarkan Anda memasukkan baris kode ketiga dan seterusnya. Lihat contoh di bawah ini (dari tutorial):

a, b = 0,1 # Diikuti oleh tombol enter sementara b <10: # Diikuti oleh tombol enter ... cetak (b) # Diikuti oleh tombol enter. catat tab setelah tiga titik ... a, b = b, a + b # Diikuti oleh enter key ... enter key # Tidak ada lagi perintah untuk masuk

Anda akan melihat hasil prog di atas

Shashi
sumber