2 回答

TA貢獻2003條經驗 獲得超2個贊
您可以嘗試以另一種方式解決您的問題。據我了解,您的問題是輸入是數字時,但輸入法總是給出一個字符串。所以第一步嘗試將輸入值轉換為一個數字,如果它有效,但如果它拋出一個 ValueError 你有一個字符串,所以你可以得到長度。
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))
但如果輸入是一個數字后跟一個字符串,例如“ 15.2toto ”,則它不起作用。如果您真的不想考慮字符串中的任何數字,那么您應該查看re模塊的sub方法以使用正則表達式刪除任何數字。

TA貢獻1878條經驗 獲得超4個贊
試試這個:
它只接受非整數和浮點類型輸入來返回正確的長度。
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.")
這應該有助于您的事業。
添加回答
舉報