python如何判断输入是字符串还是数字 python判断字符串是否为数字?
python\u5982\u4f55\u5224\u65ad\u8f93\u5165\u662f\u5b57\u7b26\u4e32\u8fd8\u662f\u6570\u5b57\u7528isnumeric()\u65b9\u6cd5\u3002isnumeric() \u65b9\u6cd5\u68c0\u6d4b\u5b57\u7b26\u4e32\u662f\u5426\u53ea\u7531\u6570\u5b57\u7ec4\u6210\uff0c\u5982\u679c\u5b57\u7b26\u4e32\u4e2d\u53ea\u5305\u542b\u6570\u5b57\u5b57\u7b26\uff0c\u5219\u8fd4\u56de True\uff0c\u5426\u5219\u8fd4\u56de False
\u5224\u5b9a\u662f\u5426\u4e3a\u6570\u5b57\u65b9\u6cd5\u4e00\uff1a
try:
float(s)
return True
exceptValueError:
pass
try:
importunicodedata
unicodedata.numeric(s)
return True
except (TypeError
, ValueError):
pass
return False
\u65b9\u6cd5\u4e8c\uff1a\u666e\u901a\u5341\u8fdb\u5236\u6b63\u5e38\u5904\u7406
\u5bf9\u4e8e\u975e\u5341\u8fdb\u5236\u8fd8\u9700\u8981\u66f4\u590d\u6742\u7684\u65b9\u6cd5\uff0c\u4e0d\u8fc7\u8fd9\u91cc\u4e0d\u8ba8\u8bba\uff0c\u53ea\u8ba8\u8bba\u666e\u901a\u5341\u8fdb\u5236\u6570\u7684\u5f71\u54cd\u3002
\u5341\u8fdb\u5236\u6570\u683c\u5f0f\u4e00\u822c\u6709\u4ee5\u4e0b\u51e0\u79cd\uff08\u6574\u6570\u3001\u5c0f\u6570\u3001\u79d1\u5b66\u8ba1\u6570\u6cd5\uff09\uff1a
+123 [\u7b26\u53f7\u4f4d][\u6570\u5b57]
-123.123 [\u7b26\u53f7\u4f4d][\u5c0f\u6570\u70b9][\u6570\u5b57]
+123E+123 [\u6574\u6570\u6216\u5c0f\u6570][E\u6216\u8005D\uff0c\u5927\u5c0f\u5199\u7686\u53ef][\u6574\u6570]
python输入的内容在内部全部为字符串,所以要判断这个字符串是否为一个数字。大多法内部函数并不能对各种形式的数据做出正确判断,例如isdigit()函数只能判断字符串是否为纯数据组成对于负数则无效了。所以可以使用float()来检测,对各种数字的表示方法都有效果。
方法代码:
#定义函数
def isnub(s):
try:
nb = float(s) #将字符串转换成数字成功则返回True
return True
except ValueError as e:
return False #如果出现异常则返回False
#测试
print(isnub('123'))
print(isnub('abc'))
print(isnub('123.123'))
print(isnub('-123.123'))
print(isnub('-1.609E-19'))
测试结果如下:
True
False
True
True
True
s=input("please inupt string") print(s.isdigit()) #用isdigit函数判断是否数字 print(s.isalpha()) #isalpha判断是否字母 print(not (s.isalpha() or s.isdigit()) and s.isalnum()) #isalnum判断是否数字和字母的组合
def isnum(n):
try:
t=float(n)
return True
except:
return False
print(isnum('123'))
print(isnum('12.3'))
print(isnum('abc'))
绛旓細python杈撳叆鐨勫唴瀹瑰湪鍐呴儴鍏ㄩ儴涓哄瓧绗︿覆锛屾墍浠ヨ鍒ゆ柇杩欎釜瀛楃涓叉槸鍚︿负涓涓暟瀛銆傚ぇ澶氭硶鍐呴儴鍑芥暟骞朵笉鑳藉鍚勭褰㈠紡鐨勬暟鎹仛鍑烘纭垽鏂紝渚嬪isdigit()鍑芥暟鍙兘鍒ゆ柇瀛楃涓叉槸鍚︿负绾暟鎹粍鎴愬浜庤礋鏁板垯鏃犳晥浜嗐傛墍浠ュ彲浠ヤ娇鐢╢loat()鏉ユ娴嬶紝瀵瑰悇绉嶆暟瀛楃殑琛ㄧず鏂规硶閮芥湁鏁堟灉銆傛柟娉曚唬鐮侊細瀹氫箟鍑芥暟 def isnub(s):try:nb ...
绛旓細鐢╥snumeric()鏂规硶銆俰snumeric() 鏂规硶妫娴瀛楃涓鏄惁鍙敱鏁板瓧缁勬垚锛屽鏋滃瓧绗︿覆涓彧鍖呭惈鏁板瓧瀛楃锛屽垯杩斿洖 True锛屽惁鍒欒繑鍥 False
绛旓細<type 'str'>
绛旓細1銆佸彲浠ヨ繖鏍风紪鍐欑▼搴忥細瀹氫箟涓涓惈鏈夋墍鏈夊皬鍐欏瓧姣嶇殑鍒楄〃鍙橀噺w鍙婁竴涓緟娴嬪瓧绗︿覆鍙橀噺s銆傚s瀛楃涓蹭腑鐨勬瘡涓涓瓧绗﹁繘琛屽惊鐜凯浠f娴嬪叾鏄惁浣嶄簬鍙橀噺w涓紝鑻ヤ负鐪燂紝鍒欏璁℃暟鍙橀噺c杩涜鍔犱竴鎿嶄綔銆傝緭鍑篶鍙橀噺锛屽嵆涓烘墍姹傘2銆佸垵瀛﹁呯殑璇濈‘瀹炲彲浠ラ氳繃asciitable鏉ュ垽鏂瓧姣嶅拰鏁板瓧鐨勫尯鍒侾ython閲岄潰鏈変袱涓唴缃嚱鏁皁rd鍜...
绛旓細a =input("璇杈撳叆瀛楃(閫鍑鸿杈撳叆q)锛")if a =='q':break if a.isdigit() :print("杈撳叆鐨勬槸闃挎媺浼暟瀛楋細{}".format(a))elif a.isalpha ():if a.isupper():print("杈撳叆鐨勬槸澶у啓瀛楁瘝锛歿}".format(a))else:print("杈撳叆鐨勬槸灏忓啓瀛楁瘝锛歿}".format(a))else:print("杈撳叆...
绛旓細Python涓鐨勬暟鎹被鍨嬫湁鏁板瓧銆瀛楃涓锛屽垪琛ㄣ佸厓缁勩佸瓧鍏搞侀泦鍚堢瓑銆傛湁涓ょ鏂规硶鍒ゆ柇涓涓彉閲忕殑鏁版嵁绫诲瀷銆備袱绉嶆柟娉曪細绗竴绉嶆柟娉曪細绗簩绉嶆柟娉曪細
绛旓細Python涓鐨勬暟鎹被鍨嬫湁鏁板瓧銆佸瓧绗︿覆锛屽垪琛ㄣ佸厓缁勩佸瓧鍏搞侀泦鍚堢瓑銆傜浉鍏虫帹鑽愶細銆奝ython鏁欑▼銆python涓锛鍒ゆ柇鏌愬彉閲忕殑鏁版嵁绫诲瀷鏄惁涓哄瓧绗︿覆锛屽彲鐢╥sinstance()鍑芥暟锛屼篃鍙氳繃姣旇緝 type(x) == type(鈥榓鈥)鐨勫兼潵鍒ゆ柇銆傜涓绉嶆柟娉曪細绗簩绉嶆柟娉曪細
绛旓細浣犵湅闀垮害灏卞彲浠ヤ簡銆俵ength1 = len(unicode_string)length2 = len(unicode_string.encode('utf-8'))if length1 == length2: 杩欒鏄庢槸鑻辨枃鐨勶紝鍚﹀垯灏辨槸姹夊瓧 鏁板瓧鍒ゆ柇鐢╥sdigit()杩欎釜鍑芥暟灏卞彲浠ヤ簡
绛旓細鍑芥暟锛歴tartswith()浣滅敤锛鍒ゆ柇瀛楃涓鏄惁浠ユ寚瀹氬瓧绗︽垨瀛愬瓧绗︿覆寮澶淬備竴銆佸嚱鏁拌鏄庤娉曪細string.startswith(str, beg=0,end=len(string))鎴杝tring[beg:end].startswith(str)鍙傛暟璇存槑锛歴tring锛 琚娴嬬殑瀛楃涓层俿tr锛 鎸囧畾鐨勫瓧绗︽垨鑰呭瓙瀛楃涓层傦紙鍙互浣跨敤鍏冪粍锛屼細閫愪竴鍖归厤锛夈俠eg锛 璁剧疆瀛楃涓...
绛旓細棰樹富浣犲ソ,浠g爜鍙婃祴璇曟埅鍥惧涓:甯屾湜鍙互甯埌棰樹富, 娆㈣繋杩介棶