การเขียนโปรแกรมแฟกทอเรียลใน Python

Writing Factorial Program Python



แฟกทอเรียลของตัวเลขคือจำนวนที่คุณได้รับหลังจากคูณตัวเลขทั้งหมดจาก 1 เป็นตัวเลขนั้น แฟกทอเรียลของตัวเลขแสดงด้วยสัญลักษณ์ '!' ตัวอย่างเช่น หากเราต้องการหาแฟกทอเรียลของ 4 ซึ่งแทนด้วย 4! ผลลัพธ์ที่ได้จะเป็น 1x2x3x4 = 24 มีหลายวิธีในการหาแฟคทอเรียลของตัวเลข แฟกทอเรียลสามารถกำหนดได้ใน Python โดยใช้ฟังก์ชันในตัวสำหรับฟังก์ชันวนรอบและแบบเรียกซ้ำ บทช่วยสอนนี้แสดงให้เห็นว่าแฟกทอเรียลของตัวเลขสามารถกำหนดโดยใช้ฟังก์ชันต่างๆ ของ Python ได้อย่างไร

ตัวอย่างที่ 1: ค้นหาแฟกทอเรียลของตัวเลขโดยใช้ฟังก์ชันในตัว

Python มีฟังก์ชันในตัวชื่อ แฟกทอเรียล() ภายใต้ คณิตศาสตร์ โมดูล. สคริปต์ต่อไปนี้คำนวณแฟกทอเรียลของตัวเลขใดๆ โดยใช้ built-in แฟกทอเรียล() การทำงาน. ในสคริปต์นี้ หมายเลขจำนวนเต็มที่ถูกต้องใดๆ จะถูกนำมาเป็นอินพุต และฟังก์ชันจะคำนวณค่าแฟกทอเรียลของตัวเลขนั้นและพิมพ์ค่าแฟกทอเรียลของตัวเลขอินพุต







#!/usr/bin/env python3
# นำเข้าโมดูลคณิตศาสตร์
นำเข้า คณิตศาสตร์
# ใช้ค่าตัวเลขใด ๆ
NS= int(ป้อนข้อมูล('ป้อนหมายเลขใดก็ได้: '))
# ค้นหาแฟคทอเรียล
ข้อเท็จจริง= คณิตศาสตร์.แฟกทอเรียล(NS)
# พิมพ์ผลลัพธ์ของแฟคทอเรียล
พิมพ์('แฟคทอเรียลของ %d คือ %d'%(NS,ข้อเท็จจริง))

เอาท์พุต



หลังจากรันสคริปต์แล้ว 3 จะได้รับเป็นหมายเลขอินพุตและเอาต์พุต 3!, 6 จะถูกพิมพ์







ตัวอย่างที่ 2: ค้นหาแฟกทอเรียลของตัวเลขโดยใช้ลูป

สคริปต์ต่อไปนี้แสดงวิธีการคำนวณแฟกทอเรียลของตัวเลขใดๆ โดยไม่ต้องใช้ฟังก์ชันในตัวใน Python ที่นี่ สำหรับ ลูปใช้เพื่อคำนวณแฟกทอเรียลของตัวเลข ค่าจำนวนเต็มอินพุตใด ๆ จะถูกนำมาและจัดเก็บเป็นตัวแปรชื่อ NS . ตัวแปรชื่อ ข้อเท็จจริง ใช้เพื่อเก็บผลลัพธ์แฟคทอเรียลและเริ่มต้นเป็น 1 ก่อนเข้าสู่ลูป ถ้าค่าของ NS มีค่ามากกว่าหนึ่งหรือเท่ากับหนึ่ง จากนั้นลูปจะวนซ้ำ 1 ถึง n+1 ครั้ง และจะคำนวณค่าแฟกทอเรียล มิฉะนั้น ลูปจะตรวจสอบว่าค่าของ n เท่ากับ 0 หรือค่าลบหรือไม่ หากค่าของ n เป็น 0 ผลลัพธ์แฟกทอเรียลจะเป็น 1 และถ้าค่าของ n เป็นจำนวนเต็มลบ ข้อความแสดงข้อผิดพลาดจะถูกพิมพ์

#!/usr/bin/env python3

# ใช้ค่าตัวเลขและเก็บไว้ใน n
NS= int(ป้อนข้อมูล('ป้อนหมายเลขใดก็ได้: '))
# เริ่มต้นตัวแปร
ข้อเท็จจริง= 1
# ค้นหาแฟกทอเรียลหากจำนวนอินพุตมากกว่า 0
ถ้าNS> = 1:
# วนซ้ำเพื่อทวีคูณตัวเลขภายใน 1 ถึง n
สำหรับผมใน พิสัย (1,n+1):
ข้อเท็จจริง=ข้อเท็จจริง * ฉัน
# พิมพ์ผล fcatorial
พิมพ์('แฟคทอเรียลของ %d คือ %d'%(NS,ข้อเท็จจริง))
อื่น:
ถ้าNS== 0:
#พิมพ์ผล 0!
พิมพ์('แฟกทอเรียลของ',NS, ' เป็น ')
อื่น:
#พิมพ์ข้อความผิดพลาด
พิมพ์('คุณต้องป้อนจำนวนบวกใด ๆ ')

เอาท์พุต



สคริปต์ดำเนินการสามครั้ง ตามภาพหน้าจอต่อไปนี้ สคริปต์ทำงานสำหรับค่าอินพุต 1, 6 และ -8 เอาต์พุตจะแสดงตามค่าอินพุต

