Jawaban:
Ekspresi hanya mengandung pengidentifikasi , literal dan operator , di mana operator termasuk operator aritmatika dan boolean, fungsi operator call ()
yang Operator berlangganan []
dan serupa, dan dapat dikurangi untuk beberapa jenis "value", yang dapat berupa objek Python. Contoh:
3 + 5
map(lambda x: x*x, range(10))
[a.x for a in some_iterable]
yield 7
Pernyataan (lihat 1 ,2 ), di sisi lain, adalah segala sesuatu yang dapat membuat garis (atau beberapa baris) dari kode Python. Perhatikan bahwa ekspresi juga pernyataan. Contoh:
# all the above expressions
print 42
if x: do_y()
return
a = 7
print("Hello world!")
atau my_list.append(42)
.
a = yield 7
valid, yield 7
adalah ekspresi. Dahulu kala, yield
diperkenalkan sebagai pernyataan, tetapi digeneralisasikan ke ekspresi dalam PEP 342 .
Ekspresi - dari New Oxford American Dictionary :
ekspresi: Matematika kumpulan simbol yang secara bersama-sama mengekspresikan suatu kuantitas: ekspresi untuk keliling lingkaran adalah 2πr.
Dalam istilah umum kotor: Ekspresi menghasilkan setidaknya satu nilai.
Dalam Python, ekspresi tercakup secara luas dalam Referensi Bahasa Python Secara umum, ekspresi dalam Python terdiri dari kombinasi hukum yang sintaksis antara Atom , Primer , dan Operator .
Ekspresi python dari Wikipedia
Contoh ungkapan:
Kombinasi literal dan sintaksis benar dengan Operator dan fungsi bawaan atau panggilan fungsi yang ditulis pengguna:
>>> 23
23
>>> 23l
23L
>>> range(4)
[0, 1, 2, 3]
>>> 2L*bin(2)
'0b100b10'
>>> def func(a): # Statement, just part of the example...
... return a*a # Statement...
...
>>> func(3)*4
36
>>> func(5) is func(a=5)
True
Pernyataan dari Wikipedia:
Dalam pemrograman komputer, pernyataan dapat dianggap sebagai elemen mandiri terkecil dari bahasa pemrograman imperatif. Suatu program dibentuk oleh urutan satu atau lebih pernyataan. Pernyataan akan memiliki komponen internal (misalnya, ekspresi).
Pernyataan python dari Wikipedia
Dalam istilah umum kasar: Pernyataan Melakukan Sesuatu dan sering kali terdiri dari ekspresi (atau pernyataan lain)
Referensi Bahasa Python mencakup Pernyataan Sederhana dan Pernyataan Kompon secara luas.
Perbedaan "Pernyataan melakukan sesuatu" dan "ekspresi menghasilkan nilai" perbedaan dapat menjadi buram:
if
biasanya sebuah pernyataan, seperti if x<0: x=0
tetapi Anda juga dapat memiliki ekspresi kondisional sepertix=0 if x<0 else 1
yang ekspresi. Dalam bahasa lain, seperti C, formulir ini disebut operator seperti inix=x<0?0:1;
def func(a): return a*a
adalah ekspresi ketika digunakan tetapi terdiri dari pernyataan ketika didefinisikan.None
adalah prosedur dalam Python: def proc(): pass
Secara sintaksis, Anda dapat menggunakan proc()
sebagai ekspresi, tapi itu mungkin bug ...func(x=2);
Apakah itu Ekspresi atau Pernyataan? ( Jawab: Ekspresi yang digunakan sebagai Pernyataan dengan efek samping. ) Pernyataan penugasan x=2
di dalam pemanggilan fungsi func(x=2)
di Python menetapkan argumen yang dinamai a
menjadi 2 hanya dalam pemanggilan ke func
dan lebih terbatas daripada contoh C.Meskipun ini tidak terkait dengan Python:
Suatu expression
mengevaluasi suatu nilai. A statement
melakukan sesuatu.
>>> x + 2 # an expression
>>> x = 1 # a statement
>>> y = x + 1 # a statement
>>> print y # a statement (in 2.x)
2
somelist.append(123)
,. Sebagian besar panggilan fungsi, sungguh.
Pernyataan mewakili suatu tindakan atau perintah misalnya pernyataan cetak, pernyataan penugasan.
print 'hello', x = 1
Ekspresi adalah kombinasi dari variabel, operasi, dan nilai yang menghasilkan nilai hasil.
5 * 5 # yields 25
Terakhir, pernyataan ekspresi
print 5*5
Ekspresi adalah sesuatu yang dapat direduksi menjadi nilai, misalnya "1+3"
atau "foo = 1+3"
.
Sangat mudah untuk memeriksa:
print foo = 1+3
Jika tidak berhasil, itu adalah pernyataan, jika tidak, itu adalah ekspresi.
Pernyataan lain bisa berupa:
class Foo(Bar): pass
karena tidak dapat direduksi menjadi suatu nilai.
a = b = expr
diperbolehkan, sebagai kasus khusus) dengan Python. Dalam bahasa menggambar lebih banyak inspirasi dari C, itu.
class Foo(bar):
adalah awal dari sebuah pernyataan, bukan pernyataan yang lengkap.
foo = 1+3
BUKAN sebuah ekspresi. Ini adalah pernyataan (tugas tepatnya). Bagiannya 1+3
adalah ekspresi.
Ekspresi adalah sesuatu, sementara pernyataan melakukan sesuatu.
Ekspresi adalah pernyataan juga, tetapi harus memiliki pengembalian.
>>> 2 * 2 #expression
>>> print(2 * 2) #statement
PS: Penerjemah selalu mencetak nilai semua ekspresi.
PERNYATAAN:
Pernyataan adalah tindakan atau perintah yang melakukan sesuatu. Mis: Jika Lain, Loops..etc
val a: Int = 5
If(a>5) print("Hey!") else print("Hi!")
EKSPRESI:
Ekspresi adalah kombinasi dari nilai, operator, dan literal yang menghasilkan sesuatu.
val a: Int = 5 + 5 #yields 10
Pernyataan berisi kata kunci.
Ekspresi tidak mengandung kata kunci.
print "hello"
adalah pernyataan, karena print
merupakan kata kunci.
"hello"
adalah ekspresi, tetapi kompresi daftar menentang ini.
Berikut ini adalah pernyataan ekspresi, dan itu benar tanpa pemahaman daftar:
(x*2 for x in range(10))
x = 1
adalah pernyataan yang sangat bagus, tetapi tidak mengandung kata kunci.
is
Adalah kata kunci tetapi x is y
tidak harus berupa pernyataan (secara umum itu hanya ekspresi).
Ekspresi:
objects
dan operators
.<object><operator><object>
2.0 + 3
adalah ekspresi yang mengevaluasi 5.0
dan memiliki tipe yang float
terkait dengannya.
Pernyataan
Pernyataan terdiri dari ekspresi. Ini dapat menjangkau beberapa baris.
Ada beberapa pernyataan yang dapat mengubah status program Python kami: membuat atau memperbarui variabel, mendefinisikan fungsi, dll.
Dan ekspresi hanya mengembalikan beberapa nilai yang tidak dapat mengubah keadaan global atau keadaan lokal dalam suatu fungsi.
Tapi sekarang sudah :=
, itu alien!
Python menyebut ekspresi "pernyataan ekspresi", jadi pertanyaannya mungkin tidak sepenuhnya terbentuk.
Pernyataan terdiri dari hampir semua hal yang dapat Anda lakukan dengan Python: menghitung nilai, menetapkan nilai, menghapus variabel, mencetak nilai, kembali dari suatu fungsi, menaikkan pengecualian, dll. Daftar lengkapnya ada di sini: http: // docs.python.org/reference/simple_stmts.html#
Pernyataan ekspresi terbatas pada fungsi panggilan (misalnya, math.cos (theta) "), operator (misalnya," 2 + 3 "), dll. Untuk menghasilkan nilai.
Saya pikir ekspresi berisi operator + operan dan objek yang menampung hasil operasi ... misalnya
var sum = a + b;
tetapi pernyataan hanyalah sebaris kode (mungkin berupa ekspresi) atau blok kode ... misalnya
fun printHello(name: String?): Unit {
if (name != null)
println("Hello ${name}")
else
println("Hi there!")
// `return Unit` or `return` is optional
}