pythonは文字列の中で文字の分類と個数の統計を実現します。
文字列を入力して、英語、スペース、数字、その他の文字の個数をそれぞれ集計します。ここで解決方法を示します。
編纂構想:
1、文字列の遍歴は、リストと同様に、文字列を要素として1文字の文字リストとして使用できます。リストと共通の文法があります。
2、異なるカテゴリに分けて、該当する文字があれば、直接にカテゴリ数に1を加えるといいです。
初期コード:
1、if char='a'and char=''z'or char'='A'and char=''Z'はif'a'==char'='z'r'==='Z':より簡潔に書くことができます。
2、elif 0<=char==9:0'==char''9'、文字(文字列)は引用符を付けなければなりません。 'or ” “,しかし、例は以下の通りです
--Pythonには「文字」という概念がなく、たとえcharが文字列であっても、Pythonは文字列に対して敏感に分析しないのは文字列だけではなく、判断することができます。
--上記の例の「2 ab」は数字ではなく、文字列です。本題では問題はありませんが、文字列はすでに取り出されています。しかし、文字列の判断には非常に厳しい場合が多いので、厳密には文字列であると判断し、isdigitを使用します。
--isdigit()メソッドは、文字列が数字であるかどうかを判断できます。つまり、文字列のすべての文字が数字である場合、Trueです。そうでなければFalseです。
3、elif char==',' ']:elif char in'''''であるべきです。
[]はリストですので、inを適用します。nはリストだけでなく、タプル、辞書でも使えます。元のグループで使うのはリストと同じ意味です。辞書で使うと、このキーがあるかどうかという意味です。
4、elifはelse ifと同じ使い方ですが、直接else ifと書くことはできません。python文法の規定のため、elseの後ろには必ずコロン(複合文)が必要です。直接ifを書いても間違えます。
Type Errror:unsupported operand type(s)for+:'int'and'str'を誤報します。
一つは整形で、一つは文字列で、直接追加できません。フォーマット出力が必要です。フォーマットは:print%X変数です。
変更後のコード:
その中:%dはフォーマットで、1つの整数変数を出力したいと表しています。numberはこのフォーマットを置換する変数に対応しています。%dの出力に対応するという意味です。複数のフォーマットがある場合は、変数は順番にマッチします。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
編纂構想:
1、文字列の遍歴は、リストと同様に、文字列を要素として1文字の文字リストとして使用できます。リストと共通の文法があります。
2、異なるカテゴリに分けて、該当する文字があれば、直接にカテゴリ数に1を加えるといいです。
初期コード:
# -*- coding:utf-8 -*-
letter=0
number=0
space=0
symbol=0
print " :"
s=raw_input()
for char in s:
if char>'a' and char<'z' or char>'A' and char<'Z':
letter+=1
elif 0<=char<=9:
number+=1
elif char==[' ',' ']:
space+=1
else:
symbol+=1
print " , , , :"
print letter,number,space,symbol
エラー:1、if char='a'and char=''z'or char'='A'and char=''Z'はif'a'==char'='z'r'==='Z':より簡潔に書くことができます。
2、elif 0<=char==9:0'==char''9'、文字(文字列)は引用符を付けなければなりません。 'or ” “,しかし、例は以下の通りです
print '0'<='2ab'<='9'1
運転結果の出力はTrueです。--Pythonには「文字」という概念がなく、たとえcharが文字列であっても、Pythonは文字列に対して敏感に分析しないのは文字列だけではなく、判断することができます。
--上記の例の「2 ab」は数字ではなく、文字列です。本題では問題はありませんが、文字列はすでに取り出されています。しかし、文字列の判断には非常に厳しい場合が多いので、厳密には文字列であると判断し、isdigitを使用します。
--isdigit()メソッドは、文字列が数字であるかどうかを判断できます。つまり、文字列のすべての文字が数字である場合、Trueです。そうでなければFalseです。
3、elif char==',' ']:elif char in'''''であるべきです。
[]はリストですので、inを適用します。nはリストだけでなく、タプル、辞書でも使えます。元のグループで使うのはリストと同じ意味です。辞書で使うと、このキーがあるかどうかという意味です。
4、elifはelse ifと同じ使い方ですが、直接else ifと書くことはできません。python文法の規定のため、elseの後ろには必ずコロン(複合文)が必要です。直接ifを書いても間違えます。
else:
if char.isdigit():
number+=1123
5、出力をprint letter+'+number+'+space+'+smbolに換える。Type Errror:unsupported operand type(s)for+:'int'and'str'を誤報します。
一つは整形で、一つは文字列で、直接追加できません。フォーマット出力が必要です。フォーマットは:print%X変数です。
変更後のコード:
# -*- coding:utf-8 -*-
letter=0
number=0
space=0
symbol=0
print " :"
s=raw_input()
for char in s:
if 'a'<=char<='z' or 'A'<=char<='Z':
letter+=1
elif char.isdigit():
number+=1
elif char in [' ',' ']:
space+=1
else:
symbol+=1
print " , , , :"
print letter,number,space,symbol
フォーマット出力の変更コードは以下の通りです。
# -*- coding:utf-8 -*-
letter=0
number=0
space=0
symbol=0
print " :"
s=raw_input()
for char in s:
if 'a'<=char<='z' or 'A'<=char<='Z':
letter+=1
elif char.isdigit():
number+=1
elif char in [' ',' ']:
space+=1
else:
symbol+=1
tempTuple=(letter,number,space,symbol)
print " , , , :%d,%d,%d,%d"%tempTuple
フォーマットはprintです。数字の数は「%d」%numberです。その中:%dはフォーマットで、1つの整数変数を出力したいと表しています。numberはこのフォーマットを置換する変数に対応しています。%dの出力に対応するという意味です。複数のフォーマットがある場合は、変数は順番にマッチします。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。