Python 3 - ไวยากรณ์พื้นฐาน

ภาษา Python มีความคล้ายคลึงกับ Perl, C และ Java มาก อย่างไรก็ตามมีความแตกต่างบางประการระหว่างภาษา

โปรแกรม Python แรก

ให้เราดำเนินการโปรแกรมในโหมดต่างๆของการเขียนโปรแกรม

การเขียนโปรแกรมโหมดโต้ตอบ

การเรียกใช้ล่ามโดยไม่ส่งผ่านไฟล์สคริปต์เนื่องจากพารามิเตอร์จะแสดงพร้อมต์ต่อไปนี้ -

$ python

Python 3.3.2 (default, Dec 10 2013, 11:35:01)
[GCC 4.6.3] on Linux
Type "help", "copyright", "credits", or "license" for more information.
>>>

On Windows:

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>

พิมพ์ข้อความต่อไปนี้ที่พรอมต์ Python แล้วกด Enter -

>>> print ("Hello, Python!")

หากคุณใช้ Python เวอร์ชันเก่า (Python 2.x) ให้ใช้วงเล็บเป็น inprintฟังก์ชันเป็นทางเลือก สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -

Hello, Python!

การเขียนโปรแกรมโหมดสคริปต์

การเรียกใช้ล่ามด้วยพารามิเตอร์สคริปต์จะเริ่มต้นการดำเนินการของสคริปต์และดำเนินต่อไปจนกว่าสคริปต์จะเสร็จสิ้น เมื่อสคริปต์เสร็จสิ้นล่ามจะไม่ทำงานอีกต่อไป

ให้เราเขียนโปรแกรม Python อย่างง่ายในสคริปต์ ไฟล์ Python มีนามสกุล.py. พิมพ์ซอร์สโค้ดต่อไปนี้ในไฟล์ test.py -

print ("Hello, Python!")

เราถือว่าคุณได้ตั้งค่าล่าม Python ไว้ในไฟล์ PATHตัวแปร. ตอนนี้ลองเรียกใช้โปรแกรมนี้ดังนี้ -

On Linux

$ python test.py

สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -

Hello, Python!

On Windows

C:\Python34>Python test.py

สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -

Hello, Python!

ให้เราลองใช้วิธีอื่นในการเรียกใช้สคริปต์ Python ใน Linux นี่คือไฟล์ test.py ที่แก้ไข -

#!/usr/bin/python3
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/python3
import sys

file_finish = "end"
file_text = ""
contents=[]

file_name=input("Enter filename: ")
if len(file_name) == 0:
   print("Please enter filename")
   sys.exit()

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 = input("Enter text: ")
   contents.append(file_text)

   if file_text == file_finish:
      # close the file
      file.close()
      break

print(contents)
data = ' '.join([str(elem) for elem in contents])  
print(data)
file.write(data)
file.close()
file_name = 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/python3

# First comment
print ("Hello, Python!") # second comment

สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -

Hello, Python!

คุณสามารถพิมพ์ความคิดเห็นในบรรทัดเดียวกันหลังคำสั่งหรือนิพจน์ -

name = "Madisetti" # This is again comment

Python ไม่มีคุณสมบัติการแสดงความคิดเห็นหลายบรรทัด คุณต้องแสดงความคิดเห็นทีละบรรทัดดังนี้ -

# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.

ใช้เส้นว่าง

บรรทัดที่มีเฉพาะช่องว่างอาจมีความคิดเห็นเรียกว่าบรรทัดว่างและ Python จะละเว้นโดยสิ้นเชิง

ในเซสชันล่ามแบบโต้ตอบคุณต้องป้อนบรรทัดทางกายภาพที่ว่างเปล่าเพื่อยุติคำสั่งหลายบรรทัด

กำลังรอผู้ใช้

บรรทัดต่อไปนี้ของโปรแกรมจะแสดงพร้อมต์และข้อความว่า“ กดปุ่ม Enter เพื่อออก” จากนั้นรอให้ผู้ใช้ดำเนินการ -

#!/usr/bin/python3

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. ]

คุณยังสามารถตั้งโปรแกรมสคริปต์ของคุณในลักษณะที่ควรยอมรับตัวเลือกต่างๆ อาร์กิวเมนต์บรรทัดคำสั่งเป็นหัวข้อขั้นสูง ให้เราเข้าใจมัน