2 回答

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以嘗試以另一種方式解決您的問(wèn)題。據(jù)我了解,您的問(wèn)題是輸入是數(shù)字時(shí),但輸入法總是給出一個(gè)字符串。所以第一步嘗試將輸入值轉(zhuǎn)換為一個(gè)數(shù)字,如果它有效,但如果它拋出一個(gè) ValueError 你有一個(gè)字符串,所以你可以得到長(zhǎng)度。
def strlength(string):
""""""
try:
float(string)
print('The input was a number')
return None
except ValueError:
return len(string)
len1 = input('Enter any string:')
print(strlength(len1))
但如果輸入是一個(gè)數(shù)字后跟一個(gè)字符串,例如“ 15.2toto ”,則它不起作用。如果您真的不想考慮字符串中的任何數(shù)字,那么您應(yīng)該查看re模塊的sub方法以使用正則表達(dá)式刪除任何數(shù)字。

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
試試這個(gè):
它只接受非整數(shù)和浮點(diǎn)類型輸入來(lái)返回正確的長(zhǎng)度。
def strlength(string):
if string.isdigit():
return False
if string.find('.') > 0:
a, b = string.split('.')
if a.isdigit() and b.isdigit():
return False
if type(string) == str :
return len(string)
length = strlength(input("Enter any string:"))
if (length):
print("The length of the string is ", length)
else:
print("The input was an integer or a float.")
這應(yīng)該有助于您的事業(yè)。
添加回答
舉報(bào)