關於負數的isdigit 判斷

2021-07-16 02:10:01 字數 1251 閱讀 3522

感謝ta的分享!

-->the start

今天寫作業的時候突然想到,一直使用isdigit()方法來處理使用者的輸入選擇是不是數字,但是如果使用者輸入的是負數呢,會不會導致bug?

然後我就試了一下,居然不報錯。。。然後我就納悶了,趕緊試了一下:

先來看看str類的.isdigit()方法的文件。

1

def isdigit(self): #

real signature unknown; restored from __doc__

2"""

3s.isdigit() -> bool45

return true if all characters in s are digits

6and there is at least one character in s, false otherwise.

7"""

8return false

很顯然'-10'.isdigit()返回false是因為'-'不是乙個digit。

然後我就想怎麼才能讓負數也正確的判斷為整數呢,下面是從網上找到的答案,在這裡記錄下來。

1 num = '

-10'

2if (num.startswith('

-') and num[1:] or

num).isdigit():

3print

(num是整數)

4else:5

print(num不是整數)

正規表示式法:

1 num = '

-10'

2importre3

if re.match(r'

^-?(\.\d+|\d+(\.\d+)?)

', num):

4print

(num是整數)

5else:6

print(num不是整數)

更pythonic的方法:

1 num = '

-10'

2if num.lstrip('-'

).isdigit():

3print

(num是整數)

4else:5

print(num不是整數)

當我看到第三個方法的時候,真是感觸頗多,受益匪淺。

判斷是不是數字isdigit

判斷salary是不是數字,假如是數字就正常執行,不是數字就列印must input digit的提示,並且退出 salary input salary ifsalary.isdigit isdigit 用於判斷是否是數字 salary int salary else print must inpu...

isdigit函式的用法

如果isdigit函式包含在ctype.h標頭檔案中,那字串為數字。計算過程 原型 int isdigit char c 用法 include。功能 判斷字元c是否為數字。說明 當c為數字0 9時,返回非零值,否則返回零。這個函式是判斷某乙個字元是否為數字,可以用乙個字元陣列接受輸入的字元,然後迴圈...

python判斷正數和負數教案 正數和負數優秀教案

1 4 2.1正數和負數 一 背景知識 正數和負數 是 數學 七年級上冊第二章 有理數 中的第一節,這一章是開 啟整個初中階段代數學習的大門。本節內容讓學生在現實的情境中理解負數的引入確實 是實際生活的需要,感受到有理數應用的廣泛性,是在小學學習自然數和分數之後,數的概念的第一次擴充,是自然數和分數...