Python中如何从键盘中输入字符串,统计字母,数字,符号和空格的个数? 用python从键盘输入一个字符串,统计其中大写小写字母以及...

python\u51fd\u6570\u7edf\u8ba1\u5b57\u7b26\u4e32\u4e2d\u5b57\u6bcd\u6570\u5b66\u5176\u4ed6\u5b57\u7b26\u7684\u4e2a\u6570

\u4ee3\u7801\u5982\u4e0b\uff1a

text = "Hello Python,Hello 2021."letter = 0digital = 0other = 0for i in text:if i.isalpha():letter += 1elif i.isdigit():digital += 1else:other += 1print('\u5b57\u6bcd:{} \u6570\u5b57:{} \u5176\u4ed6:{}'.format(letter,digital,other))
\u8f93\u51fa\uff1a
\u5b57\u6bcd:16 \u6570\u5b57:4 \u5176\u4ed6:4
\u4e0b\u9762\u662fPython\u5185\u7f6e\u5173\u4e8e\u5224\u65ad\u5b57\u7b26\u4e32\u7c7b\u578b\u7684\u65b9\u6cd5\u4ecb\u7ecd\uff1a
str.isalnum()
\u5982\u679c\u5b57\u7b26\u4e32\u4e2d\u7684\u6240\u6709\u5b57\u7b26\u90fd\u662f\u5b57\u6bcd\u6216\u6570\u5b57\u4e14\u81f3\u5c11\u6709\u4e00\u4e2a\u5b57\u7b26\uff0c\u5219\u8fd4\u56de True \uff0c \u5426\u5219\u8fd4\u56de False \u3002 \u5982\u679c c.isalpha() \uff0c c.isdecimal() \uff0c c.isdigit() \uff0c\u6216 c.isnumeric() \u4e4b\u4e2d\u6709\u4e00\u4e2a\u8fd4\u56de True \uff0c\u5219\u5b57\u7b26``c``\u662f\u5b57\u6bcd\u6216\u6570\u5b57\u3002
str.isalpha()
\u5982\u679c\u5b57\u7b26\u4e32\u4e2d\u7684\u6240\u6709\u5b57\u7b26\u90fd\u662f\u5b57\u6bcd\uff0c\u5e76\u4e14\u81f3\u5c11\u6709\u4e00\u4e2a\u5b57\u7b26\uff0c\u8fd4\u56de True \uff0c\u5426\u5219\u8fd4\u56de False \u3002\u5b57\u6bcd\u5b57\u7b26\u662f\u6307\u90a3\u4e9b\u5728 Unicode \u5b57\u7b26\u6570\u636e\u5e93\u4e2d\u5b9a\u4e49\u4e3a "Letter" \u7684\u5b57\u7b26\uff0c\u5373\u90a3\u4e9b\u5177\u6709 "Lm"\u3001"Lt"\u3001"Lu"\u3001"Ll" \u6216 "Lo" \u4e4b\u4e00\u7684\u901a\u7528\u7c7b\u522b\u5c5e\u6027\u7684\u5b57\u7b26\u3002 \u6ce8\u610f\uff0c\u8fd9\u4e0e Unicode \u6807\u51c6\u4e2d\u5b9a\u4e49\u7684"\u5b57\u6bcd"\u5c5e\u6027\u4e0d\u540c\u3002
str.isascii()
\u5982\u679c\u5b57\u7b26\u4e32\u4e3a\u7a7a\u6216\u5b57\u7b26\u4e32\u4e2d\u7684\u6240\u6709\u5b57\u7b26\u90fd\u662f ASCII \uff0c\u8fd4\u56de True \uff0c\u5426\u5219\u8fd4\u56de False \u3002ASCII \u5b57\u7b26\u7684\u7801\u70b9\u8303\u56f4\u662f U+0000-U+007F \u3002
3.7 \u65b0\u7248\u529f\u80fd.
str.isdecimal()
\u5982\u679c\u5b57\u7b26\u4e32\u4e2d\u7684\u6240\u6709\u5b57\u7b26\u90fd\u662f\u5341\u8fdb\u5236\u5b57\u7b26\u4e14\u8be5\u5b57\u7b26\u4e32\u81f3\u5c11\u6709\u4e00\u4e2a\u5b57\u7b26\uff0c\u5219\u8fd4\u56de True \uff0c \u5426\u5219\u8fd4\u56de False \u3002\u5341\u8fdb\u5236\u5b57\u7b26\u6307\u90a3\u4e9b\u53ef\u4ee5\u7528\u6765\u7ec4\u621010\u8fdb\u5236\u6570\u5b57\u7684\u5b57\u7b26\uff0c\u4f8b\u5982 U+0660 \uff0c\u5373\u963f\u62c9\u4f2f\u5b57\u6bcd\u6570\u5b570 \u3002 \u4e25\u683c\u5730\u8bb2\uff0c\u5341\u8fdb\u5236\u5b57\u7b26\u662f Unicode \u901a\u7528\u7c7b\u522b "Nd" \u4e2d\u7684\u4e00\u4e2a\u5b57\u7b26\u3002
str.isdigit()
\u5982\u679c\u5b57\u7b26\u4e32\u4e2d\u7684\u6240\u6709\u5b57\u7b26\u90fd\u662f\u6570\u5b57\uff0c\u5e76\u4e14\u81f3\u5c11\u6709\u4e00\u4e2a\u5b57\u7b26\uff0c\u8fd4\u56de True \uff0c\u5426\u5219\u8fd4\u56de False \u3002 \u6570\u5b57\u5305\u62ec\u5341\u8fdb\u5236\u5b57\u7b26\u548c\u9700\u8981\u7279\u6b8a\u5904\u7406\u7684\u6570\u5b57\uff0c\u5982\u517c\u5bb9\u6027\u4e0a\u6807\u6570\u5b57\u3002\u8fd9\u5305\u62ec\u4e86\u4e0d\u80fd\u7528\u6765\u7ec4\u6210 10 \u8fdb\u5236\u6570\u7684\u6570\u5b57\uff0c\u5982 Kharosthi \u6570\u3002 \u4e25\u683c\u5730\u8bb2\uff0c\u6570\u5b57\u662f\u6307\u5c5e\u6027\u503c\u4e3a Numeric_Type=Digit \u6216 Numeric_Type=Decimal \u7684\u5b57\u7b26\u3002
str.isidentifier()
\u5982\u679c\u5b57\u7b26\u4e32\u662f\u6709\u6548\u7684\u6807\u8bc6\u7b26\uff0c\u8fd4\u56de True \uff0c\u4f9d\u636e\u8bed\u8a00\u5b9a\u4e49\uff0c \u6807\u8bc6\u7b26\u548c\u5173\u952e\u5b57 \u8282\u3002
\u8c03\u7528 keyword.iskeyword() \u6765\u68c0\u6d4b\u5b57\u7b26\u4e32 s \u662f\u5426\u4e3a\u4fdd\u7559\u6807\u8bc6\u7b26\uff0c\u4f8b\u5982 def \u548c class\u3002

