亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢查字符串是否為浮點數

檢查字符串是否為浮點數

UYOU 2022-06-07 16:46:44
我想接受輸入并根據輸入是否為有效數字返回真或假。這里有些例子:"0" => true" 0.1 " => true"abc" => false"1 a" => false"2e10" => true" -90e3   " => true" 1e" => false"e3" => false" 6e-1" => true" 99e2.5 " => false"53.5e93" => true" --6 " => false"-+3" => false"95a54e53" => false我有一個所有有效字符的列表,我決定使用切片符號來查看輸入的第 0 個索引中的哪個字符與任何有效字符匹配。但是,代碼將輸入誤讀9為錯誤。這是我目前的完整代碼。我還沒有檢查所有條件:class Solution:    def isNumber(self, s: str) -> bool:        valid_char = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+', 'e', '.']        str_lst = list(s)        if str_lst[0] in valid_char[0:10]:            return True        else:            return False
查看完整描述

2 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

在我看來,最好的方法是使用try/except子句嘗試將字符串轉換為float:


"0" => true

" 0.1 " => true

"abc" => false

"1 a" => false

"2e10" => true

" -90e3   " => true

" 1e" => false

"e3" => false

" 6e-1" => true

" 99e2.5 " => false

"53.5e93" => true

" --6 " => false

"-+3" => false

"95a54e53" => false

讓我們用上面的字符串生成一個列表:


l = ["0", " 0.1 ", "abc", "1 a", "2e10", " -90e3   ", " 1e", "e3", 

     " 6e-1", " 99e2.5 ", "53.5e93", " --6 ", "-+3", "95a54e53"]


def is_number(s):

    try:

        float(s)

        return True

    except ValueError:

        return False


list(map(is_number, l))

# [True, True, False, False, True, True, False, False, True, False, 

#  True, False, False, False]


查看完整回答
反對 回復 2022-06-07
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

好吧,首先,如果您不打算更改,則無需轉換s為,而您可能不會這樣做。切片在字符串上的工作方式與在列表上的工作方式幾乎相同。如果你真的想檢查是否是一個有效的 python 號碼,你可以使用str(s)ss


inp = input('input character: ')

def is_valid_num(s):

    try: 

        float(inp)

        return True

    except ValueError:

        return False


查看完整回答
反對 回復 2022-06-07
  • 2 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號