And Or in Python

posted on 26 Feb 2008 22:01 by plynoi  in Tech
ผมเป็นคนหนึ่งที่ชินกับการ And Or แบบ Java/C ดังนี้
boolean A_t=true;
boolean B_t=true;
boolean C_f=false;

A_t and B_t ได้ true
B_t or C_f ได้ true
A_t and C_f ได้ false
พอมาอ่าน Python ซึ่งใช้อีกระบบ ทำให้งงเป็นไก่ตาแตก เลยเขียน note ตัวเองไว้ดังนี้
เกือบทุก obj (python ทุกอย่างคือ obj) มีค่าเป็น true เสมอ
obj ที่มีค่าเป็น false ได้แต่ 0, '', [], (), {}, และ None(null นั่นแหละ)
ใน Python And or เป็นดังนี้
'a' and 'b'
ได้ 'b' <--- obj ที่เป็น true and กัน จะคืน obj สุดท้ายที่ true เสมอ
'' and 'b'
ได้ '' <---- obj ที่เป็น false and กับ obj อะไรก็ตาม กัน จะคืน obj แรกที่ false เสมอ
'a' or 'b'
ได้ 'a' <--- obj ที่เป็น true or กัน จะคืน obj แรกที่ true เสมอ
0 or 'b'
ได้ 'b' <---- obj ที่เป็น false or กับ obj true กัน จะคืน obj แรกที่ true เสมอ
0 or []
ได้ [] <---- obj ที่เป็น false or กันเอง จะคืน obj สุดท้ายที่ false เสมอ
อืม งงดีวุ้ย ไม่คุ้นเลย T_T and or กันแล้วคืนเป็น obj แบบนี้

อ้างอิง - หนังสือ Drive into Python

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

อืมมม มึนจริงด้วยแฮะ

ที่รอยเตอร์มี project ใช้ python ด้วยเหรอครับ

หรือว่านี่ศึกษานอกรอบครับ

#1 By inat : www.66un.net on 2008-02-26 22:30

#1
มีโปรเจคข้างๆ ใช้
จริง python ถือเป็น 1 ใน software ต้องห้ามของรอยเตอร์

ผมหัดเองเล่นๆ ครับ

#2 By plynoi แว่วศรี on 2008-02-26 22:58

เออ เท่ห์ดีแฮะ อ่านตอนแรกเหมือนจะแปลก ๆ

ว่าแต่ทำไมต้องห้ามอะพี่

#3 By T!D on 2008-02-27 09:27

มันไ่ม่มีหลักคิดอะไรเอามาอิงได้เหรอ
sad smile sad smile

#4 By lawender (58.136.117.118) on 2008-02-27 10:00

#4 ผมคิดว่าก็ดูเหมือน short-circuit ปกติอะครับ

or:
ถ้าตัวแรกเป็น true ก็จะ return ค่าตัวแรก
ถ้าตัวแรกเป็น false ก็จะ return ค่าตัวหลัง

and:
ถ้าตัวแรกเป็น true ก็จะ return ค่าตัวหลัง
ถ้าตัวแรกเป็น false ก็จะ return ค่าตัวหลัง

#5 By T!D on 2008-02-27 13:57

#TiD
ไม่ได้เรียนว่ะ question question
แล้วรู้ไหมว่า lawender คือใคร question question หุๆ

#6 By plynoi แว่วศรี on 2008-02-27 14:54

โอ้ววว

มีสอน ไพทอน ด้วย *.*

รุ่นนี้มันไม่สน CPU หรอกครับ

แต่ที่ผมมั่นใจ คือ "ใันเกิดมาเพื่อ AGP" *0*

#7 By Statagem on 2008-02-27 15:08

ก็พอได้ม่างหละน่าาาาาา

#8 By Statagem on 2008-02-27 22:53