#include
int main()
{
char str[256];
char *p;
int upper = 0;
int lower = 0;
int space = 0;
int digit = 0;
int other = 0;
p = str; // P\u6307\u9488\u6307\u5411\u6570\u7ec4\u7b2c\u4e00\u4e2a\u5143\u7d20 str[0]
gets(p);
while(*p) // P\u4e0d\u4e3a\u7a7a\u7684\u65f6\u5019\u7ee7\u7eed\u4e0b\u9762du\u7684
{
if(*p>='A' && *p<='Z') // \u5224\u65adzhi\u662f\u5426\u4e3a\u5927\u5199
{
upper++; // \u7edf\u8ba1\u5927\u5199\u5b57\u6bcd\u4e2a\u6570
}
else if(*p>='a' && *p<='z') //\u662f\u5426\u4e3a\u5c0f\u5199dao
{
lower++; //\u7edf\u8ba1\u5c0f\u5199\u4e2a\u6570
}
else if(*p == ' ') // \u5224\u65ad\u662f\u5426\u4e3a\u201c \u201d
{
space++; //\u7edf\u8ba1\u4e2a\u6570
}
else if(*p>='0' && *p<='9') // \u5224\u65ad\u662f\u5426\u4e3a\u6570\u5b57
{
digit++; // \u7edf\u8ba1\u6570\u5b57\u4e2a\u6570
}
else
{
other++; //\u5269\u4e0b\u7684\u662f\u5176\u4ed6\u5b57\u7b26\u7684 \u7edf\u8ba1\u4e2a\u6570
}
p++; //\u6307\u9488\u540e\u79fb
}
printf("upper = %d\n",upper); // \u8f93\u51fa
printf("lower = %d\n",lower); // \u8f93\u51fa
printf("space = %d\n",space);// \u8f93\u51fa
printf("digit = %d\n",digit);// \u8f93\u51fa
printf("other = %d\n",other);// \u8f93\u51fa
return 0;
}

