8、找出一段句子中最長的單詞及其索引位置,以字典返回字串的練習題
import string
s ="the pepople republic of china! hhhhhhhh"
result={}
max_word=[]
max_length=0for i in s:#把標點過濾掉if i in string.punctuation:
new_s=s.replace(i,'')print(new_s)for i in new_s.split():#找到最長單詞的長度iflen(i)>max_length:
max_length=len(i)print(max_length)for i in new_s.split():#找到最長單詞iflen(i)==max_length:
max_word.append(i)print(max_word)for i in max_word:#找到最長單詞的索引
result[i]=s.index(i)print(result)#2import 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():iflen(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]notin"aeiou":#第一個字母不是‘aeiou’,連續的子音字母一起移動到單詞末尾加入“ay”
temp =""
index =0
temp += word[0]for i inrange(1,len(word)):if word[i]notin"aeiouy":
temp += word[i]
index +=1else:break
result.append(word[index+1:]+ temp +"ay")print(result)10、實現字串的upper、lower以及swapcase方法
#1defupper(s):ifnotisinstance(s,str):returnFalse
result=''for i in s:if i>='a'and i<='z':
result+=chr(ord(i)-32)else:
result+=i
return result
print(upper('aaa'))#2deflower(s):ifnotisinstance(s,str):returnFalse
result=''for i in s:if i>='A'and i<='Z':
result+=chr(ord(i)+32)else:
result+=i
return result
print(lower('AAA1'))#3defswapcase(s):ifnotisinstance(s,str):returnFalse
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"))