خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

چگونه یک بازی امتحانی تعاملی در پایتون بسازیم

برای یک چالش برنامه نویسی ساده گیر کرده اید؟ سعی کنید امتحان خود را برای آزمایش دوستان و خانواده بنویسید. در پایتون آسان است

می توانید با ساخت پروژه های خط فرمان کوتاه در پایتون، یادگیری برنامه نویسی را تمرین کنید. یکی از پروژه هایی که می توانید بسازید یک مسابقه تعاملی است که در آن می توانید انواع مختلفی از سوالات را از کاربر بپرسید.

سؤالاتی که می توانید بپرسید شامل سؤالات چند گزینه ای یا سؤالاتی است که نیاز به پاسخ کتبی دارند. همچنین می‌توانید سؤالاتی بپرسید که پاسخ‌های صحیح دیگری دارند. حتی می توانید کاری کنید که برنامه خود به کاربر نکاتی را ارائه دهد.

نحوه ایجاد اسکریپت پایتون و اضافه کردن اولین سوال امتحانی

یک فایل پایتون ایجاد کنید و سوال اول خود را اضافه کنید. اگر قبلاً در پایتون کدنویسی نکرده اید، دوره ها و منابع زیادی در آنجا وجود دارد که می توانید پایتون را به صورت رایگان یاد بگیرید.

  1. یک فایل متنی جدید به نام “InteractiveQuiz.py” ایجاد کنید.
  2. فایل را با استفاده از هر ویرایشگر متنی باز کنید و اولین بیانیه چاپی خود را برای خوش آمدگویی به کاربر در quiz.print اضافه کنید (“سلام، به مسابقه جغرافیا خوش آمدید. به سوالات همانطور که ارائه شده است پاسخ دهید.”)
  3. اولین سوال را از کاربر بپرسید. از تابع ()input برای منتظر ماندن برای پاسخ کاربر استفاده کنید و ورودی آنها را در متغیر “userInput” ذخیره کنید.print(“سوال 1. پایتخت استرالیا کدام شهر است؟”)userInput = input()
  4. برای بررسی اینکه آیا ورودی کاربر با پاسخ صحیح مطابقت دارد، شرطی اضافه کنید. اگر کاربر به درستی پاسخ داد، پیام “درست” را برای او نمایش دهید. اگر نه، پاسخ صحیح را نمایش دهید.if (userInput.lower() == “Canberra”.lower()): print(“این درست است!”)else: print(“با عرض پوزش، پاسخ صحیح کانبرا است.”)
  5. برای اجرای مسابقه و آزمایش اینکه آیا سوال شما کار می کند، خط فرمان را باز کنید و به محل فایل پایتون خود بروید. برای مثال، اگر فایل خود را در دایرکتوری به نام Desktop ذخیره کرده باشید، دستور این خواهد بود:cd Desktop
  6. دستور python را برای اجرای quiz.python InteractiveQuiz.py اجرا کنید
  7. به سوال مسابقه پاسخ دهید.

print("Hello, welcome to the geography quiz. Answer the questions as they are presented.")

print("Question 1. What city is the capital of Australia?")
userInput = input()

if (userInput.lower() == "Canberra".lower()):
print("That is correct!")
else:
print("Sorry, the correct answer is Canberra.")

cd Desktop

python InteractiveQuiz.py

اولین سوال مسابقه در ترمینال اجرا می شود

چگونه چندین سوال را به آزمون اضافه کنیم

با تکرار کد بالا می توانید چندین سوال اضافه کنید. با این حال، این باعث می شود کد شما به طور غیر ضروری طولانی شود و به روز رسانی آن سخت تر شود. برای یک رویکرد بهتر، به جای آن اطلاعات مربوط به سوال را در یک شی ذخیره کنید.

  1. در بالای فایل پایتون، یک کلاس برای ذخیره اطلاعات مربوط به یک سوال مسابقه اضافه کنید. اگر قبلاً این کار را انجام نداده‌اید، می‌توانید درباره نحوه ایجاد کلاس در Python.class اطلاعات بیشتری کسب کنید. بازگشت &apos{&apos+ self.questionText +&apos، &apos+ self.answer +&apos}&apos
  2. در زیر کلاس، آرایه ای از اشیاء سوال اضافه کنید. این اشیاء متن سوالی را که آزمون به کاربر نشان می دهد به همراه پاسخ صحیح ذخیره می کند.quizQuestions = [ Question(“سوال 1. پایتخت استرالیا کدام شهر است”، “Canberra”), Question(“سوال 2. پایتخت ژاپن کدام شهر است، “توکیو”)، سوال (“سوال 3. فیلیپین چند جزیره دارد”، “7100”)]
  3. دستور if موجود و کد ورودی کاربر را جایگزین کنید. در عوض، از یک حلقه for برای تکرار روی آرایه quizQuestions استفاده کنید. برای هر سوال، سوال را نمایش دهید و ورودی کاربر را با پاسخ صحیح سوال در quizQuestions مقایسه کنید: print(f”{question.questionText}?”) userInput = input() if (userInput.lower() == سوال .answer.lower()): print(“این درست است!”) else: print(f”با عرض پوزش، پاسخ صحیح {question.answer} است.”)