\u6269\u5c55\u8d44\u6599\uff1a
\u5b57\u7b26\u4e32\u5728\u5b58\u50a8\u4e0a\u7c7b\u4f3c\u5b57\u7b26\u6570\u7ec4\uff0c\u5b83\u6bcf\u4e00\u4f4d\u5355\u4e2a\u5143\u7d20\u90fd\u662f\u80fd\u63d0\u53d6\u7684\uff0c\u5b57\u7b26\u4e32\u7684\u96f6\u4f4d\u662f\u5b83\u7684\u957f\u5ea6\uff0c\u5982s[0]=10\uff0c\u8fd9\u63d0\u4f9b\u7ed9\u6211\u4eec\u5f88\u591a\u65b9\u4fbf\uff0c\u4f8b\u5982\u9ad8\u7cbe\u5ea6\u8fd0\u7b97\u65f6\u6bcf\u4e00\u4f4d\u90fd\u80fd\u8f6c\u5316\u4e3a\u6570\u5b57\u5b58\u5165\u6570\u7ec4\u3002
\u901a\u5e38\u4ee5\u4e32\u7684\u6574\u4f53\u4f5c\u4e3a\u64cd\u4f5c\u5bf9\u8c61\uff0c\u5982\uff1a\u5728\u4e32\u4e2d\u67e5\u627e\u67d0\u4e2a\u5b50\u4e32\u3001\u6c42\u53d6\u4e00\u4e2a\u5b50\u4e32\u3001\u5728\u4e32\u7684\u67d0\u4e2a\u4f4d\u7f6e\u4e0a\u63d2\u5165\u4e00\u4e2a\u5b50\u4e32\u4ee5\u53ca\u5220\u9664\u4e00\u4e2a\u5b50\u4e32\u7b49\u3002\u4e24\u4e2a\u5b57\u7b26\u4e32\u76f8\u7b49\u7684\u5145\u8981\u6761\u4ef6\u662f\uff1a\u957f\u5ea6\u76f8\u7b49\uff0c\u5e76\u4e14\u5404\u4e2a\u5bf9\u5e94\u4f4d\u7f6e\u4e0a\u7684\u5b57\u7b26\u90fd\u76f8\u7b49\u3002\u8bbep\u3001q\u662f\u4e24\u4e2a\u4e32\uff0c\u6c42q\u5728p\u4e2d\u9996\u6b21\u51fa\u73b0\u7684\u4f4d\u7f6e\u7684\u8fd0\u7b97\u53eb\u505a\u6a21\u5f0f\u5339\u914d\u3002\u4e32\u7684\u4e24\u79cd\u6700\u57fa\u672c\u7684\u5b58\u50a8\u65b9\u5f0f\u662f\u987a\u5e8f\u5b58\u50a8\u65b9\u5f0f\u548c\u94fe\u63a5\u5b58\u50a8\u65b9\u5f0f\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-\u5b57\u7b26\u4e32

