Python - ไวยากรณ์พื้นฐาน
ภาษา Python มีความคล้ายคลึงกับ Perl, C และ Java มาก อย่างไรก็ตามมีความแตกต่างบางประการระหว่างภาษา
โปรแกรม Python แรก
ให้เราดำเนินการโปรแกรมในโหมดต่างๆของการเขียนโปรแกรม
การเขียนโปรแกรมโหมดโต้ตอบ
การเรียกใช้ล่ามโดยไม่ส่งผ่านไฟล์สคริปต์เนื่องจากพารามิเตอร์จะแสดงพร้อมต์ต่อไปนี้ -
$ python
Python 2.4.3 (#1, Nov 11 2010, 13:34:43)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
พิมพ์ข้อความต่อไปนี้ที่พรอมต์ Python และกด Enter -
>>> print "Hello, Python!"
หากคุณใช้ Python เวอร์ชันใหม่คุณจะต้องใช้คำสั่งพิมพ์ที่มีวงเล็บเหมือนใน print ("Hello, Python!");. อย่างไรก็ตามใน Python เวอร์ชัน 2.4.3 สิ่งนี้จะให้ผลลัพธ์ดังนี้ -
Hello, Python!
การเขียนโปรแกรมโหมดสคริปต์
การเรียกใช้ตัวแปลด้วยพารามิเตอร์สคริปต์จะเริ่มต้นการดำเนินการของสคริปต์และดำเนินต่อไปจนกว่าสคริปต์จะเสร็จสิ้น เมื่อสคริปต์เสร็จสิ้นล่ามจะไม่ทำงานอีกต่อไป
ให้เราเขียนโปรแกรม Python อย่างง่ายในสคริปต์ ไฟล์ Python มีนามสกุล.py. พิมพ์ซอร์สโค้ดต่อไปนี้ในไฟล์ test.py -
print "Hello, Python!"
เราสมมติว่าคุณมี Python interpreter ตั้งอยู่ในตัวแปร PATH ตอนนี้ลองเรียกใช้โปรแกรมนี้ดังนี้ -
$ python test.py
สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -
Hello, Python!
ให้เราลองใช้วิธีอื่นในการเรียกใช้สคริปต์ Python นี่คือไฟล์ test.py ที่แก้ไข -
#!/usr/bin/python
print "Hello, Python!"
เราถือว่าคุณมี Python interpreter อยู่ในไดเร็กทอรี / usr / bin ตอนนี้ลองเรียกใช้โปรแกรมนี้ดังนี้ -
$ chmod +x test.py # This is to make file executable
$./test.py
สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -
Hello, Python!
ตัวระบุ Python
ตัวระบุ Python คือชื่อที่ใช้เพื่อระบุตัวแปรฟังก์ชันคลาสโมดูลหรือวัตถุอื่น ๆ ตัวระบุเริ่มต้นด้วยตัวอักษร A ถึง Z หรือ a ถึง z หรือขีดล่าง (_) ตามด้วยตัวอักษรศูนย์หรือมากกว่าขีดล่างและตัวเลข (0 ถึง 9)
Python ไม่อนุญาตให้ใช้อักขระเครื่องหมายวรรคตอนเช่น @, $ และ% ภายในตัวระบุ Python เป็นภาษาโปรแกรมที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ด้วยประการฉะนี้Manpower และ manpower เป็นตัวระบุสองตัวที่แตกต่างกันใน Python
นี่คือหลักการตั้งชื่อสำหรับตัวระบุ Python -
ชื่อคลาสขึ้นต้นด้วยตัวอักษรตัวพิมพ์ใหญ่ ตัวระบุอื่น ๆ ทั้งหมดขึ้นต้นด้วยตัวอักษรพิมพ์เล็ก
การเริ่มต้นตัวระบุด้วยขีดล่างนำหน้าเพียงตัวเดียวบ่งชี้ว่าตัวระบุนั้นเป็นแบบส่วนตัว
การเริ่มต้นตัวระบุที่มีขีดล่างนำหน้าสองตัวบ่งบอกถึงตัวระบุส่วนตัวที่ชัดเจน
หากตัวระบุลงท้ายด้วยเครื่องหมายขีดล่างสองตัวด้วยตัวระบุจะเป็นชื่อพิเศษที่กำหนดโดยภาษา
คำสงวน
รายการต่อไปนี้แสดงคีย์เวิร์ด Python คำเหล่านี้เป็นคำสงวนและคุณไม่สามารถใช้เป็นค่าคงที่หรือตัวแปรหรือชื่อตัวระบุอื่น ๆ คีย์เวิร์ด Python ทั้งหมดประกอบด้วยตัวอักษรพิมพ์เล็กเท่านั้น
และ | ผู้บริหาร | ไม่ |
ยืนยัน | ในที่สุด | หรือ |
หยุดพัก | สำหรับ | ผ่าน |
ชั้นเรียน | จาก | พิมพ์ |
ดำเนินการต่อ | ทั่วโลก | ยก |
def | ถ้า | กลับ |
เดล | นำเข้า | ลอง |
elif | ใน | ในขณะที่ |
อื่น | คือ | ด้วย |
ยกเว้น | แลมด้า | ผลผลิต |
เส้นและการเยื้อง
Python ไม่มีวงเล็บปีกกาเพื่อระบุบล็อกของโค้ดสำหรับนิยามคลาสและฟังก์ชันหรือการควบคุมโฟลว์ บล็อกของโค้ดแสดงด้วยการเยื้องบรรทัดซึ่งบังคับใช้อย่างเข้มงวด
จำนวนช่องว่างในการเยื้องเป็นตัวแปร แต่คำสั่งทั้งหมดในบล็อกต้องเยื้องด้วยจำนวนที่เท่ากัน ตัวอย่างเช่น -
if True:
print "True"
else:
print "False"
อย่างไรก็ตามบล็อกต่อไปนี้สร้างข้อผิดพลาด -
if True:
print "Answer"
print "True"
else:
print "Answer"
print "False"
ดังนั้นใน Python บรรทัดต่อเนื่องทั้งหมดที่เยื้องด้วยช่องว่างจำนวนเท่ากันจะก่อให้เกิดบล็อก ตัวอย่างต่อไปนี้มีบล็อกคำสั่งต่างๆ -
Note- อย่าพยายามเข้าใจตรรกะ ณ เวลานี้ เพียงตรวจสอบให้แน่ใจว่าคุณเข้าใจบล็อกต่างๆแม้ว่าจะไม่มีการจัดฟันก็ตาม
#!/usr/bin/python
import sys
try:
# open file stream
file = open(file_name, "w")
except IOError:
print "There was an error writing to", file_name
sys.exit()
print "Enter '", file_finish,
print "' When finished"
while file_text != file_finish:
file_text = raw_input("Enter text: ")
if file_text == file_finish:
# close the file
file.close
break
file.write(file_text)
file.write("\n")
file.close()
file_name = raw_input("Enter filename: ")
if len(file_name) == 0:
print "Next time please enter something"
sys.exit()
try:
file = open(file_name, "r")
except IOError:
print "There was an error reading file"
sys.exit()
file_text = file.read()
file.close()
print file_text
คำสั่งหลายบรรทัด
คำสั่งใน Python มักจะลงท้ายด้วยบรรทัดใหม่ อย่างไรก็ตาม Python อนุญาตให้ใช้อักขระความต่อเนื่องของบรรทัด (\) เพื่อแสดงว่าบรรทัดควรดำเนินต่อไป ตัวอย่างเช่น -
total = item_one + \
item_two + \
item_three
คำสั่งที่อยู่ในวงเล็บ [], {} หรือ () ไม่จำเป็นต้องใช้อักขระต่อเนื่องของบรรทัด ตัวอย่างเช่น -
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
ใบเสนอราคาใน Python
Python ยอมรับเครื่องหมายคำพูด single ('), double (") และ triple (' '' หรือ" "") เพื่อแสดงถึงตัวอักษรสตริงตราบใดที่อัญประกาศประเภทเดียวกันเริ่มต้นและสิ้นสุดสตริง
เครื่องหมายคำพูดสามคำใช้เพื่อขยายสตริงในหลายบรรทัด ตัวอย่างเช่นสิ่งต่อไปนี้ทั้งหมดถูกกฎหมาย -
word = 'word'
sentence = "This is a sentence."
paragraph = """This is a paragraph. It is
made up of multiple lines and sentences."""
ความคิดเห็นใน Python
เครื่องหมายแฮช (#) ที่ไม่อยู่ในตัวอักษรสตริงเริ่มต้นความคิดเห็น อักขระทั้งหมดหลัง # และจนถึงตอนท้ายของบรรทัดฟิสิคัลเป็นส่วนหนึ่งของข้อคิดเห็นและตัวแปล Python จะไม่สนใจสิ่งเหล่านี้
#!/usr/bin/python
# First comment
print "Hello, Python!" # second comment
สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -
Hello, Python!
คุณสามารถพิมพ์ความคิดเห็นในบรรทัดเดียวกันหลังคำสั่งหรือนิพจน์ -
name = "Madisetti" # This is again comment
คุณสามารถแสดงความคิดเห็นได้หลายบรรทัดดังนี้ -
# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.
ต่อไปนี้สตริงที่ยกมาสามบรรทัดจะถูกละเว้นโดยล่าม Python และสามารถใช้เป็นความคิดเห็นหลายบรรทัด:
'''
This is a multiline
comment.
'''
ใช้เส้นว่าง
บรรทัดที่มีเฉพาะช่องว่างอาจมีความคิดเห็นเรียกว่าบรรทัดว่างและ Python จะละเว้นโดยสิ้นเชิง
ในเซสชันล่ามแบบโต้ตอบคุณต้องป้อนบรรทัดทางกายภาพที่ว่างเปล่าเพื่อยุติคำสั่งหลายบรรทัด
กำลังรอผู้ใช้
บรรทัดต่อไปนี้ของโปรแกรมจะแสดงพร้อมต์ข้อความว่า“ กดปุ่ม Enter เพื่อออก” และรอให้ผู้ใช้ดำเนินการ -
#!/usr/bin/python
raw_input("\n\nPress the enter key to exit.")
ที่นี่ "\ n \ n" ใช้เพื่อสร้างบรรทัดใหม่สองบรรทัดก่อนที่จะแสดงบรรทัดจริง เมื่อผู้ใช้กดปุ่มโปรแกรมจะสิ้นสุดลง นี่เป็นเคล็ดลับที่ดีในการเปิดหน้าต่างคอนโซลไว้จนกว่าผู้ใช้จะใช้แอปพลิเคชันเสร็จสิ้น
หลายคำสั่งในบรรทัดเดียว
เครื่องหมายอัฒภาค (;) อนุญาตให้มีหลายคำสั่งในบรรทัดเดียวเนื่องจากไม่มีคำสั่งใดเริ่มบล็อกโค้ดใหม่ นี่คือตัวอย่างการตัดโดยใช้อัฒภาค -
import sys; x = 'foo'; sys.stdout.write(x + '\n')
กลุ่มคำสั่งหลายกลุ่มเป็นห้องชุด
เรียกกลุ่มของคำสั่งแต่ละรายการซึ่งสร้างบล็อกรหัสเดียว suitesใน Python คำสั่งแบบผสมหรือเชิงซ้อนเช่น if, while, def และ class ต้องการบรรทัดส่วนหัวและชุด
บรรทัดส่วนหัวเริ่มต้นคำสั่ง (ด้วยคีย์เวิร์ด) และสิ้นสุดด้วยเครื่องหมายจุดคู่ (:) และตามด้วยบรรทัดอย่างน้อยหนึ่งบรรทัดซึ่งประกอบกันเป็นชุด ตัวอย่างเช่น -
if expression :
suite
elif expression :
suite
else :
suite
อาร์กิวเมนต์บรรทัดคำสั่ง
สามารถเรียกใช้โปรแกรมจำนวนมากเพื่อให้ข้อมูลพื้นฐานเกี่ยวกับวิธีเรียกใช้โปรแกรมเหล่านี้ Python ช่วยให้คุณสามารถทำได้ด้วย -h -
$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit
[ etc. ]
คุณยังสามารถตั้งโปรแกรมสคริปต์ของคุณในลักษณะที่ควรยอมรับตัวเลือกต่างๆ อาร์กิวเมนต์บรรทัดคำสั่งเป็นหัวข้อขั้นสูงและควรศึกษาในภายหลังเมื่อคุณผ่านแนวคิดที่เหลือของ Python แล้ว