簡體   English   中英

在 python 3 中將字符串轉換為 int 時,Try/except 語句未捕獲 ValueError

[英]Try/except statement not catching ValueError when converting string to int in python 3

我正在嘗試將來自用戶的輸入轉換為僅 integer,並提供錯誤檢查以確保用戶的輸入有效。 在檢查用戶是否輸入了字符串時,如果用戶輸入的不是 integer,程序應該顯示錯誤。 但是,無論我如何構造這個 try/except,它都不會顯示錯誤消息,而是將我彈回 Visual Studio 編輯器並拋出異常“invalid literal for int() with base 10”。 我已經在這個站點和其他站點上進行了搜索和搜索,其他所有遇到此問題的人都可以使用此代碼使其正常工作,但由於某種原因,它無法正常工作。 有人可以幫我弄清楚出了什么問題,或者如果有另一種方法來檢查 integer 輸入,請指出我的方向。 感謝您提供任何幫助,如果此站點上已經存在類似問題,我深表歉意,但我無法找到與我的具體案例有關的問題。 我正在使用 Python 3.7 解釋器(雖然我已經安裝了 3.8,但 VS 還不支持它)。 這是我的代碼:

    try:
        a = int(input("Input: "))
    except ValueError:
        print(a)

您顯示的代碼是錯誤的。

如果發生異常,則不會分配a 為其他人工作的代碼可能非常相似但不同。

這里有一個 try except 的例子,它會提示用戶直到有一些有效的輸入。 它還打印 python 可執行文件的路徑及其版本,以確保這不是版本問題。 IDE 不應忽略 try except 語句。

我從未聽說過這樣的事情,並假設除了 pycharm 與 Visual Studio 代碼之外還有其他一些區別。

import sys
print(sys.executable, sys.version_info)  # for debugging only
while True:
    inp = input("Input: ")
    try:
        a = int(inp)
        break
    except ValueError:
        print("invalid input", inp, ". You should enter a number. Please retry")

print("A is", a)

我不知道您是要強制用戶輸入正確的數據還是只想檢測錯誤。 只需根據您的確切需求進行調整

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM