判斷輸入框是不是數字 寫乙個數字小遊戲

2021-10-12 09:16:36 字數 1272 閱讀 5158

最近開始在學用python做資料分析,昨天課程,老師留了乙個寫猜數字小遊戲**的作業,搗鼓了乙個多小時,最後還請了大神幫忙

題目是這樣的:

編寫猜數字小遊戲的**:輸入乙個數字,分別針對猜對數字、猜錯數字、輸入錯誤給予判斷
作為乙個沒寫過**的小白,拿到題目後我什麼也沒分析,直接按照題目給的條件開始寫了

a = int(input('請輸入乙個數字:'))

if(a==1):

print('恭喜你,猜對了')

elif(a!=1):

print('很遺憾,你猜錯了,a的值為',a)

elif(a.isdigit() == false):

print('輸入錯誤')

我還自作聰明的給a定義了乙個int,但是結果毫不意外地報錯了,我也沒指望一次就能跑通

在這裡,我還沒意識到乙個最底層的嚴重問題,就是判斷輸入內容是不是數字應該放在最開始(感謝大神最後指出)。我一直被a的型別所困擾:

①如果a從一開始被定義為int型,那麼在輸入str時,與a的int矛盾會報錯;

②如果a從一開始定義為str,那麼在判斷是不是1的時候,因為1是int,就永遠不會等於1,且永遠不會執行到第三個判斷;

a = input('請輸入乙個數字:')

if(a.isdigit() == false):

print('輸入錯誤')

elif(a==1):

print('恭喜你,猜對了')

elif(a!=1):

print('很遺憾,你猜錯了,a的值為',a)

但是這個還是有問題的,還是之前的問題2,a的型別和1不同,導致永遠無法作比較。所以為了解決這個問題,我想到了乙個不完美的抖機靈解決方法,把1變為字元型

elif(a=='1'):
這樣**最終算是跑通了,不過大神後面也給了種解法,就是一開始定義a為字元型,後面在把a轉型為int,這樣就能比較了

a = input('請輸入乙個數字:')

if(a.isdigit() == false):

print('輸入錯誤')

else:

a = int(a)

if (a==1):

print('恭喜你,猜對了')

else:

print('很遺憾,你猜錯了,a的值為', a)

感謝大神大晚上被我拉著,不厭其煩的給我答疑ღ( ´・ᴗ・` )

檢視乙個數字是不是回環數 對稱

0 回環 1 回環 11 回環 12 不回環 121 回環 1221 回環 12321 回環 123421 不回環 123311 不回環 include include using namespace std int getnumberpow int a 獲取乙個數字的位數 int ministnu...

判斷乙個字串是不是數字

判斷乙個字串是不是數字的方法 1 最簡單的方法 public bool isnumber string str 這個方法適用於日常生活中遇到的大多數情況,可是如果碰到極端的情況,比如超過了int型別所能承受的最大值int.maxvalue 2147483647 就會失敗。2.乙個萬無一失的方法 pu...

使用JS判斷並處理輸入框輸入的數字

輸入框裡只能輸入數字和小數,允許負值出現,保留兩位小數。因為需求是只要失去焦點就自動儲存,所以在js中寫了乙個判斷處理的方法,在鍵盤釋放的時候執行此方法 方法如下 liy 清理輸入框輸入 此方法為逐條驗證,請勿改變驗證清理順序,否則可能出現清除錯誤的情況,產生錯誤資料 保留2位小數的驗證0.0和 0...