文字列の小文字を検出する関数があるかどうかを知る必要があります。私がこのプログラムを書き始めたとしましょう:
s = input('Type a word')
文字列 s 内の小文字を検出できる関数はありますか? それらの文字を別の変数に割り当てるか、小文字または小文字の数を単に出力することになる可能性があります。
それらは私がやりたいことですが、小文字の存在を検出する方法に最も興味があります。最も単純な方法は大歓迎です。
文字が小文字かどうかを確認するには、 のislower
メソッドを使用しstr
ます。この単純な命令型プログラムは、文字列内のすべての小文字を出力します。
for c in s:
if c.islower():
print c
print(c)
Python 3では、代わりに を使用する必要があることに注意してくださいprint c
。
それらの文字を別の変数に割り当てることになる可能性があります。
これを行うには、リスト内包表記を使用することをお勧めしますが、コースでまだカバーしていない可能性があります。
>>> s = 'abCd'
>>> lowercase_letters = [c for c in s if c.islower()]
>>> print lowercase_letters
['a', 'b', 'd']
''.join
または、ジェネレーターで使用できる文字列を取得するには:
>>> lowercase_letters = ''.join(c for c in s if c.islower())
>>> print lowercase_letters
'abd'
小文字を探す方法は 2 つあります。
str.islower()
小文字の検索に使用します。リスト内包表記と組み合わせると、すべての小文字を収集できます。
lowercase = [c for c in s if c.islower()]
正規表現を使用できます。
import re
lc = re.compile('[a-z]+')
lowercase = lc.findall(s)
最初のメソッドは個々の文字のリストを返し、2 番目のメソッドは文字グループのリストを返します。
>>> import re
>>> lc = re.compile('[a-z]+')
>>> lc.findall('AbcDeif')
['bc', 'eif']
raw_input
文字列入力を受け取るために使用する必要があります。次に、オブジェクトislower
のメソッドを使用しstr
ます。
s = raw_input('Type a word')
l = []
for c in s.strip():
if c.islower():
print c
l.append(c)
print 'Total number of lowercase letters: %d'%(len(l) + 1)
やるだけ -
dir(s)
islower
およびその他の属性が見つかりますstr
import re
s = raw_input('Type a word: ')
slower=''.join(re.findall(r'[a-z]',s))
supper=''.join(re.findall(r'[A-Z]',s))
print slower, supper
版画:
Type a word: A Title of a Book
itleofaook ATB
または、リスト内包表記/ジェネレーター式を使用できます。
slower=''.join(c for c in s if c.islower())
supper=''.join(c for c in s if c.isupper())
print slower, supper
版画:
Type a word: A Title of a Book
itleofaook ATB
ライブラリを使用せず、簡単な答えが必要な場合は、コードを以下に示します。
def swap_alpha(test_string):
new_string = ""
for i in test_string:
if i.upper() in test_string:
new_string += i.lower()
elif i.lower():
new_string += i.upper()
else:
return "invalid "
return new_string
user_string = input("enter the string:")
updated = swap_alpha(user_string)
print(updated)