2016-11-24 11 views
0

文字列内の文字が特殊文字(例:#。@。$)の場合にtrueを返す特定の関数はありますか?同様に、isalpha()関数は、文字列内のすべての文字が文字であれば真を返します。Python文字列処理関数

文字列の長さ、文字数、桁数、および文字数ではない文字数を印刷する必要があるプログラムを作成する必要があります。 。私は最初の2つの部分は、私が最後にこだわっているとはいえ考え出しまし

counter = 0 
num = 0 
extra = 0 

wrd = raw_input("Please enter a short sentence.") 

for i in wrd: 
    if i.isalpha(): 
     counter = counter + 1 

print "You have " + str(counter) +" letters in your sentence." 

for n in wrd: 
    if n.isnumeric(): 
     num = num + 1 

print "You have " + str(num) + " number(s) in your sentence" 

for l in wrd: 
    extra = extra + 1 

print "You have " + str(extra) + " characters that are not letters or numbers." 

...私はその簡単にはちょうどwhileループを作成するために知っているが、私はすでに始めてから、私は3〜4のループに固執したいです。

+1

なぜ 'len(wrd) - counter-num'? – TigerhawkT3

答えて

3

別の機能は必要ありません。あなたは既に他の文字を数えたので、合計からそれらを引く:(。。:#@ $ EX)

print "You have", len(wrd) - counter - num, "characters that are not letters or numbers." 
0

は、文字列内の文字は特殊文字である場合はtrueを返し、特定の機能があります?同様に、isalpha()関数は、文字列内のすべての文字が文字であれば真を返します。

ありませんが、あなた自身を作成するために、そのかなり簡単:

import string 

def has_special_chars(s): 
    return any(c in s for c in string.punctuation) 

テスト:あなたのケースでは

>>> has_special_chars("[email protected]$dujhf&") 
True 
>>> has_special_chars("abtjhjfdujhf") 
False 
>>> 

、あなたが好きそれを使用します。

for l in wrd: 
    if has_special_chars(l) 
     extra=extra+1 

しかし、@ TigerHawkT3はすでに私に言ってもらえませんでしたので、代わりにlen(wrd) - counter - numを使用してください。その最も標準的で明白な方法です。ただ、この文脈を超えて適用される一般的な答えをログに記録する

0

からifelifelse

import string 
def num_special_char(word): 
    count=0 
    for i in word: 
     if i in string.punctuation: 
      count+=1 
    return count 

print "You have " + str(num_special_char('Vi$vek!')) + " characters that are not letters or numbers." 

出力

You have 2 characters that are not letters or numbers. 
0

いずれかを使用forループ:

sentence = raw_input("Please enter a short sentence.") 

alpha = num = extra = 0 
for character in sentence: 
    if character.isspace(): 
     pass 
    elif character.isalpha(): 
     alpha += 1 
    elif character.isnumeric(): 
     num += 1 
    else: 
     extra += 1 

print "You have {} letters in your sentence.".format(alpha) 
print "You have {} number(s) in your sentence".format(num) 
print "You have {} characters that are not letters or numbers.".format(extra) 
関連する問題