44

文字列の小文字を検出する関数があるかどうかを知る必要があります。私がこのプログラムを書き始めたとしましょう:

s = input('Type a word')

文字列 s 内の小文字を検出できる関数はありますか? それらの文字を別の変数に割り当てるか、小文字または小文字の数を単に出力することになる可能性があります。

それらは私がやりたいことですが、小文字の存在を検出する方法に最も興味があります。最も単純な方法は大歓迎です。

4

6 に答える 6

49

文字が小文字かどうかを確認するには、 の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'
于 2012-10-17T13:07:12.047 に答える
12

小文字を探す方法は 2 つあります。

  1. str.islower()小文字の検索に使用します。リスト内包表記と組み合わせると、すべての小文字を収集できます。

    lowercase = [c for c in s if c.islower()]
    
  2. 正規表現を使用できます。

    import re
    
    lc = re.compile('[a-z]+')
    lowercase = lc.findall(s)
    

最初のメソッドは個々の文字のリストを返し、2 番目のメソッドは文字グループのリストを返します。

>>> import re
>>> lc = re.compile('[a-z]+')
>>> lc.findall('AbcDeif')
['bc', 'eif']
于 2012-10-17T13:10:41.643 に答える
3

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

于 2012-10-17T13:13:02.833 に答える
1
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
于 2012-10-17T13:10:29.707 に答える
0

ライブラリを使用せず、簡単な答えが必要な場合は、コードを以下に示します。

  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)
于 2020-06-14T12:47:02.917 に答える