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