欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)字符串中字符分類(lèi)及個(gè)數(shù)統(tǒng)計(jì)

 更新時(shí)間:2018年09月28日 17:06:55   作者:LYYCasablanca000  
這篇文章主要介紹了python實(shí)現(xiàn)字符串中字符分類(lèi)及個(gè)數(shù)統(tǒng)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

輸入一個(gè)字符串,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù),本文給出解決方法

編寫(xiě)思路:

1、字符串的遍歷,和列表類(lèi)似,可以把字符串當(dāng)做元素都是一個(gè)字符的一個(gè)字符列表,它可以和列表有公共的語(yǔ)法
2、分不同的類(lèi)別,若有符合條件的字符直接在類(lèi)別數(shù)上加1就可以

初始代碼:

# -*- coding:utf-8 -*-
letter=0
number=0
space=0
symbol=0
print "請(qǐng)輸入字符串:"
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 "字母數(shù)量,數(shù)字?jǐn)?shù)量,空格數(shù)量,其他字符數(shù)量分別為:"
print letter,number,space,symbol

錯(cuò)誤之處:

1、if char>='a' and char=<'z' or char>='A' and char=<'Z':可以寫(xiě)成if 'a'<=char<='z' or 'A'<=char<='Z':更加簡(jiǎn)潔;
2、elif 0<=char<=9:也應(yīng)該是'0'<=char<='9',字符(字符串)必須加引號(hào)‘  'or  ”  “,但舉例如下:

print '0'<='2ab'<='9'1

運(yùn)行結(jié)果輸出的是True

- - -在Python中沒(méi)有“字符”的概念,哪怕是char都是一個(gè)字符串,Python對(duì)于字符串不會(huì)敏感分析是不是只有一個(gè)字符,而是都可以進(jìn)行判斷。
- - -上述例子的‘2ab'并不是一個(gè)數(shù)字,而是一個(gè)字符串,在本題中雖然沒(méi)有問(wèn)題,因?yàn)橐呀?jīng)取出單個(gè)字符串了。但是很多情況對(duì)字符串的判斷需求非常嚴(yán)格,所以要嚴(yán)格判斷它確實(shí)是一個(gè)字符串,使用isdigit
- - -isdigit()方法,可以判斷一個(gè)字符串是不是數(shù)字,即如果一個(gè)字符串里的所有字符都是數(shù)字,它才是True,否則是False

3、elif char==[' ','    ']:應(yīng)該是elif char in [' ',' ']:

[ ]是列表,所以應(yīng)用in。in不僅可以用在列表,元組,字典都能用;用在元組跟列表是一樣的意思;用在字典里,意思是有沒(méi)有這個(gè)鍵

4、elif雖然與else if用法相同,但是不能直接寫(xiě)成else if,因?yàn)閜ython語(yǔ)法規(guī)定,else后面必須要有冒號(hào)(復(fù)合語(yǔ)句),直接寫(xiě)個(gè)if就會(huì)報(bào)錯(cuò)了,可寫(xiě)為:

else:
  if char.isdigit():
      number+=1123

5、輸出換成print letter+' '+number+' '+space+' '+symbol

會(huì)報(bào)錯(cuò)TypeError: unsupported operand type(s) for +: 'int' and 'str'
一個(gè)是整形,一個(gè)是字符串,不能直接加,需要格式化輸出,格式為:print “%X”%變量

修改后代碼:

# -*- coding:utf-8 -*-
letter=0
number=0
space=0
symbol=0
print "請(qǐng)輸入字符串:"
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 "字母數(shù)量,數(shù)字?jǐn)?shù)量,空格數(shù)量,其他字符數(shù)量分別為:"
print letter,number,space,symbol 

格式化輸出的修改代碼如下:

# -*- coding:utf-8 -*-
letter=0
number=0
space=0
symbol=0
print "請(qǐng)輸入字符串:"
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 "字母數(shù)量,數(shù)字?jǐn)?shù)量,空格數(shù)量,其他字符數(shù)量分別為:%d,%d,%d,%d"%tempTuple

格式為print “數(shù)字?jǐn)?shù)量為:%d”%number
其中:%d是格式,表示想輸出一個(gè)整型變量,number是對(duì)應(yīng)替換這個(gè)格式的變量,意思是對(duì)應(yīng)%d的輸出。若有多個(gè)格式,記住變量是按順序逐個(gè)匹配的。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論