初学者的话确实可以通过 ascii table 来判断字母和数字的区别。Python 里面有两个内置函数 ord 和 chr 可用。

ascii table

通过判断其字的范围来确定是字母还是别的。确实可以达到你现在想要的目的。


不过我个人建议是,暂时不用太在意这种问题。这个也不是解决这些问题的理想方法。

当你以后学会使用正则表达式之后,回头看这个问题就十分简单了!

正则表达式才是解决字符串这类问题更理想的方法。这种方式的优势和能力之强等你学习到后就知道了。



程序如下(注意图中源代码的缩进)

s=input()

while(s!="?"):

alpha=0 #字母

space=0 #空格

digit=0 #数字

other=0 #符号

for ch in s:

if 'a'<=ch and ch<='z' or 'A'<=ch and ch<='Z':

alpha+=1

elif ch==' ':

space+=1

elif '0'<=ch and ch<='9':

digit+=1

else:

other+=1

print(f"字母为{alpha}个")

print(f"空格为{space}个")

print(f"数字为{digit}个")

print(f"符号为{other}个")

s=input()



  • 濡備綍鍦≒ython涓緭鍏涓涓瓧绗︿覆鍒楄〃?
    绛旓細瑕佷粠閿洏杈撳叆鍒楄〃锛屽彲浠ヤ娇鐢╥nput()鍑芥暟缁撳悎鍒楄〃鎺ㄥ寮銆傛偍鍙互鎸夌収浠ヤ笅绀轰緥浠g爜鐨勬牸寮忚繘琛岃緭鍏ワ細涓婅堪浠g爜灏嗕粠閿洏璇诲彇涓涓瓧绗︿覆锛岃瀛楃涓插寘鍚敤绌烘牸鍒嗛殧鐨勫厓绱犮傜劧鍚庯紝split()鍑芥暟灏嗗瓧绗︿覆鎷嗗垎涓轰竴涓垪琛紝骞朵娇鐢╥nt()鍑芥暟灏嗘瘡涓厓绱犺浆鎹负鏁存暟绫诲瀷銆傛渶缁堬紝灏嗗緱鍒颁竴涓暣鏁板垪琛紝瀛樺偍鍦ㄥ悕涓簃y_list鐨勫彉閲...
  • 鎺屾彙Python杈撳叆杈撳嚭:浠庨敭鐩鍒版枃浠剁殑鍏ㄩ潰鎸囧崡
    绛旓細1. 鏍囧噯杈撳叆涓庤緭鍑轰粠鍩虹鐨勫紑濮嬶紝Python閫氳繃鏍囧噯杈撳叆锛坰tdin锛夊拰鏍囧噯杈撳嚭锛坰tdout锛変负鎴戜滑鎻愪緵浜嗕究鎹风殑鎺ュ彛銆傚埄鐢╬rint()鍑芥暟锛屾垜浠彲浠ュ皢鏂囨湰淇℃伅浼橀泤鍦版樉绀哄湪灞忓箷涓锛屽锛歱rint("Hello, Python!")銆傝宨nput()鍑芥暟鍒欐槸涓庣敤鎴蜂氦浜掔殑閽ュ寵锛屽鑾峰彇鍚嶅瓧骞舵杩庝粬浠細name = input("璇疯緭鍏ユ偍鐨勫悕瀛楋細")锛岀劧...
  • python涓浣曚粠閿洏涓緭鍏涓涓暣鏁皀,璁$畻骞惰緭鍑簄鐨勫?
    绛旓細杈撳叆锛歯=int(input())杈撳嚭 print(n)
  • 鍦╬ython涓鍙互鐢╥nput璇彞杩涜杈撳叆鍚?
    绛旓細鏄殑锛鍦≒ython涓彲浠ヤ娇鐢╥nput()鍑芥暟杩涜杈撳叆銆俰nput()鍑芥暟鍏佽鐢ㄦ埛浠庨敭鐩樿緭鍏ユ暟鎹紝骞跺皢杈撳叆鐨勫唴瀹逛綔涓哄瓧绗︿覆杩斿洖缁欑▼搴忋備緥濡傦細杩愯涓婅堪浠g爜鍚庯紝绋嬪簭浼氭彁绀虹敤鎴疯緭鍏ュ鍚嶏紝鐢ㄦ埛杈撳叆鍚庯紝绋嬪簭浼氭墦鍗板嚭涓鍙ラ棶鍊欑殑璇濓紝骞跺皢杈撳叆鐨勫鍚嶅姞鍏ュ埌闂欒涓傛敞鎰忥紝input()鍑芥暟杩斿洖鐨勬槸瀛楃涓茬被鍨嬶紝濡傛灉闇瑕佸皢杈撳叆鐨勫唴...
  • 鐢python鍐,浠庨敭鐩樿緭鍏闈0鏁存暟,浠ヨ緭鍏0涓鸿緭鍏ョ粨鏉熸爣蹇,姹傚钩鍧囧,缁 ...
    绛旓細1銆佹墦寮IDLE缂栫▼鐜銆2銆乧trl+N鏂版墦寮涓涓獥鍙c3銆佸畾涔夊彉閲锛屽洜涓鸿杈撳叆2涓暟鍊硷紝鎵浠ョ敤2涓彉閲忚〃绀猴紝浠庨敭鐩樿緭鍏ワ紝num1 = input("杈撳叆绗竴涓暟瀛: ")锛宯um2 = input("杈撳叆绗簩涓暟瀛: ")銆4銆佷娇鐢╝vg_num鏉ュ瓨鏀2涓暟骞冲潎鍊肩殑缁撴灉锛宎vg_num = (float(num1)+float(num2))/2銆5銆佽緭鍏...
  • Python涓,杈撳叆涓涓笁浣嶆暟鎬庝箞琛ㄧず?
    绛旓細鍦 Python 涓锛屾垜浠彲浠ヤ娇鐢 input() 鍑芥暟浠庨敭鐩樿緭鍏鏁版嵁锛屽苟灏嗗叾淇濆瓨涓哄瓧绗︿覆绫诲瀷銆傝杈撳叆涓涓笁浣嶆暟锛屾垜浠彲浠ヤ娇鐢ㄤ互涓嬩唬鐮侊細num_str = input("璇疯緭鍏ヤ竴涓笁浣嶆暟锛")鍦ㄤ笂闈㈢殑浠g爜涓紝input()鍑芥暟浼氭彁绀虹敤鎴疯緭鍏ヤ竴涓笁浣嶆暟锛屽苟灏嗙敤鎴疯緭鍏ョ殑鍐呭淇濆瓨鍦ㄥ彉閲 num_str 涓傜敱浜 input() 鍑芥暟杩斿洖鐨勬槸...
  • Python涓浣曚粠閿洏涓緭鍏瀛楃涓,缁熻瀛楁瘝,鏁板瓧,绗﹀彿鍜岀┖鏍肩殑涓暟?_鐧...
    绛旓細鍒濆鑰呯殑璇濈‘瀹炲彲浠閫氳繃 ascii table 鏉ュ垽鏂瓧姣嶅拰鏁板瓧鐨勫尯鍒Python 閲岄潰鏈変袱涓唴缃嚱鏁 ord 鍜 chr 鍙敤銆俛scii table 閫氳繃鍒ゆ柇鍏跺瓧鐨勮寖鍥存潵纭畾鏄瓧姣嶈繕鏄埆鐨勩傜‘瀹炲彲浠ヨ揪鍒颁綘鐜板湪鎯宠鐨勭洰鐨勩備笉杩囨垜涓汉寤鸿鏄紝鏆傛椂涓嶇敤澶湪鎰忚繖绉嶉棶棰樸傝繖涓篃涓嶆槸瑙e喅杩欎簺闂鐨勭悊鎯虫柟娉曘傚綋浣犱互鍚庡浼氫娇鐢ㄦ鍒...
  • 鎬庝箞鍦╬ython閲岄潰,鐢閿洏杈撳叆淇℃伅
    绛旓細print(a)杩愯涔嬪悗锛岀敤閿洏杈撳叆鍐呭锛屾寜涓嬪洖杞﹂敭锛屽氨鍙互鎵撳嵃杈撳叆鐨勫唴瀹广備絾鏄紝濡傛灉杩愯涔嬪悗鏈夋墍鎻愮ず锛屼細涓嶄細濂戒竴鐐瑰憿锛焢rint('璇疯緭鍏ワ細')a = input()print('杈撳叆鍐呭鏄',a)娉ㄦ剰锛python鏄粠涓婂線涓嬭繍琛屻傚鏋滄垜浠緭鍏ヤ竴涓暟瀛楋紝瑕佽繘琛岃绠楋紝鎬庝箞鑳藉緱鍒拌绠楃粨鏋滃憿锛焢rint('璇疯緭鍏ワ細')a = input()...
  • 鐢python浠庨敭鐩樿緭鍏涓涓瓧绗︿覆,缁熻鍏朵腑澶у啓灏忓啓瀛楁瘝浠ュ強鏁板瓧鐨勪釜鏁...
    绛旓細1銆佸彲浠ヨ繖鏍风紪鍐欑▼搴忥細瀹氫箟涓涓惈鏈夋墍鏈夊皬鍐欏瓧姣嶇殑鍒楄〃鍙橀噺w鍙婁竴涓緟娴嬪瓧绗︿覆鍙橀噺s銆傚s瀛楃涓蹭腑鐨勬瘡涓涓瓧绗﹁繘琛屽惊鐜凯浠f娴嬪叾鏄惁浣嶄簬鍙橀噺w涓紝鑻ヤ负鐪燂紝鍒欏璁℃暟鍙橀噺c杩涜鍔犱竴鎿嶄綔銆傝緭鍑篶鍙橀噺锛屽嵆涓烘墍姹傘2銆佸垵瀛﹁呯殑璇濈‘瀹炲彲浠閫氳繃asciitable鏉ュ垽鏂瓧姣嶅拰鏁板瓧鐨勫尯鍒Python閲岄潰鏈変袱涓唴缃嚱鏁皁rd鍜...
  • python涓,杈撳叆涓涓ぇ浜2鐨勬暟,杈撳嚭璺濈鏈杩戠礌鏁?
    绛旓細浠庨敭鐩樿緭鍏涓涓ぇ浜2鐨勬暟 num = int(input("璇疯緭鍏ヤ竴涓ぇ浜2鐨勬暟锛"))鍒ゆ柇num鏄惁涓虹礌鏁帮紝濡傛灉鏄紝鐩存帴杈撳嚭num if is_prime(num):print("璺濈鏈杩戠殑绱犳暟鏄細", num)else:瀹氫箟涓や釜鍙橀噺锛屽垎鍒〃绀簄um鐨勫墠涓涓暟鍜屽悗涓涓暟 prev = num - 1 next = num + 1 瀹氫箟涓涓彉閲忥紝琛ㄧず璺濈鏈杩戠殑...
  • 扩展阅读:python七种运算符 ... python符号含义大全 ... python读取键盘按键 ... payton编程自学 ... python编程入门自学 ... python中θ符号怎么打出来 ... python检测键盘按键事件 ... python获取键盘按了哪个键 ... int在python中的用法 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网