python練習 2020/10/13

weixin_48636791發表於2020-10-13
8、找出一段句子中最長的單詞及其索引位置,以字典返回字串的練習題
import string
s = "the pepople republic of china! hhhhhhhh"
result={}
max_word=[]
max_length=0
for i in s:#把標點過濾掉
    if i in string.punctuation:
        new_s=s.replace(i,'')
print(new_s)

for i in new_s.split():#找到最長單詞的長度
    if len(i)>max_length:
        max_length=len(i)

print(max_length)

for i in new_s.split():#找到最長單詞
    if len(i)==max_length:
        max_word.append(i)
print(max_word)

for i in max_word:#找到最長單詞的索引
    result[i]=s.index(i)
print(result)

#2
import string
s = "the pepople republic of china! hhhhhhhh"
result={}
max_word=[]

for i in s:
    if i in string.punctuation:
        new_s=s.replace(i,'')
print(new_s)
max_length=len(sorted(new_s.split(),key=len,reverse=True)[0])
print(max_length)

for i in new_s.split():
    if len(i)==max_length:
        max_word.append(i)
print(max_word)

for i in max_word:
    result[i]=s.index(i)
print(result)

9、字母遊戲
“Pig Latin”是一個英語兒童文字改寫遊戲,整個遊戲遵從下述規則:
(1). 母音字母是‘a’、‘e’、‘i’、‘o’、‘u’。字母‘y’在不是第一個字母的情況下,也被視作母音
字母。其他字母均為子音字母。例如,單詞“yearly”有三個母音字母(分別為‘e’、‘a’和最後一個‘y’)和三個子音字母(第一個‘y’、‘r’和‘l’)。

(2). 如果英文單詞以母音字母開始,則在單詞末尾加入“hay”後得到“Pig Latin”對應單詞。例如,“ask”變為“askhay”,“use”變為“usehay”。(同上)

(3). 如果英文單詞以‘q’字母開始,並且後面有個字母‘u’,將“qu”移動到單詞末尾加入“ay”後得到“Pig Latin”對應單詞。例如,“quiet”變為“ietquay”,“quay”變為“ayquay”。
(4). 如果英文單詞以子音字母開始,所有連續的子音字母一起移動到單詞末尾加入“ay”後得到“Pig Latin”對應單詞。例如,“tomato”變為“omatotay”, “school” 變為“oolschay”,“you” 變為“ouyay”,“my” 變為“ymay ”,“ssssh” 變為“sssshay”。

(5). 如果英文單詞中有大寫字母,必須所有字母均轉換為小寫。
輸入格式:
一系列單詞,單詞之間使用空格分隔。
輸出格式:
按照以上規則轉化每個單詞,單詞之間使用空格分隔。
輸入樣例:
Welcome to the Python world Are you ready
輸出樣例:
elcomeway otay ethay ythonpay orldway arehay ouyay eadyray

s = "Welcome to the Python world Are you ready"
result = []
for v in s:
    if v.isupper():#如果有大寫字母,轉換成小寫字母
        s = s.replace(v,v.lower())
s = s.split()
for word in s:
    if word[0] in "aeiou":#第一個字母在‘aeiou'中末尾加入‘hay'
        temp1= word + "hay"
        result.append(temp1)
    elif word[0:2] == "qu": #第一個字母和第二個字母是’qu',將‘qu'移到末尾,加+’ay'
        temp2 = word[2:] + word[:2] + "ay"
        result.append(temp2)
    elif word[0] not in "aeiou": #第一個字母不是‘aeiou’,連續的子音字母一起移動到單詞末尾加入“ay”
        temp =""
        index = 0
        temp += word[0]
        for i in range(1,len(word)):
            if word[i] not in "aeiouy":
                temp += word[i]
                index += 1
            else:
                break
        result.append(word[index+1:] + temp + "ay")
print(result)

10、實現字串的upper、lower以及swapcase方法

#1
def upper(s):
    if not isinstance(s,str):
        return False
    result=''
    for i in s:
        if i>='a' and i<='z':
            result+=chr(ord(i)-32)
        else:
            result+=i
    return result

print(upper('aaa'))

#2
def lower(s):
    if not isinstance(s,str):
        return False
    result=''
    for i in s:
        if i>='A' and i<='Z':
            result+=chr(ord(i)+32)
        else:
            result+=i
    return result
print(lower('AAA1'))

#3
def swapcase(s):
    if not isinstance(s,str):
        return False
    result = ""
    for v in s:
        if v >= "a" and v <= "z":
            result += chr(ord(v)-32)
        elif  v >= "A" and v <= "Z":
            result += chr(ord(v)+32)
        else:
            result+=v
    return result 
print(swapcase("AAaa1"))

相關文章