Python勉強中で備忘録です。今回は結構、練習が多くて難しかったですが、ある意味、パズルみたいで楽しくもあります。

⇒以下の通りかと思ったが、Falseだった。*改行後のスペース省略。
”str1 = “が必要だった。 returnが必要だった。
def remove_punctuations(str_engsentences):
str_engsentences.replace(‘.’,”)
str_engsentences.replace(‘,’,”)
str_engsentences.replace(‘:’,”)
str_engsentences.replace(‘;’,”)
str_engsentences.replace(‘!’,”)
str_engsentences.replace(‘?’,”)
<模範解答>
def remove_punctuations(str_engsentences): str1 = str_engsentences.replace('.', '') # 指定の文字を空文字に置換 str1 = str1.replace(',', '') str1 = str1.replace(':', '') str1 = str1.replace(';', '') str1 = str1.replace('!', '') str1 = str1.replace('?', '') return str1 #remove_punctuations('Quiet, uh, donations, you want me to make a donation to the coast guard youth auxiliary?')

⇒以下の通りかと思ったが、Falseだった。小文字にしないと1回目にAからTにした後で、そのTも元々のTも全てAになってしまう。しかし、小文字を大文字に変換する関数は、この問題を解く時点では教えられていないんだが?
def atgc_bppair(str_atgc):
str1 = str_atgc.replace(‘A’,’T’)
str1 = str1.replace(‘T’,’A’)
str1 = str1.replace(‘G’,’C’)
str1 = str1.replace(‘C’,’G’)
return str1
<模範解答>
def atgc_bppair(str_atgc): str_pair = str_atgc.replace('A', 't')# 指定の文字に置換。ただし全て小文字 str_pair = str_pair.replace('T', 'a') str_pair = str_pair.replace('G', 'c') str_pair = str_pair.replace('C', 'g') str_pair = str_pair.upper() # 置換済みの小文字の列を大文字に変換 return str_pair #atgc_bppair('AAGCCCCATGGTAA')

⇒以下の通りかと思ったが、Falseだった。根本的な考え方は悪くなかったが、「return print」というのが普通ではないっぽい。
def check_lower(str_engsentences):
return print(‘str_engsentences’ == ‘str_engsentences.lower()’)
<模範解答>
def check_lower(str_engsentences): if str_engsentences == str_engsentences.lower():#元の文字列と小文字に変換した文字列を比較する return True return False

⇒以下の通りかと思ったが、Falseだった。根本的な考え方は悪くなかったが、スライスのところが「+2」。「,」の後にはスペース。
def remove_clause(str_engsentences):
index = str_engsentences.index(‘,’)
word1 = str_engsentences[index+1:]
word2 = word1.capitalize()
return word2
<模範解答>
def remove_clause(str_engsentences):
int_index = str_engsentences.find(',')
str1 = str_engsentences[int_index+2:]
return str1.capitalize()

<今回の理解内容>
・インデックスは 0
から始まる。
・インデックスに負数を指定すると、 文字列を後ろから数えた順序に従って文字列を構成する文字を得る。
・スライス[x:y]は(x+1)番目からy番目まで。
・[3:9:2]は、インデックス 3 から1文字おき(テキストには2文字おきと記載があるが、違うのでは)にインデックス 9 より小さい文字を並べた部分文字列を得ます。
・カッコは同じもので閉じる。カッコ内のカッコは別のものを使う。\’などもカッコ扱い。
・findとindexはほぼ同じ。
・lower, capitalize, upper メソッドを用いると、文字列の中の英文字を小文字に変換したり、大文字に変換したりすることができるが、これらの操作では、元の文字列は変化しない。
・スライス内に定義した文字を入れられる。例)[index+1:]
・文字列の大小の比較は、辞書式。abc<abd
・文字列が等しい場合は 「==」
・「,」の後のスペースも文字数に含める。
コメント