مطلب مرتبط:   درک توابع مرتبه بالاتر در جاوا اسکریپت

class Question:
def __init__(self, questionText, answer):
self.questionText = questionText
self.answer = answer

def __repr__(self):
return &apos{&apos+ self.questionText +&apos, &apos+ self.answer +&apos}&apos

quizQuestions = [
Question("Question 1. What city is the capital of Australia", "Canberra"),
Question("Question 2. What city is the capital of Japan", "Tokyo"),
Question("Question 3. How many islands does the Philippines have", "7100")
]

for question in quizQuestions:
print(f"{question.questionText}?")
userInput = input()
if (userInput.lower() == question.answer.lower()):
print("That is correct!")
else:
print(f"Sorry, the correct answer is {question.answer}.")

نحوه اضافه کردن سوالات چند گزینه ای

می توانید کلاس سؤال را برای پاسخگویی به سؤالات چند گزینه ای گسترش دهید.

  1. کلاس Question را در بالای فایل تغییر دهید. یک ویژگی اختیاری به نام multipleChoiceOptions.class Question اضافه کنید: def __init__(self, questionText, answer, multipleChoiceOptions=None): self.questionText = questionText self.answer = answer self.multipleChoiceOptions = multipleChoiceOptions def __repr__(self, return+a) .questionText +&apos، &apos+ self.answer +&apos، &apos+ str(self.multipleChoiceOptions) +&apos}&apos
  2. یک سوال دیگر به آرایه quizQuestions اضافه کنید. ذخیره چند گزینه چند گزینه ای برای question.quizQuestions = [ سوال (“سوال 1. پایتخت استرالیا کدام شهر است”، “کانبرا”), سوال (“سوال 2. پایتخت ژاپن کدام شهر است”، “توکیو” “)، سوال (“سوال 3. فیلیپین چند جزیره دارد”، “7100”)، سوال (“سوال 4. کدام کشور بیشترین توده زمین را دارد”، “ب”، [“(الف) ایالات متحده” ، “(ب) روسیه”، “(ج) استرالیا”، “(د) قطب جنوب”])،]
  3. بخشی از حلقه for را که سوال را به کاربر نمایش می دهد تغییر دهید. اگر گزینه‌های چند گزینه‌ای برای سؤال وجود دارد، آنها را بعد از سؤال و قبل از واکشی input.for سؤال کاربر در quizQuestions نمایش دهید: if (question.multipleChoiceOptions != None): print(f”{question.questionText}?”) برای گزینه در question.multipleChoiceOptions: print(option) userInput = input() else: print(f”{question.questionText}?”) userInput = input() if (userInput.lower() == question.answer.lower( )): print(“این درست است!”) else: print(f”با عرض پوزش، پاسخ صحیح {question.answer} است.”)

class Question:
def __init__(self, questionText, answer, multipleChoiceOptions=None):
self.questionText = questionText
self.answer = answer
self.multipleChoiceOptions = multipleChoiceOptions

def __repr__(self):
return &apos{&apos+ self.questionText +&apos, &apos+ self.answer +&apos, &apos+ str(self.multipleChoiceOptions) +&apos}&apos

quizQuestions = [
Question("Question 1. What city is the capital of Australia", "Canberra"),
Question("Question 2. What city is the capital of Japan", "Tokyo"),
Question("Question 3. How many islands does the Philippines have", "7100"),
Question("Question 4. Which country takes the most land mass", "b", ["(a) United States", "(b) Russia", "(c) Australia", "(d) Antarctica"]),
]

