alibadparva0

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

alibadparva0 ۱۳۹۹/۰۵/۲۳ زبان برنامه‌نویسی پایتون

برنامه‌ای بنویسید که از یک متن کلمات شاخص (کلماتی که با حروف بزرگ شروع می‌شوند) را به همراه شماره کلمه (چندمین کلمه می‌باشد) را در خروجی چاپ کند. در صورتی که در متن، کلمه‌ای با این ویژگی یافت نشد، در خروجی 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
توجه: چنانچه قصد دارید از دیکشنری در حل مسائل خود استفاده کنید، به این نکته توجه کنید که دیکشنری ترتیب را حفظ نمی‌کند.

پاسخ‌ها به این تاپیک
omid.fallah.ka
omid.fallah.ka
۱۳۹۹/۰۹/۱۰
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('.'))
​
محمدحسین جوان بخت
محمدحسین جوان بختتوسعه دهنده وب هستم
۱۳۹۹/۰۵/۲۶

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

خسته نباشید

تو اسکریپت زیر با استفاده از 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/

موفق باشید

dddddddddddddd
dddddddddddddd
۱۳۹۹/۰۶/۰۳

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

در پاسخ به