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 แล้ว