for question in quizQuestions:
if (question.multipleChoiceOptions != None):
print(f"{question.questionText}?")
for option in question.multipleChoiceOptions:
print(option)
userInput = input()
else:
print(f"{question.questionText}?")
userInput = input()

if (userInput.lower() == question.answer.lower()):
print("That is correct!")
else:
print(f"Sorry, the correct answer is {question.answer}.")

نحوه اضافه کردن سوالی که دارای پاسخ های صحیح جایگزین است

گاهی اوقات سؤالاتی وجود دارد که کاربر می تواند بخشی از پاسخ را تایپ کند، اما از نظر فنی هنوز درست است.

به عنوان مثال، یکی از سوالات آزمون شما می تواند این باشد که “ژاپن در کدام نیمکره واقع شده است؟” در این حالت، کاربر می تواند «شمالی»، «شمالی» یا «نیمکره شمالی» را تایپ کند و همچنان درست باشد.

  1. یک ویژگی اختیاری دیگر به کلاس Question اضافه کنید. این ویژگی حاوی هر گونه پاسخ صحیح جایگزین احتمالی است که کاربر می تواند وارد کند. سوال کلاس: def __init__(self, questionText, answer, multipleChoiceOptions=هیچکدام, alternateAnswers=هیچکدام): self.questionText = questionText self.answer = answer self.multipleChoiceOptions = multipleChoiceOptions self.alternateAnswers = alternateAnswers def __repr__(self): return &apos{&apos+ self.questionText +&apos, &apos+ self.answer +&apos, &apos+ str(self.multipleChoiceOptions) +&apos, &apos, &apos.}
  2. یک سوال دیگر به آرایه quizQuestions اضافه کنید. “نیمکره شمالی” را به عنوان پاسخ صحیح اضافه کنید. “شمالی” و “شمالی” را به عنوان پاسخهای صحیح جایگزین اضافه کنید.quizQuestions = [ #… سوال(“سوال 5. ژاپن در کدام نیمکره واقع شده است”، “نیمکره شمالی”، []، [“شمالی”، “شمالی” ])]
  3. شرط دیگری به عبارت if اضافه کنید که بررسی می کند آیا کاربر یک پاسخ صحیح جایگزین را وارد کرده است.if (userInput.lower() == question.answer.lower()): print(“درست است!”)elif (سوال). alternateAnswers != None و userInput.lower() در question.alternateAnswers): print(“درست است!”)else: print(f”با عرض پوزش، پاسخ صحیح {question.answer} است.”)

class Question:
def __init__(self, questionText, answer, multipleChoiceOptions=None, alternateAnswers=None):
self.questionText = questionText
self.answer = answer
self.multipleChoiceOptions = multipleChoiceOptions
self.alternateAnswers = alternateAnswers

def __repr__(self):
return &apos{&apos+ self.questionText +&apos, &apos+ self.answer +&apos, &apos+ str(self.multipleChoiceOptions) +&apos, &apos+ str(self.alternateAnswers) +&apos}&apos

quizQuestions = [
#...
Question("Question 5. What hemisphere is Japan located in", "Northern Hemisphere", [], ["north", "northern"]),
]

if (userInput.lower() == question.answer.lower()):
print("That is correct!")
elif (question.alternateAnswers != None and userInput.lower() in question.alternateAnswers):
print("That is correct!")
else:
print(f"Sorry, the correct answer is {question.answer}.")

نحوه ارائه نکات به کاربر