ตัวอย่างที่ 3: ค้นหาแฟกทอเรียลของตัวเลขโดยใช้ฟังก์ชันแบบเรียกซ้ำ

ฟังก์ชันที่เรียกตัวเองระหว่างการทำงานของฟังก์ชันนี้เรียกว่าฟังก์ชันแบบเรียกซ้ำ สคริปต์ต่อไปนี้แสดงวิธีการคำนวณแฟกทอเรียลของจำนวนเต็มใดๆ โดยใช้ฟังก์ชันแบบเรียกซ้ำ หลังจากนำตัวเลขจำนวนเต็มมาเป็นอินพุตแล้ว ฟังก์ชันแบบเรียกซ้ำ factorial_resursive () จะถูกเรียกโดยมีค่าอินพุตเป็นอาร์กิวเมนต์ หากค่าอินพุตเป็น 0 หรือ 1 แล้ว 1 จะถูกส่งกลับ หากค่าอินพุตเป็นค่าลบ ค่าอาร์กิวเมนต์จะถูกส่งกลับ หากค่าอินพุตมากกว่า 1 ฟังก์ชันจะเรียกตัวเองโดยลบอาร์กิวเมนต์ด้วย 1 ซ้ำแล้วซ้ำเล่าจนกว่าจะคำนวณผลลัพธ์ของแฟคทอเรียล

#!/usr/bin/env python3
# นำค่าตัวเลข
ตัวเลข= int(ป้อนข้อมูล('ป้อนหมายเลขใดก็ได้: '))
# กำหนดฟังก์ชันเรียกซ้ำเพื่อคำนวณแฟกทอเรียล
deffactorial_recursive(NS):
# เก็บผลลัพธ์แฟคทอเรียลของ 0 และ 1
ถ้าNS== 0 หรือNS== 1:
ผลลัพธ์= 1
# เก็บหมายเลขอินพุตสำหรับค่าลบ
เอลฟ์NS< 1:
ผลลัพธ์=NS
# ค้นหาผลลัพธ์แฟคทอเรียลแบบเรียกซ้ำ
อื่น:
ผลลัพธ์=n*factorial_recursive(NS-1)
#ส่งคืนผลลัพธ์
กลับผลลัพธ์
#เรียกใช้งาน
ข้อเท็จจริง=factorial_recursive(ตัวเลข)
# พิมพ์ผลลัพธ์เป็นจำนวนบวก
ถ้าข้อเท็จจริง> = 0:
พิมพ์('แฟคทอเรียลของ %d คือ %d'%(ตัวเลข,ข้อเท็จจริง))
อื่น:
#พิมพ์ข้อความเลขติดลบ
พิมพ์('คุณต้องป้อนจำนวนบวกใด ๆ ')

เอาท์พุต

ในภาพหน้าจอต่อไปนี้ สคริปต์จะดำเนินการสามครั้งด้วยค่า 1, -5 และ 8

ตัวอย่างที่ 4: ค้นหาแฟกทอเรียลของตัวเลขที่มีการจัดการข้อยกเว้น

สคริปต์สามตัวข้างต้นจะตรวจสอบเฉพาะว่าตัวเลขนั้นเป็นบวกหรือลบ สคริปต์ต่อไปนี้คำนวณแฟกทอเรียลผ่านฟังก์ชัน factorial() ในตัวพร้อมการจัดการข้อยกเว้น หากผู้ใช้ป้อนข้อมูลใดๆ โดยไม่มีค่าจำนวนเต็ม ข้อยกเว้นจะถูกสร้างขึ้น และข้อความแสดงข้อผิดพลาดจะถูกพิมพ์

#!/usr/bin/env python3
# นำเข้าโมดูลคณิตศาสตร์
นำเข้า คณิตศาสตร์
# ท้าทายบล็อกลอง
ลอง:
# นำค่าตัวเลข
NS= int(ป้อนข้อมูล('ป้อนหมายเลขใดก็ได้: '))
ถ้าNS> = 0:
# ค้นหาแฟคทอเรียล
ข้อเท็จจริง= คณิตศาสตร์.แฟกทอเรียล(NS)
# พิมพ์ผลลัพธ์ของแฟคทอเรียล
พิมพ์('แฟคทอเรียลของ %d คือ %d'%(NS,ข้อเท็จจริง))
อื่น:
# เพิ่มข้อยกเว้นหากตัวเลขเป็นลบ
ยก ข้อยกเว้น('คุณต้องป้อนจำนวนบวกใด ๆ ')
# พิมพ์ข้อความแสดงข้อผิดพลาดสำหรับการป้อนเศษส่วน
ยกเว้น ValueError:
พิมพ์('คุณต้องป้อนจำนวนเต็ม')
# พิมพ์ข้อความแสดงข้อผิดพลาดสำหรับการป้อนข้อมูลเชิงลบ
ยกเว้น ข้อยกเว้น เช่นและ:
พิมพ์('ข้อผิดพลาด:%s'%และ)

เอาท์พุต

สคริปต์ดำเนินการสามครั้งด้วยค่า h, -3 และ 7 ในภาพหน้าจอต่อไปนี้ ที่นี่ ข้อยกเว้นถูกสร้างขึ้นสำหรับค่า 'h.'

บทสรุป

บทช่วยสอนนี้แสดงวิธีต่างๆ ที่คุณสามารถคำนวณค่าแฟกทอเรียลของตัวเลขใน Python แนวคิดของแฟกทอเรียลของตัวเลขและวิธีการคำนวณแฟกทอเรียลที่ใช้ Python ควรมีความชัดเจนสำหรับผู้อ่านหลังจากอ่านบทช่วยสอนนี้