第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python 中的 Pig 拉丁化字符串

Python 中的 Pig 拉丁化字符串

天涯盡頭無女友 2021-11-16 14:25:14
我是一名非常喜歡編程的本科生。我在做練習(xí)的時(shí)候遇到了一個(gè)問題,我很困惑。我在網(wǎng)上搜索了相關(guān)文件(https://www.dreamincode.net/forums/topic/293449-simple-pig-latin-program-have-trouble/),但我還不能清楚地理解。要求如下:給定一個(gè)空格分隔的單詞序列,返回一個(gè)新的空格分隔的單詞序列,修改為豬拉丁語。這里的豬拉丁語定義為修改一個(gè)單詞以去掉單詞第一個(gè)元音之前的字母,并在其末尾添加“ay”。如果單詞以元音開頭(a、e、i、o 或 u,而不是 y),只需在其末尾添加“way”即可。例如:ball 變成 allbay 而 I 變成 Iway。提示: split() 和 join() 函數(shù)在這里可能很有用。Example: Input: "this is a test" Output: "isthay isway away esttay" Example 2: Input: "how are you today" Output: "owhay areway ouyay odaytay"我的代碼如下:def pig_latin(s):    VOWELS = ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U")    words = s.split()    s1 = ''    s2 = ''    for w in words:        if w[0] in VOWELS:            s1 += w + 'ay'         else:            s2 += w[1:] + w[0] + 'ay'    return s1.join(s2)測(cè)試用例如下:Traceback (most recent call last):  File "/grade/run/test.py", line 40, in test_hard    self.assertEqual(pig_latin(n), a)AssertionError: 'hriscaylustercayhrowtay' != 'ischray usterclay owthray'- hriscaylustercayhrowtay? --     ^        ^^+ ischray usterclay owthray?    ++  ^      +  ^   ++也Traceback (most recent call last):  File "/grade/run/test.py", line 33, in test_case    self.assertEqual(pig_latin(n), a)AssertionError: 'hisayaayofayiisayaayofaysisayaayofaytisay[472 chars]fayy' != 'isthay isway away ongerlay entencesay ofw[20 chars]yday'- hisayaayofayiisayaayofaysisayaayofaytisayaayofayaisayaayofayyisayaayofayoisayaayofaynisayaayofaygisayaayofayeisayaayofayrisayaayofaylisayaayofayaisayaayofayyisayaayofayeisayaayofaynisayaayofaytisayaayofayeisayaayofaynisayaayofaycisayaayofayeisayaayofaysisayaayofayaisayaayofayyisayaayofayeisayaayofaydisayaayofayiisayaayofayuisayaayofaymisayaayofaymisayaayofayaisayaayofayyisayaayofayiisayaayofayfisayaayofayfisayaayofayiisayaayofaycisayaayofayuisayaayofaylisayaayofaytisayaayofayyisayaayofaydisayaayofayaisayaayofayy+ isthay isway away ongerlay entencesay ofway ediummay ifficultyday我很困惑,謝謝大家的幫助。
查看完整描述

2 回答

?
揚(yáng)帆大魚

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊

此類問題應(yīng)首先正確解釋,然后使用筆和紙,嘗試設(shè)計(jì)一種算法來解決您的問題。然后,您可以對(duì)其進(jìn)行編碼,從而生成無錯(cuò)誤且功能齊全的代碼。這是您解決問題的代碼。


def fun(s):

  words = s.split()

  new_string = ""

  vowels = ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U")

  for word in words:

    new_word = ""

    flag = False

    for i in range(len(word)):

      if word[i] in vowels and i>0:

        new_word = word[i:] + word[:i] + "ay"

        flag = True

        break

      if word[i] in vowels and i == 0:

        new_word = word + "way"

        break

    if new_word:

      new_string += " " + new_word

    else:

      new_string += " " + word

  return new_string

測(cè)試用例:


>>> fun("this is a test")

' isthay isway away esttay'



>>> fun("bcd")

' bcd'



>>> fun("how are you today")

' owhay areway ouyay odaytay'


查看完整回答
反對(duì) 回復(fù) 2021-11-16
?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊

這就是你的函數(shù)應(yīng)該是什么樣子


def pig_latin(s):

VOWELS = ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U")

words = s.split()

result = []

for w in words:

    if w[0] in VOWELS:

        result.append(w + 'way')

    else:

        for idx, char in enumerate(w):

            if char in VOWELS:

                result.append(w[idx:] + w[:idx] + 'ay')

                break

            else:

                continue

        else:

            result.append(w)


return ' '.join(result)

由于您想取出第一個(gè)元音之前的所有輔音,您需要遍歷每個(gè)單詞以檢查第一個(gè)元音的位置。


此外,在執(zhí)行 時(shí)s1.join(s2),您會(huì)忘記在單詞之間添加額外的空格。


查看完整回答
反對(duì) 回復(fù) 2021-11-16
  • 2 回答
  • 0 關(guān)注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)