ASCII 碼表的對應值,知道 ord('a') 能將字符 'a' 轉化為 ASCII 碼表上對應的數值,就可以了。其中,數字 0-9 對應的碼值為 48-57,大寫字母 A-Z 對應 65-90,小寫字母 a-z 對應 97-122。
判斷的時候應注意:'2' in range(3) 的結果是 False,因為 '2' 是字符,而 range(3) 包含的全是數字。 ord('2') in range(3) 的結果則是 True。
代碼如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
lst
=
list
(
input
(
'請輸入一行字符,可以是任意字符:'
))
iLetter
=
[]
iSpace
=
[]
iNumber
=
[]
iOther
=
[]
for
i
in
range
(
len
(lst)):
if
ord
(lst[i])
in
range
(
65
,
91
)
or
ord
(lst[i])
in
range
(
97
,
123
):
iLetter.append(lst[i])
elif
lst[i]
=
=
' '
:
iSpace.append(
' '
)
elif
ord
(lst[i])
in
range
(
48
,
58
):
iNumber.append(lst[i])
else
:
iOther.append(lst[i])
print
(
'中英文字母個數:%s'
%
len
(iLetter))
print
(
'空格個數:%s'
%
len
(iSpace))
print
(
'數字個數:%s'
%
len
(iNumber))
print
(
'其它字符個數:%s'
%
len
(iOther))
|
輸出結果如下:
請輸入一行字符,可以是任意字符:CHINA is 5000*^*
中英文字母個數:7
空格個數:2
數字個數:4
其它字符個數:3
