تمرین برنامه‌نویسی: کلمات شاخص لطفا کمک کنید

برنامه‌ای بنویسید که از یک متن کلمات شاخص (کلماتی که با حروف بزرگ شروع می‌شوند) را به همراه شماره کلمه (چندمین کلمه می‌باشد) را در خروجی چاپ کند. در صورتی که در متن، کلمه‌ای با این ویژگی یافت نشد، در خروجی None چاپ کند. کلماتی که در ابتدای جمله می‌باشند به عنوان کلمه شاخص در نظر نباید بگیرید. (شماره کلمات را از یک شروع کنید)

اعداد جز کلمات شاخص حساب نمی‌شوند. تنها نشانه مورد استفاده در جمله به جز نقطه، ویرگول می‌باشد. حتما دقت شود که در صورتی که نقطه یا ویرگول در آخر کلمه بود، حذف شود.

ورودی نمونه:

The Persian League is the largest sport event dedicated to the deprived areas of Iran. The Persian League promotes peace and friendship.
This video was captured by one of our heroes who wishes peace.
خروجی نمونه:

2:Persian
3:League
15:Iran
17:Persian
18:League
توجه: چنانچه قصد دارید از دیکشنری در حل مسائل خود استفاده کنید، به این نکته توجه کنید که دیکشنری ترتیب را حفظ نمی‌کند.

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 4 سال پیش

سلام وقت شما بخیر

خسته نباشید

تو اسکریپت زیر با استفاده از regex خیلی راحت سوالی که مطرح کردید حل میشه:

import re

inputText = ""

# we will use this regex pattern to check if a word is started with upperCase
isUpperCase = re.compile("^([A-Z])\w+")

# we will store upperCase words in this array
result = []
# number of word in the hole input
wordIndex = 0

# separate sentences
sentences = inputText.strip().split('.')

for s in sentences:
 # get array of words in each sentence
 words = s.strip().split(' ')

 for index, word in enumerate(words):
 # increase wordIndex
 wordIndex += 1

 # just pass first word
 if index == 0:
 continue

 # check regex and if true add word and wordIndex to result
 if isUpperCase.match(word):
 result.append({
 "index": wordIndex,
 "word": word
 })


# finally print result
for word in result:
 print(word["index"], ": ", word["word"])

فقط کافیه به جای inputText مقدار مورد نظر خودتون رو قرار بدید.

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

https://jsfiddle.net/CodeArtisT75/t9bw4nhd/10/

موفق باشید

sokanacademy forum
کاربر سکان آکادمی 4 سال پیش

ممنون کد میتونه دید خوبی بده ولی فکرمیکنم برای سایت مکتبخونه میخوان بچه ها اونجا من تست کردم این کد اصلا جواب نمیده بچه ها اینجا نوشتم که چون فرصت هاتون محدود فرصتتون ازبین نره برنامه نویس ها لطفا کدجدید رو کنید:)))

sokanacademy forum
کاربر سکان آکادمی 3 سال پیش
def IndexWords(InputText):
....count = 2
....for i in range(len(InputText)):
........for word in InputText[i].split()[1:]:
............CapitalizationCheck = list(word.strip(','))[0].isupper()
............if CapitalizationCheck == True:
................print('%s:%s' % (word, count))
............count += 1
........count += 1


IndexWords(input().split('.'))
​
online-support-icon