درخت جانوران در زبان پایتون به چه معناست ؟

2

درخت جانوران در زبان پایتون به چه معناست ؟

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 15, 2020
گذاشتن نظر
0

درخت جانوران در زبان پایتون به چه معناست ؟

در این بخش، ما برنامۀ کوچکی را توسعه میدهیم که از یک درخـت بـراي نمـایش یـک اصـل علمی استفاده میکند. ابن برنامه براي ساختن درختی از پرسشها و اسامی حیوانات، با کاربر ارتباط متقـابلی دارد. در اینجا یک اجراي آزمایشی از این برنامه را میبینید:

Are you thinking of an animal? y
Is it a bird? n
What is the animals name? dog
What question would distinguish a dog from a bird? Can it fly
If the animal were dog the answer would be? n
Are you thinking of an animal? y
Can it fly? n
Is it a dog? n
What is the animals name? cat
What question would distinguish a cat from a dog? Does it bark
If the animal were cat the answer would be? n
Are you thinking of an animal? y
Can it fly? n
Does it bark? y
Is it a dog? y
I rule!
Are you thinking of an animal? n

در آغاز هر دور، برنامه از بالاي درخت شروع میکند و اولین سؤال را میپرسد. بسته بـه پاسـخ، برنامه به فرزند سمت راست یا چپ منتقل میشود و تا زمانی که به یک گـره بـرگ برسـد ایـن کـار را ادامه میدهد. در این نقطه برنامه یک حدس میزند. اگر حدس نادرست باشد، برنامـه نـام یـک حیـوان جدید و سؤالی که حدس نادرست را از حیوان جدید تشخیص میدهد، از کاربر میپرسد. سپس یک گره با پرسش جدید و حیوان جدید به درخت اضافه میکند. کد برنامه به اینصورت است:

def animal():
# start with a singleton
root = Tree(“bird”)
# loop until the user quits
while 1:
print
if not yes(“Are you thinking of an animal? “): break
# walk the tree
tree = root
while tree.getLeft() != None:
prompt = tree.getCargo() + “? ”
if yes(prompt):
tree = tree.getRight()
else:
tree = tree.getLeft()
# make a guess
guess = tree.getCargo()
prompt = “Is it a ” + guess + “? ”
if yes(prompt):
print “I rule!”
continue
# get new information

prompt = “What is the animal’s name? ”
animal = raw_input(prompt)
prompt = “What question would distinguish a %s from a %s? ”
question = raw_input(prompt % (animal,guess))
# add new information to the tree
tree.setCargo(question)
prompt = “If the animal were %s the answer would be? ”
if yes(prompt % animal):
tree.setLeft(Tree(guess))
tree.setRight(Tree(animal))
else:
tree.setLeft(Tree(animal))
tree.setRight(Tree(guess))

تابع yes یک کمککننده است. این تابع پیاپی را چاپ میکند و یک ورودي از کاربر میگیرد. اگر پاسخ با y یا Y آغاز شود تابع مقدار true را برمیگرداند:

def yes(ques):
from string import lower
ans = lower(raw_input(ques))
return (ans[0] == ‘y’)

شرط حلقۀ بیرونی 1 است که یعنی تا زمان اجراي دستور break ادامه مییابد. این دستور در صورتی رخ میدهد که کاربر به یک حیوان فکر نکند. حلقۀ while درونی با کمک گرفتن از پاسخهاي کاربر، درخت را از بالا به پایین میپیماید. هنگامیکه گره جدیدي به درخت اضافه میشـود، پرسـش جدیـد در بـار (cargo )جـایگزین میشود و دو فرزند شامل حیوان جدید و بار اولیه خواهند بود. یک از نارساییهاي برنامه این است که وقتی از آن خارج شوید، هر آنچه که با دقت در موردش فکر کرده بودید، فراموش میشود.
تمرین 20-4 :در مورد راههاي مختلف ذخیره کردن درخت دانستهها در یک فایل فکـر کنیـد. روشی را که فکر میکنید از همه سادهتر است، پیادهسازي کنید.

برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید

بستر اموزش های ویدویی 

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 15, 2020
گذاشتن نظر
شما در حال مشاهده 1 از 1 پاسخ هستید ، برای دیدن همه پاسخها اینجا را کلیک کنید .
پاسخ خود را بنویسید .
  • فعال
  • بازدیدها1306 times
  • پاسخ ها1 پاسخ
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

علامت ذره بین Tutorials سمت راست به رنگ قرمز به شما کمک خواهد کرد .

جدید ترین سوالات پرسیده شده

منقضی شدن سم بتانال 1 پاسخ | 0 آرا
ایا ایدز گزفتم؟ 0 پاسخ ها | 0 آرا
انتخاب ورزش رزمی 0 پاسخ ها | 1 رای
وزارت تعاون کار و رفاه اجتماعی نماد اعتماد الکترونیک اسناد و املاک کشور مرکز آموزش ویدیویی انجمن حم فروشگاه ملی تولید کنندگان مدیریت بر مدیران حم سامانه حیوانات رسانه ملی اخبار متا دانشگاه متاورس استخدام | دانش فروشگاه حم تبلیغات ملی بازار NFT متاورس رنگ نقشه ملی سه بعدی متا املاک و مستغلات