जवाबों:
भाव उसमें केवल पहचानकर्ता , शाब्दिक और ऑपरेटरों , जहां ऑपरेटरों गणित और बूलियन ऑपरेटरों, समारोह में शामिल कॉल ऑपरेटर सदस्यता ऑपरेटर और इसी तरह की है, और "मूल्य" किसी तरह का है, जो किसी भी अजगर वस्तु हो सकता है को कम किया जा सकता है। उदाहरण:()
[]
3 + 5
map(lambda x: x*x, range(10))
[a.x for a in some_iterable]
yield 7
कथन (देखें) 1 ,2 ), दूसरी ओर, वे सब कुछ हैं जो पायथन कोड की एक पंक्ति (या कई लाइनें) बना सकते हैं। ध्यान दें कि भाव कथन भी हैं। उदाहरण:
# all the above expressions
print 42
if x: do_y()
return
a = 7
print("Hello world!")
या उदाहरण के लिए फ़ंक्शन कॉल अभिव्यक्तियों का उपयोग करने के लिए काफी आम है my_list.append(42)
।
a = yield 7
वैध है, yield 7
एक अभिव्यक्ति है। बहुत समय पहले, yield
एक बयान के रूप में पेश किया गया था, लेकिन इसे पीईपी 342 में एक अभिव्यक्ति के लिए सामान्यीकृत किया गया था ।
अभिव्यक्ति - न्यू ऑक्सफोर्ड अमेरिकन डिक्शनरी से :
अभिव्यक्ति: गणित प्रतीकों का एक संग्रह है जो संयुक्त रूप से एक मात्रा व्यक्त करता है: एक वृत्त की परिधि के लिए अभिव्यक्ति 2πr है।
सकल सामान्य शब्दों में: भाव कम से कम एक मूल्य का उत्पादन करते हैं ।
पायथन में, पायथन भाषा संदर्भ में अभिव्यक्तियों को बड़े पैमाने पर कवर किया गया है सामान्य तौर पर, पायथन में अभिव्यक्तियों में परमाणुओं , प्राइमरी और ऑपरेटरों के एक वाक्यविन्यास कानूनी संयोजन से बना होता है ।
अभिव्यक्ति के उदाहरण:
ऑपरेटरों और अंतर्निहित कार्यों या उपयोगकर्ता-लिखित कार्यों के कॉल के साथ शाब्दिक और वाक्यविन्यास सही संयोजन :
>>> 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
विकिपीडिया से कथन :
कंप्यूटर प्रोग्रामिंग में एक स्टेटमेंट को अनिवार्य प्रोग्रामिंग लैंग्वेज का सबसे छोटा स्टैंडअलोन तत्व माना जा सकता है। एक कार्यक्रम एक या अधिक कथनों के अनुक्रम द्वारा बनता है। एक बयान में आंतरिक घटक (जैसे, भाव) होंगे।
सामान्य शब्दों में: कथन कुछ करें और अक्सर अभिव्यक्तियों (या अन्य कथनों) से बने होते हैं
पायथन लैंग्वेज रेफरेंस में सरल स्टेटमेंट्स और कंपाउंड स्टेटमेंट्स को बड़े पैमाने पर शामिल किया गया है।
"स्टेटमेंट्स समथिंग समथिंग" और "एक्सप्रेशंस एक वैल्यू प्रोड्यूस करते हैं" डिस्टिंक्शन तो धुंधली हो सकती है:
if
आम तौर पर एक बयान, के रूप में इस तरह के है if x<0: x=0
, लेकिन आप भी एक हो सकता है सशर्त अभिव्यक्ति की तरह x=0 if x<0 else 1
है कि अभिव्यक्ति कर रहे हैं। अन्य भाषाओं में, सी की तरह, इस फॉर्म को इस तरह एक ऑपरेटर कहा जाता हैx=x<0?0:1;
def func(a): return a*a
एक अभिव्यक्ति है जब इस्तेमाल किया जाता है लेकिन परिभाषित किए जाने पर बयान से बना होता है।None
पायथन में एक प्रक्रिया है: def proc(): pass
सिंथेटिक रूप से, आप proc()
एक अभिव्यक्ति के रूप में उपयोग कर सकते हैं , लेकिन यह शायद एक बग है ...func(x=2);
एक अभिव्यक्ति या कथन हो सकता है? ( उत्तर: अभिव्यक्ति एक साइड-इफेक्ट के साथ एक बयान के रूप में उपयोग किया जाता है। ) पायथन में x=2
फ़ंक्शन कॉल के अंदर का असाइनमेंट स्टेटमेंट func(x=2)
नामित तर्क a
को केवल कॉल में 2 पर सेट करता func
है और सी उदाहरण से अधिक सीमित है।हालांकि यह पायथन से संबंधित नहीं है:
एक expression
मान का मूल्यांकन करता है। A statement
कुछ करता है।
>>> x + 2 # an expression
>>> x = 1 # a statement
>>> y = x + 1 # a statement
>>> print y # a statement (in 2.x)
2
somelist.append(123)
। अधिकांश फ़ंक्शन कॉल, वास्तव में।
कथन एक क्रिया या आदेश का प्रतिनिधित्व करते हैं जैसे प्रिंट स्टेटमेंट, असाइनमेंट स्टेटमेंट।
print 'hello', x = 1
अभिव्यक्ति चर, संचालन और मूल्यों का एक संयोजन है जो एक परिणाम मूल्य प्राप्त करता है।
5 * 5 # yields 25
अंत में, अभिव्यक्ति बयान
print 5*5
एक अभिव्यक्ति एक ऐसी चीज है जिसे एक मूल्य के लिए कम किया जा सकता है, उदाहरण के लिए "1+3"
या "foo = 1+3"
।
यह जांचना आसान है:
print foo = 1+3
यदि यह काम नहीं करता है, यह एक बयान है, अगर यह करता है, यह एक अभिव्यक्ति है।
एक और बयान हो सकता है:
class Foo(Bar): pass
क्योंकि यह एक मूल्य के लिए कम नहीं किया जा सकता है।
a = b = expr
अजगर में, एक विशेष मामले के रूप में अनुमति दी जाती है)। C से अधिक प्रेरणा लेने वाली भाषाओं में, यह है।
class Foo(bar):
एक बयान की शुरुआत है, एक पूर्ण वक्तव्य नहीं है।
foo = 1+3
अभिव्यक्ति नहीं है। यह एक बयान (सटीक होने के लिए एक असाइनमेंट) है। भाग 1+3
हालांकि एक अभिव्यक्ति है।
एक अभिव्यक्ति कुछ है, जबकि एक बयान कुछ करता है।
एक अभिव्यक्ति एक बयान के रूप में अच्छी तरह से है, लेकिन यह एक वापसी होनी चाहिए।
>>> 2 * 2 #expression
>>> print(2 * 2) #statement
पुनश्च: दुभाषिया हमेशा सभी भावों के मूल्यों को छापता है।
बयान:
स्टेटमेंट एक एक्शन या एक कमांड है जो कुछ करता है। Ex: If-Else, Loops..etc
val a: Int = 5
If(a>5) print("Hey!") else print("Hi!")
अभिव्यक्ति:
एक अभिव्यक्ति मूल्यों, ऑपरेटरों और शाब्दिक का संयोजन है जो कुछ पैदावार देता है।
val a: Int = 5 + 5 #yields 10
एक स्टेटमेंट में एक कीवर्ड होता है।
एक अभिव्यक्ति में एक कीवर्ड नहीं है।
print "hello"
एक वक्तव्य है, क्योंकि print
एक खोजशब्द है।
"hello"
एक अभिव्यक्ति है, लेकिन सूची संपीड़न इसके खिलाफ है।
निम्नलिखित एक अभिव्यक्ति बयान है, और यह सूची समझ के बिना सच है:
(x*2 for x in range(10))
x = 1
पूरी तरह से ठीक बयान है, लेकिन इसमें कीवर्ड नहीं हैं।
is
लिए एक कीवर्ड है, लेकिन x is y
जरूरी नहीं कि एक बयान हो (सामान्य तौर पर यह सिर्फ एक अभिव्यक्ति है)।
भाव:
objects
और द्वारा बनाई जाती हैं operators
।<object><operator><object>
2.0 + 3
एक अभिव्यक्ति है जो इसका मूल्यांकन करती है 5.0
और इसके साथ एक प्रकार float
जुड़ा हुआ है।
बयान
कथन अभिव्यक्ति (ओं) से बना है। यह कई लाइनों को फैला सकता है।
कुछ कथन हैं जो हमारे पायथन कार्यक्रम की स्थिति को बदल सकते हैं: चर बनाएं या अपडेट करें, फ़ंक्शन को परिभाषित करें, आदि।
और भाव बस कुछ मान लौटाते हैं जो एक फ़ंक्शन में वैश्विक स्थिति या स्थानीय स्थिति को बदल नहीं सकते हैं।
लेकिन अब हम मिल गए :=
, यह एक विदेशी है!
पायथन अभिव्यक्तियों को "अभिव्यक्ति कथन" कहता है, इसलिए सवाल शायद पूरी तरह से नहीं बना है।
एक बयान में बहुत कुछ शामिल है जो आप पायथन में कर सकते हैं: एक मूल्य की गणना करना, एक मूल्य निर्दिष्ट करना, एक चर को हटाना, एक मूल्य को प्रिंट करना, एक फ़ंक्शन से वापस आना, एक अपवाद उठाना, आदि। पूरी सूची यहां है: http: // docs.python.org/reference/simple_stmts.html#
एक मूल्य कथन कॉलिंग फ़ंक्शंस (जैसे, math.cos (थीटा)), ऑपरेटरों (जैसे, "2 + 3"), आदि के लिए एक मूल्य का उत्पादन करने तक सीमित है।
मुझे लगता है कि एक अभिव्यक्ति में ऑपरेटर + ऑपरेंड और ऑब्जेक्ट होता है जो ऑपरेशन के परिणाम को रखता है ... उदा
var sum = a + b;
लेकिन एक कथन केवल एक कोड की एक पंक्ति है (यह एक अभिव्यक्ति हो सकती है) या कोड का ब्लॉक ... उदा
fun printHello(name: String?): Unit {
if (name != null)
println("Hello ${name}")
else
println("Hi there!")
// `return Unit` or `return` is optional
}