می‌توانید اسکریپت را طوری تغییر دهید که کاربر نتواند تا زمانی که سؤال فعلی را درست انجام دهد، به مرحله بعدی برود. در این صورت یک متغیر اضافه کنید تا تعداد دفعات پاسخ اشتباه کاربر را بشمارید. پس از سه حدس نادرست، می توانید به کاربر اشاره کنید.

  1. کلاس Question را تغییر دهید تا از یک hint ویژگی جدید استفاده کند. class Question: def __init__(self, questionText, answer, hint=None, multipleChoiceOptions=هیچکدام, alternateAnswers=هیچکدام): self.questionText = questionText self.answer = پاسخ self.hint = اشاره self.multipleChoiceOptions = multipleChoiceOptions self.alternateAnswers = alternateAnswers def __repr__(self): return &apos{&apos+ self.questionText +&apos، &apos+ self.answer +&apos، &apos+ self.hint +&apos str(+selaf+. , &apos+ str(self.alternateAnswers) +&apos}&apos
  2. نکاتی را به تمام سوالات موجود در quiz.quizQuestions اضافه کنید. پایتخت ژاپن، “توکیو”، “با یک T شروع می شود”)، سوال (“سوال 3. فیلیپین چند جزیره دارد”، “7100”، “عددی بین 7000 تا 8000”)، سوال (“سوال” 4. کدام کشور بیشترین توده زمین را دارد، “ب”، “کشور دو قاره را در بر می گیرد”، [“(الف) ایالات متحده، “(ب) روسیه، “(ج) استرالیا، “(د) قطب جنوب»])، سؤال («سوال 5. ژاپن در کدام نیمکره واقع شده است»، «نیمکره شمالی»، «نیمه بالایی زمین»، []، [«شمال»، «شمالی»])،]
  3. عبارات if را حذف کنید که بررسی می کند آیا کاربر به سؤال پاسخ صحیح داده است یا خیر. اینها را با یک حلقه while جایگزین کنید. حلقه while به طور پیوسته حلقه می شود تا زمانی که کاربر پاسخ صحیح را دریافت کند. در داخل حلقه while، یک شمارش اضافه کنید که وقتی کاربر سه بار پاسخ اشتباه را دریافت کرد، راهنمایی را نمایش می‌دهد. برای سؤال در quizQuestions: if (question.multipleChoiceOptions != None): print(f”{question.questionText}?”) برای گزینه در question.multipleChoiceOptions: print(option) userInput = input() else: print(f”{question.questionText}?”) userInput = input() count = 0 while (userInput.lower() != question.answer .lower()): if (question.alternateAnswers != None و userInput.lower() در question.alternateAnswers): break; count = count + 1 if (count >= 3): print(f”Hint: {question.hint}.”) userInput = input() else: print(“این درست نیست، دوباره امتحان کنید.”) userInput = ورودی () چاپ (“درست است!”)
  4. آزمون خود را در خط فرمان با استفاده از python command.python InteractiveQuiz.py دوباره اجرا کنید
  5. به سوالات مسابقه پاسخ دهید.

class Question:
def __init__(self, questionText, answer, hint=None, multipleChoiceOptions=None, alternateAnswers=None):
self.questionText = questionText
self.answer = answer
self.hint = hint
self.multipleChoiceOptions = multipleChoiceOptions
self.alternateAnswers = alternateAnswers

def __repr__(self):
return &apos{&apos+ self.questionText +&apos, &apos+ self.answer +&apos, &apos+ self.hint +&apos, &apos+ str(self.multipleChoiceOptions) +&apos, &apos+ str(self.alternateAnswers) +&apos}&apos

quizQuestions = [
Question("Question 1. What city is the capital of Australia", "Canberra", "Starts with a C"),
Question("Question 2. What city is the capital of Japan", "Tokyo", "Starts with a T"),
Question("Question 3. How many islands does the Philippines have", "7100", "A number between 7000 and 8000"),
Question("Question 4. Which country takes the most land mass", "b", "The country spans two continents", ["(a) United States", "(b) Russia", "(c) Australia", "(d) Antarctica"]),
Question("Question 5. What hemisphere is Japan located in", "Northern Hemisphere", "The top half of Earth", [], ["north", "northern"]),
]

for question in quizQuestions:
if (question.multipleChoiceOptions != None):
print(f"{question.questionText}?")
for option in question.multipleChoiceOptions:
print(option)
userInput = input()
else:
print(f"{question.questionText}?")
userInput = input()
count = 0
while (userInput.lower() != question.answer.lower()):
if (question.alternateAnswers != None and userInput.lower() in question.alternateAnswers):
break;
count = count + 1
if (count >= 3):
print(f"Hint: {question.hint}.")
userInput = input()
else:
print("That is not correct, try again.")
userInput = input()

print("That is correct!")

python InteractiveQuiz.py

چند سوال مسابقه در خط فرمان

ایجاد اپلیکیشن های کوچک با استفاده از پایتون

یکی از پروژه هایی که می توانید هنگام یادگیری نحوه کدنویسی در پایتون انجام دهید، یک مسابقه تعاملی است. در مسابقه می توانید انواع مختلفی از سوالات را به کاربر ارائه دهید.

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

برای بهبود مهارت های خود در پایتون، تمرین تمرین ها و مثال های مختلف ایده خوبی است. می توانید به نمونه های دیگر پایتون که می تواند به شما در یادگیری کمک کند نگاهی بیندازید.